Search code examples
pythonlinear-programmingpulp

I there a way to specify two constraints for the same variable when using Python PuLP for a linear program


I was wondering if there is a way two have a variable with two different constraints when using Python PuLP.

prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) >= 30.0000, "evaptwohundredFrequirement"
prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) <=70.0000, "evaptwohundredFrequirement"

This is an example fo what i would want where the same variable has two constraints so >= 30 and <= 70, but the problem is that i get an error which says 'pulp.constants.PulpError: overlapping constraint names: evaptwohundredrequirement', so how would i have it allow both constraints?


Solution

  • I'm not a big pulp-user, but what you ask for is obviously allowed in Linear-Programming (and therefore in probably all modelling-tools).

    The problem in your case: pulp expects a unique identifier / str for each constraint (and your's are equal).

    Do something like (only changed the constraint-names):

    prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) >= 30.0000, "evaptwohundredFrequirement_a"
    prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) <=70.0000, "evaptwohundredFrequirement_b"