处理大m约束
处理大m约束
大m约束是优化问题的不稳定性的常规来源。它们之所以这样命名,是因为它们通常涉及很大的系数它被选择为大于连续变量或表达式可能采用的任何合理值。这里有一个简单的例子:
Big-M约束通常用于将二进制的、开关决定的含义传播到连续变量。例如,一个大m可能用于强制一个条件,即只有在你支付与打开边缘相关的固定费用时,一个边缘才能允许流动,或者一个设施只有在你建造它时才能生产产品。manbetx官网手机登入在我们的示例中,请注意 满足默认的完整性公差(IntFeasTol=),它允许取…的值.换句话说,可以取正值而不产生昂贵的固定费用吗,这颠覆了只允许非零值的意图当二进制变量值为1。控件可以减少此行为的影响IntFeasTol参数,但您不能完全避免它。
然而,如果建模者有额外的信息变量永远不会大于,那么你可以将先前的约束重新表述为:
现在, 只允许.
对于任何一个rescale变量都不可能的情况或收紧其界限,SOS约束或指示符约束(形式))可能产生更精确的解决方案,但往往以额外的处理时间为代价。