具有严格正性约束的线性规划可行性问题

计算科学 优化 线性规划
2021-12-07 23:35:42

有一个线性约束系统Axb我希望找到满足这些约束的严格正向量x>0这意味着,{ \bf x}的每个组件x_i都需要x_i > 0如何使用 LP 求解器找到这样一个严格的正向量{\bf x}(或确认不存在 {\bf x})?我不能简单地引入另一个约束x_i > 0系统,因为在 LP 中必须始终允许相等 - 但我可以多次使用 LP 求解器,并改变目标函数。我想我应该使用松弛变量方法,但我不知道如何。xi>0xixxxxi>0

4个回答

你可以通过更加雄心勃勃来规避选择小的ϵ>0x使得Axbx中的最小条目{x}是最大的可能。

为此,引入一个新变量

y=[xϵ]Rn+1
(如果xRn ) 并通过 LP-solver
maxy[00 1]ys.t.[A 0]yband0[10010101011]y.

这是对以下问题的重新表述:

maxϵs.tAxbandxϵ1.

对于 LP 可行性问题,我不会使用标准单纯形法。标准的原始(或对偶)单纯形算法只会访问原始(或对偶)问题的可行集的顶点。

让你实际想要解决的问题的可行集为,并假设您要解决问题():F={x:Axb,x>0}Fε

minx0s.t.Axbxε1.

您要解决的问题的最接近近似值是,它承认的点太多了。问题是正正数的边界(即集合可以使的可行集的边界的一部分。我们想排除这些点。这样做的一种方法是按照 Aron 的建议进行操作,即将设置为一些小的正值,然后使用任何标准的 LP 算法。这种策略是一个很好的策略,并且可能适用于各种情况。但是,如果不可行,它将失败。我们知道F0B={x:x0,i:xi=0}F0εFεF0FFε对于所有(滥用符号并通过其相应问题引用可行集),即使您选择的小正值,LP 求解器也可能表明您的 LP 不可行。ε>0ε

对于 LP 求解器,我会为 LP 使用任何内部点算法,该算法以可行点开始并保持可行,这是排除中的点的另一种方法。您不必为这些算法提供可行的点;标准求解器将为您完成。仿射缩放、电位缩减和障碍方法等方法设置了辅助 LP,它们将找到可行的解决方案,并且这些算法的迭代遍历可行区域的内部。您只需要在您的可行域中定位一个点,因此只要 LP 求解器使用的辅助问题为您的问题找到一个可行点,并且该可行点是严格正的,您应该没问题。如果求解的小正值失败BFεε,您仍然可以使用这些方法在中定位一个严格正的可行点。F0

但是,不要使用单纯形,因为它只会探索的顶点,而这正是您要避免做的事情。Fε

可行性问题是一个比一般线性问题稍微棘手的游戏,您已经注意到了。如果您正在近似求解(通过使用方程和约束系统的浮点表示),要求是合法的,其中是一些非常小的数值,大到足以确保实际上生活在中,但足够小以至于不考虑边界上的解决方案。xi>=ϵϵxi+

您可能需要调整,并且您的解决方案将有资格“在的一个因素内”,但这对于许多情况来说已经足够了。ϵϵ

aeismail给出的答案要仔细阅读,看lp

max(x1+x2)

英石

x1+x21

x1,x20

它有解以及其他解(退化)。问题的普遍性意味着这些情况也需要处理。(1,0)(0,1)

由于您可以选择目标函数,因此您可以尝试迭代地修改它。例如,从所有变量的所有系数都等于 1 开始,检查您是否获得了适当的解决方案。如果一个变量为零,则增加它的系数并重新开始......

虽然我不能给出数学证明这是有效的(或者一个定义明确的过程如何修改目标函数)。我希望这有帮助 :)