简体   繁体   English

在 SCIP 分隔符中计算画面的非基本项

[英]compute the tableau's nonbasic term in SCIP separator

In traditional Simplex Algorithm notation, we have x at the current basis selection B as so:在传统的单纯形算法表示法中,我们在当前基础选择 B 处有 x,如下所示:
x B = A B -1 b - A B -1 A N x N . x B = A B -1 b - A B -1 A N x N How can I compute the A B -1 A N term inside a separator in SCIP, or at least iterate over its columns?我如何计算 SCIP 中分隔符内的 A B -1 A N项,或者至少迭代它的列?

I see three helpful methods: getLPColsData , getLPRowsData , getLPBasisInd .我看到三个有用的方法: getLPColsDatagetLPRowsDatagetLPBasisInd I'm just not sure exactly what data those methods represent, particularly the last one, with its negative row indexes.我只是不确定这些方法到底代表什么数据,尤其是最后一个,它的行索引为负。 How do I use those to get the value I want?我如何使用它们来获得我想要的价值?

Do those methods return the same data no matter what LP algorithm is used?无论使用何种 LP 算法,这些方法都返回相同的数据吗? Or do I need to account for dual vs primal?还是我需要考虑双重与原始? How does the use of the "revised" algorithm play into my calculation? “修订”算法的使用如何影响我的计算?

Update: I discovered the getLPBInvARow and getLPBInvRow .更新:我发现了getLPBInvARowgetLPBInvRow That seems to be much closer to what I'm after.这似乎更接近我所追求的。 I don't yet understand their results;我还不明白他们的结果; they seem to include more/less dimensions than expected.它们似乎包含比预期更多/更少的维度。 I'm still looking for understanding at how to use them to get the rays away from the corner.我仍在寻求了解如何使用它们使光线远离角落。

you are correct that getLPBInvRow or getLPBInvARow are the methods you want.你是正确的, getLPBInvRowgetLPBInvARow是你想要的方法。 getLPBInvARow directly returns you a of the simplex tableau, but it is not more efficient to use than getLPBInvRow and doing the multiplication yourself since the LP solver needs to also compute the actual tableau first. getLPBInvARow直接返回一个单纯形画面,但使用起来并不比getLPBInvRow和自己进行乘法更有效,因为 LP 求解器还需要首先计算实际画面。

I suggest you look into either sepa_gomory.c or sepa_gmi.c for examples of how to use these methods.我建议您查看sepa_gomory.csepa_gmi.c以获取有关如何使用这些方法的示例。 How do they include less dimensions than expected?它们如何包含比预期更少的维度? They both return sparse vectors.它们都返回稀疏向量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 ORTOOLS 中使用 SCIP 进行 MILP [python] - How to use SCIP in ORTOOLS for MILP [python] SCIP 没有为 MIQP 问题找到好的解决方案,而 CPLEX 很快找到了一个 - SCIP does not find good solution for MIQP problem while CPLEX finds one very quickly 优化:Oj算法(java)与SCIP(python) - Optimization: Oj algorithms (java) versus SCIP (python) 如何提高 SCIP 求解器日志的详细程度 - How to increase the verbosity level of SCIP solver log 有没有办法在 SCIP 中设置分支定界的时间限制? - Is there a way to set the time limit for branch and bound in SCIP? 使用定价器在根节点播放后,如何在 SCIP 中使用约束处理程序添加分隔符? - How to add separators using constraint handlers in SCIP after airing at the root node using a pricer? 尽早停止MATLAB的intlinprog - Stopping MATLAB's intlinprog early Google OR-Tools(使用 SCIP 求解器) - 如何访问求解器找到的中间解决方案? - Google OR-Tools (using SCIP solver) - How to access the intermediate solutions found by the solver? 如何通过 SCIP 求解器获得 Google OR-Tools 和 Python 中的相对 MIP 差距? - How to get relative MIP gap in Google OR-Tools and Python via SCIP solver? 为什么Matlab的`intlinprog`返回整数变量的近似整数? - Why does Matlab's `intlinprog` return near-integers for integer variables?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM