lingo中11个城市,从1到11的最短路问题model:sets:cities/1..11/;roads(cities,cities):w,x;endsetsdata:w=0;enddatacalc:w(1,2)=2;w(1,3)=8;w(1,4)=1;w(2,3)=6;w(2,5)=1;w(3,4)=7;w(3,5)=5;w(3,6)=1;w(3,7)=2;w(4,7)=9;w(5,6)=3;w(5,8)=2;w(5,9)=9;w(6,7)=4
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 18:36:58
![lingo中11个城市,从1到11的最短路问题model:sets:cities/1..11/;roads(cities,cities):w,x;endsetsdata:w=0;enddatacalc:w(1,2)=2;w(1,3)=8;w(1,4)=1;w(2,3)=6;w(2,5)=1;w(3,4)=7;w(3,5)=5;w(3,6)=1;w(3,7)=2;w(4,7)=9;w(5,6)=3;w(5,8)=2;w(5,9)=9;w(6,7)=4](/uploads/image/z/12611126-38-6.jpg?t=lingo%E4%B8%AD11%E4%B8%AA%E5%9F%8E%E5%B8%82%2C%E4%BB%8E1%E5%88%B011%E7%9A%84%E6%9C%80%E7%9F%AD%E8%B7%AF%E9%97%AE%E9%A2%98model%3Asets%3Acities%2F1..11%2F%3Broads%28cities%2Ccities%29%3Aw%2Cx%3Bendsetsdata%3Aw%3D0%3Benddatacalc%3Aw%281%2C2%29%3D2%3Bw%281%2C3%29%3D8%3Bw%281%2C4%29%3D1%3Bw%282%2C3%29%3D6%3Bw%282%2C5%29%3D1%3Bw%283%2C4%29%3D7%3Bw%283%2C5%29%3D5%3Bw%283%2C6%29%3D1%3Bw%283%2C7%29%3D2%3Bw%284%2C7%29%3D9%3Bw%285%2C6%29%3D3%3Bw%285%2C8%29%3D2%3Bw%285%2C9%29%3D9%3Bw%286%2C7%29%3D4)
lingo中11个城市,从1到11的最短路问题model:sets:cities/1..11/;roads(cities,cities):w,x;endsetsdata:w=0;enddatacalc:w(1,2)=2;w(1,3)=8;w(1,4)=1;w(2,3)=6;w(2,5)=1;w(3,4)=7;w(3,5)=5;w(3,6)=1;w(3,7)=2;w(4,7)=9;w(5,6)=3;w(5,8)=2;w(5,9)=9;w(6,7)=4
lingo中11个城市,从1到11的最短路问题
model:
sets:
cities/1..11/;
roads(cities,cities):w,x;
endsets
data:
w=0;
enddata
calc:
w(1,2)=2;w(1,3)=8;w(1,4)=1;
w(2,3)=6;w(2,5)=1;
w(3,4)=7;w(3,5)=5;w(3,6)=1;w(3,7)=2;
w(4,7)=9;
w(5,6)=3;w(5,8)=2;w(5,9)=9;
w(6,7)=4;w(6,9)=6;
w(7,9)=3;w(7,10)=1;
w(8,9)=7;w(8,11)=9;
w(9,10)=1;w(9,11)=2;w(10,11)=4;
@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,1000,w(i,j)));
endcalc
n=@size(cities); 城市的个数;
min=@sum(roads:w*x);
@for(cities(i)|i #ne#1 #and# i #ne#
n:@sum(cities(j):x(i,j))=@sum(cities(j):x(j,i)));
@sum(cities(j):x(1,j))=1;
@sum(cities(j):x(j,1))=0; 不能回到顶点1;
@sum(cities(j):x(j,n))=1;
@for(roads
roads:@bin(x));
end
如何理解
lingo中11个城市,从1到11的最短路问题model:sets:cities/1..11/;roads(cities,cities):w,x;endsetsdata:w=0;enddatacalc:w(1,2)=2;w(1,3)=8;w(1,4)=1;w(2,3)=6;w(2,5)=1;w(3,4)=7;w(3,5)=5;w(3,6)=1;w(3,7)=2;w(4,7)=9;w(5,6)=3;w(5,8)=2;w(5,9)=9;w(6,7)=4
首先不可能一句一句的讲语法 需要你自己学一下lingo
只说一下主要的模型 首先他calc段是给出了具体的w的数据
然后主要模型的目标自然就是路线最短 这里面x表示的选择的路线 x(i,j)是0-1变量 用来表示i到j的路线是否选择
下面的第一个约束就是对于非起点和非终点的这些点来说 进这点的路线数和出这点的路线数是相同的
最后就是出起点的路线数为1 进起点的路线数为0 进终点的路线数为0