Transfer Cplex Mathematical Model From C++ To Python
I have programmed my mathematical model in C++ using CPLEX,now I want to transfer it to Python using docplex.mp.model I met some problems in adding constraints. In C++,I am use
Solution 1:
You could use python sum or even model.sum
NB: Always use model.sum instead of python sum that is O(n*n)
See example in
https://github.com/AlexFleischerParis/zoodocplex/blob/master/zoodatainalistoftuple.py
from docplex.mp.model import Model
# Data
Buses=[
(40,500),
(30,400)
]
nbKids=300# Indexes
busSize=0;
busCost=1;
for b in Buses:
print("buses with ",b[busSize]," seats cost ",b[busCost])
mdl = Model(name='buses')
#decision variables
mdl.nbBus=mdl.integer_var_dict(Buses,name="nbBus")
# Constraint
mdl.add_constraint(mdl.sum(mdl.nbBus[b]*b[busSize] for b in Buses) >= nbKids, 'kids')
# Objective
mdl.minimize(mdl.sum(mdl.nbBus[b]*b[busCost] for b in Buses))
mdl.solve()
# Display solutionfor b in Buses:
print(mdl.nbBus[b].solution_value," buses with ",b[busSize]," seats");
"""
which gives
buses with 40 seats cost 500
buses with 30 seats cost 400
6.0 buses with 40 seats
2.0 buses with 30 seats
"""
Post a Comment for "Transfer Cplex Mathematical Model From C++ To Python"