我在尝试解决的优化模型中有点困惑。它是一个小型号,可以最大限度地降低两个单位的成本我刚开始进行优化,我不确定我是否将这个问题很好地解释为AMPL。特别是关于最小化约束及其界限。
我的模型中有两个决策变量作为单位。 u1的成本是10,u2是13.并且u1的限制是你不能超过100个单位而u2是50个单位。通过扭转这种最小化问题的界限,我得到了不同的结果。任何人都可以帮我解释发生的事情吗?
var u1> = 0; var u2> = 0;
最小化costofunits:10 * u1 + 13 * u2;
受制于unit1:0< = u1< = 100; 受制于unit2:0< = u2< = 50;
CPLEX 12.8.0.0:最佳解决方案;目标0 0个双单纯迭代(第一阶段0) 目标是:0.000000 :_varname _var:= 1 u1 0 2 u2 0 ;
:_ objname _obj:= 1 costofunits 0 ;
:_conname _con:= 1单位1 0 2 unit2 0
受制于unit1:100< = u1< = 0; 受制于单元2:50< = u2< = 0;
约束单元1的不一致边界: 下限= 100>上限= 0
约束单元2的不一致边界: 下限= 50>上限= 0 不可行的约束由presolve决定。 目标是:825.000000 :_varname _var:= 1 u1 50 2 u2 25 ;
:_ objname _obj:= 1 costofunits 825 ;
:_conname _con:= 1单元1 10 2单元2 13 ;
答案 0 :(得分:0)
对于您的第一个问题:正如您已经定义了问题,目标是最大限度地降低成本,最简单的解决方案就是将所有内容都归零,而且成本为零。
对于第二个问题,错误消息说明了问题。您已为u1(100 <= u1)设置下限100,并且还将上限设置为0(u1 <= 0)。显然,没有可能的数字能够同时满足这两个要求。假设您希望将u1绑定在100和0之间,而不是在约束中使用“&lt; =”,而应使用“&gt; =”。
unit2约束的相同问题。