首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GAMS软件中不可行解的计算

GAMS软件中不可行解的计算
EN

Stack Overflow用户
提问于 2015-12-24 15:08:08
回答 1查看 198关注 0票数 1

我想在GAMS中运行几个数学模型,并计算不可行解的数量。IF语句的条件应该怎么写?

EN

回答 1

Stack Overflow用户

发布于 2016-01-07 18:56:26

您可以在解算模型之后检查模型的modelstat属性。下面是一个小示例:

代码语言:javascript
复制
equation obj;
variable z;
positive variable x;

obj.. z =e= 1;

equation feasible;
feasible..    x =g= 1;

equation infeasible1;
infeasible1.. x =l= -1;

equation infeasible2;
infeasible2.. x =l= -2;

model m1 /obj, feasible   /;
model m2 /obj, infeasible1/;
model m3 /obj, infeasible2/;

scalar infCount Number of infeasible models /0/;

solve m1 min z use lp;
if(m1.modelstat = %ModelStat.Infeasible%, infCount = infCount+1;)

solve m2 min z use lp;
if(m2.modelstat = %ModelStat.Infeasible%, infCount = infCount+1;)

solve m3 min z use lp;
if(m3.modelstat = %ModelStat.Infeasible%, infCount = infCount+1;)

display infCount;

如果你有一个整数问题,你还应该检查%ModelStat.Integer不可行%,而不仅仅是%ModelStat.Infeasible%,所以求解后的检查可能会变成

代码语言:javascript
复制
solve m3 min z use mip;
if(m3.modelstat = %ModelStat.Infeasible% or m3.modelstat = %ModelStat.Integer Infeasible%,
  infCount = infCount+1;
)

我希望,这会有帮助!Lutz

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

https://stackoverflow.com/questions/34448739

复制
相关文章

相似问题

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