Skip to content Skip to sidebar Skip to footer

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"