首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MathProg中的“域外”错误(GLPK)

MathProg中的“域外”错误(GLPK)
EN

Stack Overflow用户
提问于 2012-07-05 00:40:31
回答 1查看 2.8K关注 0票数 1

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

代码语言:javascript
复制
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,尽管我发现我的模型的相关部分没有什么不同,但它仍然无法工作。怎么啦?

EN

回答 1

Stack Overflow用户

发布于 2012-07-05 08:22:16

参数b被声明为binary,因此它只能接受值0或1。您尚未提供数据文件,但错误消息表明b的数据不在域中(而不是0或1),例如:

代码语言:javascript
复制
data;
set W := w1;
set V := v1;
param b := w1 v1 0.5;

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

代码语言:javascript
复制
error processing param b['w1','v1']:
    failed check: param b['w1','v1'] = 0.5
        is not binary (0 or 1);

索引的顺序在这种情况下无关紧要的原因是,在实际实例化模型之前,会完全检查b的数据。因此,w1v1似乎可以在数据文件中互换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11332836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档