0

I am trying to solve a MIP problem with cvxpy as follows :

the problem: enter image description here

subject to:

enter image description here

and the code (without the data):

# declaring variables
x_ijk = {}
for i in stores:
    for j in models:
        for k in sizes.index:
            x_ijk[(i,j,k)] = cvx.Int()
y_jk = {}
for j in models:
    for k in sizes.index:
        y_jk[(j,k)] = cvx.Variable()

# function to minimize
alpha,beta, gamma = 1,1,1
error = cvx.Minimize(alpha*sum([(y_jk[(j,k)]-shoe_quantity[j]*sizes_[k])**2 for j in models for k in sizes.index]))
error += cvx.Minimize(beta*sum([(x_ijk[(i,j,k)]-shop_distribution[i]*shoe_quantity[j]*sizes_[k])**2 for i in stores for j in models for k in sizes.index]))
for i in stores:
    for j in models:
        error += cvx.Minimize((sum([x_ijk[(i,j,k)] for k in sizes.index])-shop_distribution[i]*shoe_quantity[j])**2)

# subject to
constrains = []
for i in stores:
    for k in sizes.index:
        constrains += [sum([x_ijk[(i,j,k)] for j in models]) >= 1]
for j in models:
    constrains += [sum([x_ijk[(i,j,k)] for i in stores for k in sizes.index]) == shoe_quantity[j]] 
for j in models:
    for k in sizes.index:
        if k in above_one_percent:
            constrains += [y_jk[(j,k)] == sum([x_ijk[(i,j,k)] for i in stores])]

and then

prob = cvx.Problem(error,constrains)
prob.solve()

returns "inf"

I know that this problem is feasible and i tried the same approach on simpler examples and got the same result. maybe it's too many variables? what am i doing wrong ? thanks !

afek
  • 21
  • 3

1 Answers1

0

Same issue encountered. I am also using CVXPY to solve MILP problem, however, it only returns 'inf'. And once I reformulate into a continuous variable, it solves instantly.