【问题标题】:"Out of domain" error in MathProg (GLPK)MathProg (GLPK) 中的“域外”错误
【发布时间】:2017-10-18 20:12:15
【问题描述】:

我正在为 MathProg 中一个看似简单的模型而苦苦挣扎。模型如下:

set W;
set V;

param b {W, V} binary;
param p;

var w {j in W} <= 0, >= 1;

minimize obj: 0;

subject to within_radius_of {i in V}:
    sum {j in W} b[i,j] * w[j] >= 1;

subject to p_limit:
    sum {j in W} w[j] <= p;

end;

当我运行它时,它给了我错误feasibility.glp:11: b[v1,w1] out of domain。我不知道出了什么问题。对我来说更奇怪的是,如果我将相关行更改为b[j,i],它会一直给出完全相同的错误(不是我预期的b[w1,v1])。

我仔细检查了AMPL Diet Example,尽管我发现模型的相关部分没有任何区别,但它仍然无法正常工作。怎么了?

【问题讨论】:

    标签: ampl glpk operations-research mathprog


    【解决方案1】:

    参数b被声明为binary,所以它只能取值0或1。您没有提供数据文件,但错误消息表明b的数据超出域(不是0 或 1),例如:

    data;
    set W := w1;
    set V := v1;
    param b := w1 v1 0.5;
    

    AMPL 在这种情况下给出了更详细的错误信息:

    error processing param b['w1','v1']:
        failed check: param b['w1','v1'] = 0.5
            is not binary (0 or 1);
    

    在这种情况下,索引顺序无关紧要的原因是b 的数据在模型实际实例化之前已被完全检查。所以看起来w1v1可能在数据文件中互换了。

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 2016-04-30
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多