关于大型线性规划的 mosekopt 迭代实现
On the iterative implementation of mosekopt for large linear programs
我必须求解具有大量约束的线性规划。我使用 MOSEK(mosekopt
,MSK_IPAR_INTPNT_BASIS
设置为 MSK_BI_NEVER
以节省时间)。
由于维数较大,求解器需要时间来求解程序。
我考虑过手动编写以下迭代过程:
取约束的随机子集并求解受限线性规划。
如果受限线性规划的解不存在,则停止。
若存在受限线性规划的解,则判断是否为原线性规划的解。如果是,停止。如果不是,则从 1. 开始重复,并使用包括本次迭代约束的更大约束集。
该过程似乎没有显着节省时间。我想知道这是不是因为1.,2.,3.本质上是求解器在不需要我输入的情况下所做的。你能建议一下吗?
如果在从 3. 移动到 1. 时,我向 mosekopt
提供受限线性程序的旧解,我可以改进吗?
这可能比在完整问题上使用 Mosek 更快,也可能不会更快。至少理论上你的方法是劣等的。
你没说问题的维度很有趣。
或解决完整问题需要多长时间。
一个棘手的问题是您在 3 中添加了多少约束以及哪些约束。这将非常重要。
我必须求解具有大量约束的线性规划。我使用 MOSEK(mosekopt
,MSK_IPAR_INTPNT_BASIS
设置为 MSK_BI_NEVER
以节省时间)。
由于维数较大,求解器需要时间来求解程序。
我考虑过手动编写以下迭代过程:
取约束的随机子集并求解受限线性规划。
如果受限线性规划的解不存在,则停止。
若存在受限线性规划的解,则判断是否为原线性规划的解。如果是,停止。如果不是,则从 1. 开始重复,并使用包括本次迭代约束的更大约束集。
该过程似乎没有显着节省时间。我想知道这是不是因为1.,2.,3.本质上是求解器在不需要我输入的情况下所做的。你能建议一下吗?
如果在从 3. 移动到 1. 时,我向 mosekopt
提供受限线性程序的旧解,我可以改进吗?
这可能比在完整问题上使用 Mosek 更快,也可能不会更快。至少理论上你的方法是劣等的。
你没说问题的维度很有趣。 或解决完整问题需要多长时间。
一个棘手的问题是您在 3 中添加了多少约束以及哪些约束。这将非常重要。