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()
Exemple #4
0
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)