无法理解问题不可行的原因

时间:2019-06-25 09:21:01

标签: scip feasibility

我有一个简单的以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

?为什么这个问题不可行?在我看来,<con lb="10"/>是无用的,因为没有人引用它。但是实际上,此约束确实以我未能注意到的方式影响了原始问题,因为如果将下限更改为0或更小,或者将其更改为上限,则可以解决该问题。 谁可以给我解释一下这个?我是数值优化和OSiL格式的新手,所以在此先感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:3)

您的约束中没有F,您仅将变量添加到了目标。 在那里制定的约束是10 <= 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