mdl.add(end_before_start(facade, moving)) mdl.add(end_before_start(garden, moving)) mdl.add(end_before_start(painting, moving)) ############################################################################## # Solving ############################################################################## # Trace model if False: from CpoCompiler import * cplr = CpoCompiler(mdl) cplr.set_source_location(False) cplr.print_model() # Solve model print("Solving model....") msol = mdl.solve() print("Solution: ") msol.print_solution() ############################################################################## # Display result ############################################################################## # Draw solution if msol and visu.is_visu_enabled(): visu.show(msol)
for j in range(nbMchs)]))) ############################################################################## # Model solving ############################################################################## # Solve model print("Solving model....") msol = mdl.solve(FailLimit=10000) print("Solution: ") msol.print_solution() ############################################################################## # Display result ############################################################################## # Draw solution if msol and visu.is_visu_enabled(): visu.timeline("Solution for open-shop " + filename) visu.panel("Jobs") for i in range(nbJobs): visu.sequence(name='J' + str(i), intervals=[(msol.get_var_solution(ITVS[i][j]), j, 'M' + str(j)) for j in range(nbMchs)]) visu.panel("Machines") for j in range(nbMchs): visu.sequence(name='M' + str(j), intervals=[(msol.get_var_solution(ITVS[i][j]), j, 'J' + str(i)) for i in range(nbJobs)]) visu.show()
mdl.add(minimize(max([end_of(OPS[o[0]]) for o in ops]))) ############################################################################## # Model solving ############################################################################## # Solve model print("Solving model....") msol = mdl.solve(FailLimit=100000) print("Solution: ") msol.print_solution() ############################################################################## # Display result ############################################################################## # Draw solution if msol and visu.is_visu_enabled(): visu.timeline("Solution for flexible job-shop " + filename) visu.panel("Machines") for j in range(nb_mchs): visu.sequence(name='M' + str(j)) for v in MACHS[j]: itv = msol.get_var_solution(v) if itv.is_present(): job = Job[v.get_name()] visu.interval(itv, job, 'J' + str(job)) visu.show()
mdl.add(end_before_start(ceiling, painting)) mdl.add(end_before_start(roofing, windows)) mdl.add(end_before_start(roofing, facade)) mdl.add(end_before_start(plumbing, facade)) mdl.add(end_before_start(roofing, garden)) mdl.add(end_before_start(plumbing, garden)) mdl.add(end_before_start(windows, moving)) mdl.add(end_before_start(facade, moving)) mdl.add(end_before_start(garden, moving)) mdl.add(end_before_start(painting, moving)) ############################################################################## # Solving ############################################################################## # Solve model print("Solving model....") msol = mdl.solve(TimeLimit=100) print("Solution: ") msol.print_solution() ############################################################################## # Display result ############################################################################## # Draw solution if msol and visu.is_visu_enabled(): visu.show(msol)