5.5.3模型建立:
综上所述,我们可以得到总的模型为:
Min Q??1?C??2?L
约束条件:
11111rij?tij+???rij??ti?tj??120 ??2i?1j?1i?1j?11111??ri?1j?11111ij?k
ij?r??riji?1 (i,j=1,2,??,11)
jrij?rji?0 (i,j?2)
Ti=Ti?1?ti?1,i (i=2,3,??,11)
5.5.4模型求解与结果分析:
由于结果数据庞大,我们在这里只列出n?5的情形。
当?1?0.6,?2?0.4时 当?1?0.4,?2?0.6时 人均总费用C 损失 (单位:元) 965 1.7 路线:1→11→7→4→8→1 人均总费用C 损失 (单位:元) 1028 1.6 路线:1→7→9→8→4→1 当?1?0.7,?2?0.3时 当?1?0.3,?2?0.7时 人均总费用C 损失 (单位:元) 946 1.8 路线:1→10→11→7→4→1 当?1?0.5,?2?0.5时
人均总费用C 损失 (单位:元) 987 1.6 路线:1→11→9→8→4→1 (其中数字1—11分别表示成都、九寨沟、黄龙、乐山、 峨嵋、四姑娘山、丹巴、都江堰、青城山、海螺沟、康定)
21
人均总费用C 损失 (单位:元) 1206 0.9 路线:1→11→9→8→4→1 由以上结果,我们推荐路线为:成都→康定→青城山→都江堰→乐山→成都,相应人均消费987元,阴雨天气带来的损失为1.6。
6 模型的评价、改进及推广
6.1.模型的评价
1.本文思路清晰,模型恰当,得出的方案合理;
2.本文成功的使用了0—1变量,使模型的建立和编程得以顺利进行; 3.在第二问中采用了TCP算法,简化了模型的求解难度;
4.问题五由于数据庞大,对程序的要求很高,尽管经过了检验,但结果依然比较粗糙,有待进行进一步的改进。 6.2.模型的改进与推广:
1.实际情况中,两景点之间可能还有出公路外其他交通方式,如航班、铁路,
增加这些考虑后,结果会更加合理。
2.因数据资料搜集的不完整,准确性也有待商榷,而且没有对最终方案进行更为细致的讨论研究,这些方面有待改进。
7 参考文献
[1]姜启源 谢金星 叶俊,《数学模型(第三版)》,北京:高等教育出版社,2003。 [2]谢金星 薛毅,《优化建模与LINDO/LINGO软件》,北京:清华大学出版社,2005。 [3]周仁郁,《SPSS13.0统计软件》,成都,西南交通大学出版社,2005。 [4]李庆扬 王能超 易大义,《数值分析》,北京:清华大学出版社 施普林格出版社,2001。
22
8 附录
附录清单:附录1为搜集的一些数据
附录2为相关程序及运行结果
附录1:
网上查询到的一些数据及相应的计算出的数据:
?tij?11?11= 0 8.54 4.74
2.82 3.44 5.08 8.4 1.32 8.54 0 1.22 11.52 12.14 10.9 13.1 8.84 4.74 1.22 0 11.22
11.82 9.38 11.58 7.66 2.82 11.52 11.22 0 0.88
7.78 8.08 4.02 3.44 12.14 11.82 0.88 0 8.42 8.24 4.66 5.08 10.9 9.38 7.78 8.42 0 2.18 4.24 8.4 13.1 11.58 8.08 8.24 2.18 0 6.08
1.32 8.84 7.66 4.02 4.66 4.24 6.08 0 1.54 8.98 7.46 4.24 4.88
4.04 6.22 0.3 6.14 14.84 13.44 5.84 6 5.98 3.86 6.28 6.6
15.54 13.9
6.3
6.46
6.74
2.86
6.74
?cij?11?11= 0 128 71 42 52 76 126 20 128 0 18 173 182 164 197 133 71 18 0 168 177 141 174 115 42 173 168 0 13 117 121 60 52 182 177 13 0 126 124 70 76 164 141 117 126 0 33 64 126 197 174 121 124 33 0 91 20 133 115 60 70 64 91 0 23 135 112 64 73 61 93 5 92 223 202 88 90 90 58 94 99
233
209
95
97
101
43 101 ?Pis?11?5=
0.15 0.1 0.3 0.8 0.7 0.5 0.6 1 0.8 0.8 0.5 0.5 0.4 0.5 0.5 1 0.9 1 0.3 0 0.2 0.1 0 0.1 0.5 0.5 0.7 0.3 0.3 0.4 0.4 0.6 0.3 0.3 0.2 0.6 0.6 0.6 0.5 0.8 0.3 0.1 0.3 0.2 0.2 0.1 0 0.1 0.1 0.4 0.3 0.3 0.2 0.4 0.9 0.9 0.5
0.3 0.3 0.4 0.3
0.8 1
23
1.54 6.14 8.98 14.84 7.46 13.44 4.24 5.84 4.88 6 4.04 5.98 6.22 3.86 0.3 6.28 0 6.08 6.08 0 6.54
2.08
23 92 135 223 112 202 64 88 73 90 61 90 93 58 5 94 0 91 91 0 98 31 0.3 0.1 0.6 0.3 0 0.4 0.3 0.1 0.4 0.6 0.1 0.1 0.2 0.2 0.9 0.8 0.9 0.9 6.6 13.9 6.3 6.46 6.74 2.86 6.74 6.54 2.08
0
99 233 209 95 97 101 43 101 98 31 0
0 0.2 0.4 0.1 0.6 1 0.3 0.8 0.9
15.54 0.2 0.1
0.6 0.1 0.6 0.3 0.4 0.3 0.1 0.5 0 0.6 0.8 0.8 0.7 0.7 0.6 0.63 0.4 0.4
附录2:程序及运行结果(由于数据庞大,只选择了部分数据) 第一问:
(程序) sets:
jingdian/1..11/:c,t,l;
!其中:1,2,...,11分别代表成都、九寨沟、黄龙、乐山、峨嵋、四姑娘山、丹巴、都江堰、青城山、海螺沟、康定;c,t分别表示旅行团在各景点的吃住消费和逗留时间;w表示各景点选择性权重;l是为了控制不出现两个以上环形回路而设的一个变量; links(jingdian,jingdian):r,cc,tt;
!其中:r为0-1变量(0表示两景点不相连,1表示两景点相通);cc为两景点之间的交通费用;tt为两景点之间的交通时间; endsets data:
t=7 24 18 12 36 30 12 9 15 24 17;
c=120 423 300 135 378 390 175 90 148 303 241; tt=0 8.54 4.74 2.82 3.44 5.08 8.4 1.32 1.54 6.14 6.6 8.54 0 1.22 11.52 12.14 10.9 13.1 8.84 8.98 14.84 15.54 4.74 1.22 0 11.22 11.82 9.38 11.58 7.66 7.46 13.44 13.9 2.82 11.52 11.22 0 0.88 7.78 8.08 4.02 4.24 5.84 6.3 3.44 12.14 11.82 0.88 0 8.42 8.24 4.66 4.88 6 6.46 5.08 10.9 9.38 7.78 8.42 0 2.18 4.24 4.04 5.98 6.74 8.4 13.1 11.58 8.08 8.24 2.18 0 6.08 6.22 3.86 2.86 1.32 8.84 7.66 4.02 4.66 4.24 6.08 0 0.3 6.28 6.74 1.54 8.98 7.46 4.24 4.88 4.04 6.22 0.3 0 6.08 6.54
6.14 14.84 13.44 5.84 6 5.98 3.86 6.28 6.08 0 2.08 6.6 15.54 13.9 6.3 6.46 6.74 2.86 6.74 6.54 2.08 0; !其中:主对角线为零,表示各景点到自身交通费用为零; cc=0 128.1 71.1 42.3 51.6 76.2 126 19.8 23.1 92.1 99
128.1 0 18.3 172.8 182.1 163.5 196.5 132.6 134.7 222.6 233.1 71.1 18.3 0 168.3 177.3 140.7 173.7 114.9 111.9 201.6 208.5 42.3 172.8 168.3 0 13.2 116.7 121.2 60.3 63.6 87.6 94.5 51.6 182.1 177.3 13.2 0 126.3 123.6 69.9 73.2 90 96.9 76.2 163.5 140.7 116.7 126.3 0 32.7 63.6 60.6 89.7 101.1 126 196.5 173.7 121.2 123.6 32.7 0 91.2 93.3 57.9 42.9 19.8 132.6 114.9 60.3 69.9 63.6 91.2 0 4.5 94.2 101.1 23.1 134.7 111.9 63.6 73.2 60.6 93.3 4.5 0 91.2 98.1 92.1 222.6 201.6 87.6 90 89.7 57.9 94.2 91.2 0 31.2
99 233.1 208.5 94.5 96.9 101.1 42.9 101.1 98.1 31.2 0; !其中:主对角线为零,表示各景点到自身的交通时间为零; n=?;
!其中:n表示计划游玩的景点数目;
24
enddata
min=@sum(jingdian(j):@sum(jingdian(i):r(i,j)*(cc(i,j)+0.5*(c(i)+c(j))))); !目标函数:表示计划游玩的景点数目为n时的最小费用; @for(jingdian(i):r(i,i)=0);
!约束条件:表示各景点到自身没有路线相连的约束条件; @for(jingdian(i)|i#ge#2:@for(jingdian(j)|j#ge#2:r(i,j)+r(j,i)<1));
!约束条件:表示除起点(成都)外,若旅行团从景点i到景点j去游玩(即r(i,j)=1),则不会再从景点j到景点i去游玩(即r(j,i)=0),也就是说除起点外每个景点只游玩一次; a=@sum(jingdian(j):@sum(jingdian(i):r(i,j)*(tt(i,j)+0.5*(t(i)+t(j))))); @sum(jingdian(j):@sum(jingdian(i):r(i,j)*(tt(i,j)+0.5*(t(i)+t(j)))))<120;
!约束条件:表示总的旅行时间(交通时间和景点逗留时间)不超过给定时间10天120小时; @for(jingdian(i):@sum(jingdian(j):r(i,j))=@sum(jingdian(j):r(j,i))); @for(jingdian(i)|i#eq#1:@sum(jingdian(j):r(i,j))=1); @for(jingdian(i)|i#ne#1:@sum(jingdian(j):r(i,j))<1);
!这三个约束条件:表示起点(成都)有且仅有一条路线出去和一条路线进来,其它景点要么有且仅有一条路线出去和一条路线进来,要么既没有路线出去也没有路线进来; @for(links:@bin(r));
!约束条件:表示0-1变量约束;
@sum(jingdian(j):@sum(jingdian(i):r(i,j)))=n; !约束条件:表示旅游景点的数目为n的约束;
@for(jingdian(i):@for(jingdian(j)|j#gt#1#and#j#ne#i:l(j)>=l(i)+r(i,j)-(n-2)*(1-r(i,j))+(n-3)*r(j,i))); @for(jingdian(i)|i#gt#1:l(i)
!这两个约束条件:为了控制不出现两个以上环形回路,保证有且仅有一条环形路线; 结果:(以n=5为例)
由于数据庞大,只剪切出重要的部分如下:
Global optimal solution found at iteration: 2042 Objective value: 949.1000
Variable Value Reduced Cost
N 5.000000 0.000000
R( 1, 4) 1.000000 169.8000
R( 4, 7) 1.000000 276.2000 R( 7, 9) 1.000000 254.8000 R( 8, 1) 1.000000 124.8000 R( 9, 8) 1.000000 123.5000
第二问: sets:
jingdian/1..11/:c,t,l;
!其中:1,2,...,11分别代表成都、九寨沟、黄龙、乐山、峨嵋、四姑娘山、丹巴、都江堰、青城山、海螺沟、康定;c,t分别表示旅行团在各景点的吃住消费和逗留时间;w表示各景点选择性权重;l是为了控制不出现两个以上环形回路而设的一个变量; links(jingdian,jingdian):r,cc,tt;
!其中:r为0-1变量(0表示两景点不相连,1表示两景点相通);cc为两景点之间的交通费用;tt为两景点之间的交通时间;
25