Ограничения Elasti c в Pulp, возвращающие неограниченное первичное решение - PullRequest
0 голосов
/ 18 июня 2020

Я написал линейную задачу для целлюлозы с использованием ограничений эластичности c и получил ошибку «LP HAS UNBOUNDED PRIMAL SOLUTION», но когда я запускаю с использованием обычных ограничений, я получаю оптимальное решение. Кто-нибудь может сказать мне, почему? Я пытаюсь ослабить ограничения. Вот его код:

from pulp import *

prob = LpProblem('Optimizator', LpMaximize)


x = LpVariable('x')
y = LpVariable('y')

prob += x + y
prob += x + y <=100
prob += x+y >= -100

lst = []

lst.append(x)
lst.append(y)

lst1 = []
lst1.append(LpConstraint(2*lst[0]+lst[1]*3,sense=-1,rhs=3, name="constraint1")) 
#lst1.append(LpConstraint(2.2*lst[0]+lst[1]*(1/3.2)-1-lst[0],sense=-1,rhs=3))

for x in lst1:
    el = x.makeElasticSubProblem(penalty=1000, proportionFreeBound = 0.5)
    prob.extend(el)
    # prob += x


print(prob)
prob.solve()

for variable in prob.variables():
    print("{} = {}".format(variable.name, variable.varValue))

print("Total Trips =", pulp.value(prob.objective))
...