Minimum of a variable and a constant in PULP python integer programming

1.2k views Asked by At

I am stuck with a problem in Integer Programming constraint using PULP in python. I have 2 variables x1, x2 and a constant y. How do i write a constraint on x1 = min(x2 ,y1).

I have written below two condition: x1 < y1;

x1 < x2

But it is giving me x1 = 0 for my problem. It should take one of the values from x2 and y1

Thanks in advance. Will really appreciate your help.

Code used:

*import pandas as pd
from pulp import *

data = pd.read_csv("Test.csv")
limit = LpVariable("limit",0, 1000, cat='Integer')
sales = LpVariable.dicts("Sales", (i for i in data.index), lowBound=0,  cat="Integer")

####### Defining the Problem
prob = pulp.LpProblem("Profit", pulp.LpMaximize)
prob += pulp.lpSum((1-data.loc[i,'Prize']) * sales[i] for i in data.index)

####### Constraints
for idx in data.index:
    max_sales = data.loc[idx, 'Sales'] + data.loc[idx, 'Rejec']
    prob += sales[idx] <= max_sales
    prob += sales[idx] <= limit

###### Getting the output    
prob.solve()
for v in prob.variables():
    print v.name,v.varValue

print value(prob.objective)

Data Used (try.csv) enter image description here

0

There are 0 answers