【问题标题】:nonzero Reduced cost: Is lower or upper bound active?非零 降低成本:下限或上限是否有效?
【发布时间】:2020-11-02 09:19:45
【问题描述】:

降低成本给出对应于变量框约束的对偶变量,正如该问题的相关答案中指出的那样:LP: postive reduced costs corresponding to positive variables?

我如何知道下限或上限是主动约束?当然,我可以检查变量值与其边界之间的差异是否小于某个 epsilon。但是,我不清楚这种 epsilon 的选择,因为模型可能会尝试通过将下限设置为上限来修复变量。在这种情况下,没有 epsilon 可以明确指出哪个边界是活动边界。

cplex 是否提供在其 C++ api 中哪个绑定处于活动状态的信息?其他任何 LP 求解器都这样做吗?是否有另一个技巧来计算活动界限? 谢谢。

【问题讨论】:

    标签: c++ optimization linear-programming cplex


    【解决方案1】:

    在很大程度上你可以看标志。降低成本的规则是:

                   Basic   Non-basic-at-LB     Non-basic-at-UB      
    minimization     0           >= 0               <= 0
    maximization     0           <= 0               >= 0
    

    一些问题:

    • 并非所有求解器都遵循这一点(尤其是在最大化时)。
    • 退化可能使事情变得困难

    大多数求解器都会让您访问基础状态。例如。 Cplex 有 BasisStatus 可以准确地为您提供变量的基本状态:Basic、AtLower、AtUpper 或 FreeOrSuperbasic。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多