ちょうど 3 次元に等式制約付き整数計画法(IP) があります。等式制約2 x + 5 y + 8 z = 14
は、3 次元空間で平面を定義します。それをパラメータ化すると、
x = 7 - 2.5 u - 4 v
y = u
z = v
2 次元で制約のないIPを取得します。完全性の制約が与えられると、 と が得られu <- {0,2}
ますv <- {0,1}
。4 つの ペアすべてを列挙すると、最小値は であり、およびで達成され、それぞれおよびに対応すると(u,v)
結論付けます。4
(u,v) = (2,0)
(u,v) = (0,1)
(x,y,z) = (2,2,0)
(x,y,z) = (3,0,1)
PuLPを使用して整数計画法を解く:
from pulp import *
# decision variables
x = LpVariable("x", 0, None, LpInteger)
y = LpVariable("y", 0, None, LpInteger)
z = LpVariable("z", 0, None, LpInteger)
# define integer program (IP)
prob = LpProblem("problem", LpMinimize)
prob += x+y+z # objective function
prob += 2*x + 5*y + 8*z == 14 # equality constraint
# solve IP
prob.solve()
# print results
print LpStatus[prob.status]
print value(x)
print value(y)
print value(z)
x = 3
、y = 0
およびを生成しz = 1
ます。