lingo中0—1变量

问题描述:

lingo中0—1变量
model:
sets:
cities/1..9/;
roads(cities,cities):w,x,v,o,p,q;
endsets
data:
T=3.838384;
a=0.0625;
b=1.875;
w=@ole('d:\data.xls',w);
enddata
calc:
c=100-100*0.3^0.3;
d=200*1-200*0.1^0.3;
@for(roads(i,j):w(i,j)=w(i,j)+w(j,i));
@for(roads(i,j):w(i,j)=@if(w(i,j) #eq# 0,10000,w(i,j)));
@for(roads(i,j):v=w*(o+1.1*p+1.5*q)*a+b);
0,p,q均为0—1变量,如何实现v(I,j)=w(i,j)*(o+1.1*p+1.5*q)
1个回答 分类:综合 2014-11-19

问题解答:

我来补答
你要知道lingo里面都是约束 既然你要写这个约束直接写了就行了 你最后一句基本上都写出来了啊
再问: 最后一句运行不对,如o,p 都为0,q为1的话,运行得v不是w的1.5倍,求高手解答
再答: 你后面的a和b都忽略了?
再问: 我复制上来的程序只是一部分,现在就考虑实现v(I,j)=w(i,j)*(o+1.1*p+1.5*q) o,p,q均为0—1变量,并且o(i,j)+p(i,j)+q(i,j)=1(对任意i,j成立),谢谢
再答: 那你把你写的放上来啊 你写个别的然后说算不出来那我怎么知道
再问:
再答: 你贴图我没法看好吧 再说我问你的a和b的问题呢? 有a和b的话还应该是1.5倍的关系吗 不知道你怎么想的
再问: 怪我没说清,命令是@for(roads(i,j):v=w*(o+1.1*p+1.5*q);然后运行的话,等式不成立。 贴图是因为,文字字数太多,传不上,求大神解答
再答: 你这个下标要加上 最好能给完整的让我自己能重现
再问: 要不加一下好友,不然传不上啊
再答: 那你点我id看资料
 
 
展开全文阅读
剩余:2000