Python PuLP:保持变量彼此相关

Python PuLP: Keep variables relative to each other

我想用 PuLP 最小化 x1+x2+x3,它已经很好用了。然而,结果通常包括三个中的一个为零,而算法仅使用另外两个。有没有办法让它们保持相对?他们三者的成本相同。

例如,不是 PuLP 用 4+0+5 解方程,而是应该用 3+3+3 之类的东西。这可能吗?

单纯形算法的本质总是会找到极值点解,即

max x+y+z

x+y+z <=1

x,y,z >= 0

返回的解决方案将始终是

x=1 y=0 z=0 

x=0, y=1, z=0 

x=0, y=0, z=1

使用线性公式实际上很难强制使用内点解

x=1/3, y=1/3, z=1/3

您可能需要添加一个非线性 objective 函数才能使其正常工作,而纸浆无法对其进行建模:-(

能够通过在增加变量阈值的同时循环计算来实现我想要的某种东西:

x <= threshhold
y <= threshhold
z <= threshhold

这意味着要牺牲一些计算能力,但就我而言,实际上并没有那么多时间来完成工作。