Output 1.0, Beispiel s. example.py
This commit is contained in:
parent
435291679b
commit
be28f9b11f
22
src/Output/output.py
Normal file
22
src/Output/output.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
from matplotlib import colors
|
||||||
|
import numpy as np
|
||||||
|
from SchedulingAlgorithms.simanneal import rate
|
||||||
|
|
||||||
|
def create_plot(problem, solution):
|
||||||
|
|
||||||
|
end = rate(solution)
|
||||||
|
|
||||||
|
with plt.xkcd():
|
||||||
|
fig,ax = plt.subplots()
|
||||||
|
for m in range(0, problem.machines):
|
||||||
|
mach_ops = [ x for x in solution if problem.problem_data[x[1][0]][x[1][1]][1] == m ]
|
||||||
|
xranges = [ (x[0], problem.problem_data[x[1][0]][x[1][1]][0]) for x in mach_ops ]
|
||||||
|
ax.broken_barh(xranges, ((problem.machines - m)*10, 9),
|
||||||
|
facecolors=[list(colors.XKCD_COLORS.values())[x[1][0]] for x in mach_ops])
|
||||||
|
ax.set_ylim(5, 5 + (problem.machines+1)*10)
|
||||||
|
ax.set_xlim(0, 1.25 * end)
|
||||||
|
ax.set_yticks([15 + m * 10 for m in range(0, problem.machines)])
|
||||||
|
ax.set_yticklabels([ problem.machines - 1 - m for m in range(0, problem.machines)] )
|
||||||
|
|
||||||
|
plt.show()
|
|
@ -1,7 +1,9 @@
|
||||||
INSTANCES = [(5, 5)]
|
from Generator import generator as g
|
||||||
TASKS = [[(1, 21), (0, 53), (4, 95), (3, 55), (2, 35)],
|
from SchedulingAlgorithms import simanneal as sim
|
||||||
[(0, 21), (3, 52), (4, 16), (2, 26), (1, 71)],
|
from Output import output as o
|
||||||
[(3, 39), (4, 98), (1, 42), (2, 31), (0, 12)],
|
|
||||||
[(1, 77), (0, 55), (4, 79), (2, 66), (3, 77)],
|
|
||||||
[(0, 83), (3, 34), (2, 64), (1, 19), (4, 37)]]
|
|
||||||
|
|
||||||
|
g.mock()
|
||||||
|
problem = g.problem
|
||||||
|
sim.init(problem)
|
||||||
|
solution = sim.anneal()
|
||||||
|
o.create_plot(problem, solution)
|
Loading…
Reference in a new issue