Lingo@for循环和@if的语句 Lingo新手,不知道该怎么写程序,

问题描述:

Lingo@for循环和@if的语句 Lingo新手,不知道该怎么写程序,
MODEL:
SETS:
city/A1..A4/:U;;
links(city,city):distance,;
quan/1..4/:A;
demond/1..4/:D;
link(quan,demond):c;
ENDSETS
DATA:
distance=0,34,84,8,
34,0,63,7,
84,63,0,5,
8,7,5,0;
d=12,18,23,16;
ENDDATA
max=@sum(link:a(i)*d(i));
@for(quan:a(i)=@if(distance(i,j)#gt#10,0.3,0.5));
end

那你解释一下你这个@if的条件是什么 否则不好写啊 你写的恐怕是有问题的就是希望如果距离小于10权重为0.5,距离大于10权重为0.3,然后根据权重计算权重a乘以d什么距离 具体是哪个距离 你这个distance可不止一个数这个距离矩阵是对称的, 实际上就是四个点之间的距离。如果两个城市间距离超过10,那么权重为0.3,距离在10以内,权重是0.5。 d是商品,距离大的会出现损耗。希望可以找到一个最优的点,使得损耗最少,得到的加总的d最大那你的权重也是两两城市之间的你给的是a(i)啊 这个对吗那应该怎么改呢~我是新手,确实不是很会MODEL:SETS:city/A1..A4/:U,d;links(city,city):distance,a,c;ENDSETSDATA:distance=0,34,84,8,34,0,63,7,84,63,0,5,8,7,5,0;d=12,18,23,16;ENDDATAcalc:@for(links:a=@if(distance#gt#10,0.3,0.5));endcalcmax=@sum(links(i,j):a(i,j)*d(i));实在是太感谢啦~~大神。。。。能不能再问一下~那如果4个城镇变成100个(100阶阵),然后最优点不止一个呢,怎么改程序能够求出来优化方案,使得损耗最少,加总的d最大呢~~那就要你自己想了 不是那么容易的