I am writing a LpProblem and I need to create a constraint where the sum of some variables is multiples of 100... 100, 200, 300...
I am trying the next expressions using mod(), round() and int() but none works because they don't support LpAffineExpression.
probl += lpSum([vars[h] for h in varSKU if h[2] == b]) % 100 == 0
probl += lpSum([vars[h] for h in varSKU if h[2] == b]) / 100 == int(lpSum([vars[h] for h in varSKU if h[2] == b]) / 100)
probl += lpSum([vars[h] for h in varSKU if h[2] == b]) / 100 == round(lpSum([vars[h] for h in varSKU if h[2] == b]) / 100)
Can you give me some ideas for write this constraint.
Thank you!
One fairly simple approach:
I
probl += lpSum([vars[h] for h in varSKU if h[2] == b]) == I*100
I
as needed: e.g.I >= 1
;I <= N
)Keep in mind: when having multiple constraints and the multiples of 100 are not necessarily the same for your constraints, you will need one auxiliary variable
I_x
for each constraint!(And: you can't use python's operators in general within pulp or any other LP-modelling sytem (round, int, mod, ceil, ...)! You have to accept the rules/form those modelling-systems allow: in this case ->
LpAffineExpression
)