我有一个“连续”线性规划问题,涉及在弯曲凸空间上最大化线性函数。在典型的LP问题中,凸空间是多面体,但在这种情况下,凸空间是分段弯曲的 - 也就是说,它有面,边和顶点,但边缘不直,面不平。我没有被有限数量的线性不等式所指定,而是一个连续无穷的数。我目前通过用多面体近似表面处理这个问题,这意味着将连续无限约束离散化为非常大的有限数量的约束。
我也处在这样的情况下,我想知道答案如何在潜在问题的微小扰动下发生变化。因此,我希望能够根据附近的解决方案为求解器提供初始条件。我相信这种能力被称为“温暖的开始。”
有人可以帮我区分各种LP套餐吗?我不太关心用户友好性如速度(对于大量约束),高精度算术和热启动。
谢谢!
编辑:从与问题回答者的谈话到目前为止,我应该更清楚我正在努力解决的问题。简化版如下:我有一个单个实变量y的N个固定函数f_i(y)。我想找到最小化\ sum_ {i = 1} ^ N x_i f_i(0)的x_i(i = 1,...,N),受制于约束条件:
更简洁,如果我们定义函数F(y)= \ sum_ {i = 1} ^ N x_i f_i(y),那么我想最小化F(0),条件是F(1)=在整个区间[2,无穷大]中,F(y)为正。请注意,后一个积极性条件实际上是x_i上的无限个线性约束,每个y对应一个。您可以将y视为标签 - 它不是优化变量。特定的y_0将我限制在x_i的空间中的半空间F(y_0)> = 0。当我在2和无穷大之间改变y_0时,这些半空间不断变化,形成弯曲的凸形。这种形状的几何形状隐含地(并且以复杂的方式)取决于函数f_i。
答案 0 :(得分:2)
答案 1 :(得分:1)
我遇到了类似的问题。我在网上搜索,发现这个问题可能归类为"半无限"问题。 MATLAB有解决这类问题的工具(功能" fseminf")。但我还没有详细检查过这个问题。当然人们遇到过这类问题。
答案 2 :(得分:0)
您不应该使用LP解算器并自行进行离散化。通过使用体面的通用凸解算器,您可以做得更好。例如,请查看cvxopt。这可以在约束中处理各种不同的函数,或者允许您编写自己的函数。这比尝试自己进行线性化要好得多。
至于热启动,对于LP而言,它比一般的凸程序更有意义。虽然热启动可能对您自己手动编写整个算法很有用,但您通常仍需要几个牛顿步骤,因此收益并不那么显着。热启动的大多数好处都来自于主动设置方法,它们主要仅用于LP。