【问题标题】:Cannot understand the reason of the problem being infeasible无法理解问题不可行的原因
【发布时间】:2019-06-25 09:21:01
【问题描述】:

我有一个用 OSiL 格式编写的简单线性规划问题,它是从 SCIP 报告为不可行的复杂非线性问题中分离出来的。这个简单的问题是重现这个不可行问题的最少行,但它让我感到困惑。以下是 OSiL 的内容:

    <instanceData>
        <variables numberOfVariables="1">
            <var name="F"/>
        </variables>
        <objectives numberOfObjectives="1">
            <obj maxOrMin="min" numberOfObjCoef="1" >
                <coef idx="0">1</coef>
            </obj>
        </objectives>
        <constraints  numberOfConstraints="1">
            <con lb="10"/>
        </constraints>
    </instanceData>

OSiL 不是在说:

Minimize:    F
Subject to:  F >= 0

?为什么这个问题不可行?在我看来,&lt;con lb="10"/&gt; 没用,因为没有人引用它。但事实上,这个约束确实以我没有注意到的方式影响了原始问题,因为如果将下限更改为 0 或更小,或者将其更改为上限,问题就可以解决。 谁可以给我解释一下这个?我是数值优化和 OSiL 格式的新手,提前感谢您抽出宝贵时间。

【问题讨论】:

    标签: scip feasibility


    【解决方案1】:

    您的约束中没有 F,您只是将变量添加到目标中。 那里制定的约束是10 &lt;= 0,这是不可行的。

    如果您查看 SCIP 中的问题,这可能会变得更加明显:

    original problem has 1 variables (0 bin, 0 int, 0 impl, 1 cont) and 1 constraints
    SCIP> disp prob
    
    STATISTICS
      Problem name     : a.osil
      Variables        : 1 (0 binary, 0 integer, 0 implicit integer, 1 continuous)
      Constraints      : 0 initial, 1 maximal
    OBJECTIVE
      Sense            : minimize
    VARIABLES
      [continuous] <F>: obj=1, original bounds=[0,+inf]
    CONSTRAINTS
      [linear] <cons0>: 0 >= 10;
    END
    

    【讨论】:

    • 感谢 stefan,我刚刚在 display problem 的原始问题中发现了大量的约束,例如 0 &gt;= 10。最好回去修复我的 OSiL 生成脚本。
    • 我认为 SCIP 在这种情况下会按照“线性约束的左侧大于右侧”的方式打印警告。确保检查错误日志以获取此类消息。这应该可以帮助您发现配方中的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2022-11-02
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多