Is it possible if we combine two models of docplex.mp within one pyton coding file? For example, mdl. and mdl2.
Thank you.
Is it possible if we combine two models of docplex.mp within one pyton coding file? For example, mdl. and mdl2.
Thank you.
Yes. Suppose the 2 combined schools from https://github.com/AlexFleischerParis/zoodocplex/blob/master/zootwoinstancescombined.py
from docplex.mp.model import Model
#Two independent schools, first school 300 kids, second one 350
#Combined in a single model because of a coupling constraint
#(Total number of buses)
mdl = Model(name='buses')
nbbus40 = mdl.integer_var(name='nbBus40')
nbbus30 = mdl.integer_var(name='nbBus30')
nbbus40bis = mdl.integer_var(name='nbBus40bis')
nbbus30bis = mdl.integer_var(name='nbBus30bis')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.add_constraint(nbbus40bis*40 + nbbus30bis*30 >= 350, 'kids2')
mdl.add_constraint(nbbus40+nbbus30+nbbus40bis+nbbus30bis<=17,'total nb of buses')
mdl.minimize(nbbus40*500 + nbbus30*400+nbbus40bis*500 + nbbus30bis*400)
mdl.solve(log_output=True,)
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
are not combined any more.
Then you can write
from docplex.mp.model import Model
#Two independent schools, first school 300 kids, second one 350
mdl1 = Model(name='buses1')
nbbus40 = mdl1.integer_var(name='nbBus40')
nbbus30 = mdl1.integer_var(name='nbBus30')
mdl2= Model(name='buses2')
nbbus40bis = mdl2.integer_var(name='nbBus40bis')
nbbus30bis = mdl2.integer_var(name='nbBus30bis')
mdl1.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl2.add_constraint(nbbus40bis*40 + nbbus30bis*30 >= 350, 'kids2')
mdl1.minimize(nbbus40*500 + nbbus30*40)
mdl2.minimize(nbbus40bis*500 + nbbus30bis*400)
mdl1.solve(log_output=True,)
mdl2.solve(log_output=True,)
for v in mdl1.iter_integer_vars():
print(v," = ",v.solution_value)
for v in mdl2.iter_integer_vars():
print(v," = ",v.solution_value)