![](/img/trans.png)
[英]How to combine 2 constraints to minimise cost and maximise capacity using DOcplex.mp in Python
[英]Is it possible to create two models within one coding program for docplex.mp?
如果我們在一個 pyton 編碼文件中結合兩個模型的 docplex.mp 是否有可能? 例如,mdl。 和mdl2。
謝謝你。
是的。 假設來自https://github.com/AlexFleischerParis/zoodocplex/blob/master/zootwoinstancescombined.py的 2 所聯合學校
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)
不再合並。
然后你可以寫
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.