는 :펄프 파이썬 LP 나는 다음과 같은 코드를 실행하면 잘못된 솔루션
from pulp import *
x = pulp.LpVariable("x", 0, None , LpContinuous)
y = pulp.LpVariable("y", 0, None , LpContinuous)
problem = pulp.LpProblem("A simple max problem", pulp.LpMinimize)
problem += x + y, "The objective function"
problem += x + 2*y == 2, "1st constraint"
problem += 2*x + 3*y == 2, "2nd constraint"
problem += x >= 0, "3rd constraint"
problem += y >= 0, "4th constraint"
problem += x + y == 1, "5th constraint"
problem.writeLP("WhiskasModel.lp")
problem.solve()
for variable in problem.variables():
print variable.name, "=", variable.varValue
print value(problem.objective)
나는 출력으로 얻을 : 2 제약 조건이 만족되지 않기 때문에, 분명히 잘못된 것입니다
x = 0.0
y = 1.0
1.0
합니다. 이제는 위의 문제에 대한 해결책이 없습니다. 그래서 저는 펄프가 관련성이있는 ("Infeasible problem") 것과 비슷한 것을 알려주기를 기대합니다. 대신, 나는 임의로 제약 조건 중 일부를 삭제하고 나머지 제약 조건과 함께 작동한다고 생각합니다. 마찬가지로, 다음의 경우 :
x = pulp.LpVariable("x", 0, None , LpContinuous)
y = pulp.LpVariable("y", 0, None , LpContinuous)
problem = pulp.LpProblem("A simple max problem", pulp.LpMinimize)
problem += x + y, "The objective function"
problem += x + 2*y == 2, "1st constraint"
problem += 2*x + 3*y == 20, "2nd constraint"
problem += x >= 0, "3rd constraint"
problem += y >= 0, "4th constraint"
problem += x + y == 1, "5th constraint"
problem.writeLP("WhiskasModel.lp")
problem.solve()
for variable in problem.variables():
print variable.name, "=", variable.varValue
print value(problem.objective)
OUPUT는
x = 34.0
y = -16.0
18.0
즉 4 번째 제약은 이제 "드롭"된다.
누구든지이 문제를 해결하는 방법을 알고 있습니까?