麻烦用数学模型lingo程序做,做的是第6题,第五题是个基础
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 23:13:48
麻烦用数学模型lingo程序做,做的是第6题,第五题是个基础
麻烦用数学模型lingo程序做,做的是第6题,第五题是个基础
麻烦用数学模型lingo程序做,做的是第6题,第五题是个基础
最短距离3672
model:
sets:
city / 1..6/:level;!level(i)表示城市线路的连接次序,如果连接的是城市j和i,则level(j)=level(i)+1;
link( city, city):
distance,! 距离矩阵;
x; !若x(i,j)=1,则选取城市i到城市j作为路线;
endsets
data: !距离矩阵,它并不需要是对称的;
distance=0 588 542 334 1096 825
588 0 129 448 1675 1410
542 129 0 483 1638 1346
334 448 483 0 1288 1100
1096 1675 1638 1288 0 440
825 1410 1346 1100 440 0;
enddata
n=@size(city);!模型的大小;
min = @sum( link(i,j)|i#ne#j: distance(i,j) * x(i,j));!目标函数;
@FOR( city(i):
@sum( city(j)|j #ne#i: x(i,j)) = 1;
@for(city(j)|j#gt#1#and#j#ne#i:
level(j)>=level(i)+x(i,j)-(n-2)*(1-x(i,j))+(n-3)*x(j,i)););!保证不出现子圈;
@for( link: @bin( x));!定义X为0\1变量;
@for(city(i)|i#gt#1:
level(i)=1+(n-2)*x(i,1););
end