lingo语句 model:sets:cities/s,a1,a2,a3,b1,b2,c1,c2,t/:l;roads(cities,cities)/s,a1 s,a2 s,a3a1,b1 a1,b2 a2,b1 a2,b2 a3,b1 a3,b2b1,c1 b1,c2 b2,c1 b2,c2c1,t c2,t/:d;endsetsdata:d=6 3 36 5 8 6 7 46 7 8 95 6;l=0,;enddata@for(cities(i)|i#gt#1:l(i)=@min(r
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 12:54:17
lingo语句 model:sets:cities/s,a1,a2,a3,b1,b2,c1,c2,t/:l;roads(cities,cities)/s,a1 s,a2 s,a3a1,b1 a1,b2 a2,b1 a2,b2 a3,b1 a3,b2b1,c1 b1,c2 b2,c1 b2,c2c1,t c2,t/:d;endsetsdata:d=6 3 36 5 8 6 7 46 7 8 95 6;l=0,;enddata@for(cities(i)|i#gt#1:l(i)=@min(r
lingo语句
model:
sets:
cities/s,a1,a2,a3,b1,b2,c1,c2,t/:l;
roads(cities,cities)/
s,a1 s,a2 s,a3
a1,b1 a1,b2 a2,b1 a2,b2 a3,b1 a3,b2
b1,c1 b1,c2 b2,c1 b2,c2
c1,t c2,t/:d;
endsets
data:
d=6 3 3
6 5 8 6 7 4
6 7 8 9
5 6;
l=0,;
enddata
@for(cities(i)|i#gt#1:
l(i)=@min(roads(j,i):l(j)+d(j,i)));
end
语句是这样的
@for(cities(i)|i#gt#1:
l(i)=@min(roads(j,i):l(j)+d(j,i)));
这句话的含义是什么.为什么是roads(j,i) 是在看不懂这句话的含义
lingo语句 model:sets:cities/s,a1,a2,a3,b1,b2,c1,c2,t/:l;roads(cities,cities)/s,a1 s,a2 s,a3a1,b1 a1,b2 a2,b1 a2,b2 a3,b1 a3,b2b1,c1 b1,c2 b2,c1 b2,c2c1,t c2,t/:d;endsetsdata:d=6 3 36 5 8 6 7 46 7 8 95 6;l=0,;enddata@for(cities(i)|i#gt#1:l(i)=@min(r
这句的意思实际上是说 对于除了出发点以外的点 到点i的最短距离是 对于所有点j 到点j的最短距离和ij间距离和的最小值
这里实际上需要对j所对应的集运用函数min
你可以把@for分出来看 比如说给定i=2的话 那么就是l(2)= @min(roads(j,2):l(j)+d(j,2));
这样可能会清楚一点
更准确的表达应该是 @for(cities(i)|i#gt#1:
l(i)=@min(cities(j)|@in(roads,j,i):l(j)+d(j,i)));