?ri?1ij?1 ?rij?1
j?1 同样,当i,j?2时,根据题意不可能出现rij?rji?1,即不可能出
现游客在两地间往返旅游,因为这样显然不满足游览景点尽量多的原则。因此我们可得约束:
rij?rji?0 (i,j=2,3,??,11)
5.1.3模型建立:
综上所述,我们可以得到总的模型为:
Min m=m1+m2
11111 =??rij?cij+???rij??ci?cj?
2i?1j?1i?1j?1约束条件:
111111111rij?tij+???rij??ti?tj??120 ??2i?1j?1i?1j?11111??ri?1j?11111ij?n (n=2,3,??,11)
?rii?1ij??rjij?1 (i,j=1,2,??,11)
?rij?1 ?rij?1
j?1rij?rji?0 (i,j=2,3,??,11)
5.1.4 模型求解与结果分析: 在这里我们引入以下符号:
dij——第i个景点和第j个景点之间的路程;
v——代表们所乘坐的旅游大巴的平均时速,v=50km/h; m——代表们所乘坐的旅游大巴的平均费用,h=0.3元/h;
通过上网查询资料,我们可以得到dij的具体值,根据公式tij=dij/v可得到相应的tij,同样根据公式cij=dij×m可以得到相应的cij(i,j=1,2,??,11)。(dij、tij和cij的具体数值见附录)
同样,通过对四川的一些旅行社进行咨询,我们得出会议代表们在第i个景点的最佳逗留时间和他们在第i个景点总消费:
6
t10 t11 24 17 (单位:小时) c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 120 423 300 135 378 390 175 90 148 303 241 (单位:元) 从而根据模型,使用Lingo编程,得出结果如下表: 旅游景点数n 2 3 4 每人总花费m250 406 623 (单位:元) 路线 1→8→1 1→9→8→1 1→4→8→9→1 旅游景点数n 5 6 每人总花费m 949 1207 (单位:元) 路线 1→8→9→7→4→1 1→4→11→7→9→8→1 t1 7 t2 24 t3 18 t4 12 t5 36 t6 30 t7 12 t8 9 t9 15 旅游景点数n 7 每人总花费m1534 (单位:元) 路线 1→4→10→11→7→9→8→1 (其中数字1—11分别表示成都、九寨沟、黄龙、乐山、 峨嵋、四姑娘山、丹巴、都江堰、青城山、海螺沟、康定)
对于上述结果,我们的推荐为:
路线一:成都→乐山→都江堰→青城山→成都
旅游景点数:4 人均费用:623元;
路线二:成都→都江堰→青城山→丹巴→乐山→成都
旅游景点数:5 人均费用:949元;
路线三:成都→乐山→康定→丹巴→青城山→都江堰→成都
旅游景点数:6 人均费用:1207元。
5.2 问题二
5.2.1 目标函数的确立:
此问与第一问大同小异,不同的是代表们要完成所有景点的旅游,而目标函数是求最少的交通费。由第一问结论可知,交通费用为:m1???rij?cij
i?1j?11111因此,该问题的目标函数为:
Min m1???rij?cij
i?1j?111115.2.2 约束条件: ①时间约束
7
该问与上一问相比,放宽了对时间的要求,不妨可以假定限制的时间为一个月(360个小时),同上一问可得:
11111rij?tij+???rij??ti?tj??360 ??2i?1j?1i?1j?1②旅游景点数约束
由题目要求可知,因为代表们时间充裕,因此他们打算游览完全部11个景点。由第一问知道??rij表示代表们游览的景点总数,因此该约束为:
i?1j?11111111111
??ri?1j?111ij?11 (i,j=1,2,??,11)
③0——1变量约束
根据假设,整个旅游路线是环形,即最终代表们要回到成都,因此我们可以把整个路线看做一个Hamilton圈,这样该问题就归结为货郎担(TSP)问题,当然前提是我们已经知道了要旅游所有的景点。因此,对于Hamilton圈中的每个点来说,只允许有一条边进入,同样,也只允许有一条边出去。用公式表示即为:
?rij?1 ?rij?1 (i,j=1,2,??,11)
ij同样,当i,j?2时,根据题意不可能出现rij?rji?1,即不可能出 现游客在两地间往返旅游,因为这样显然不满足游览景点尽量多的原则。因此我们可得约束:
rij?rji?0 (i,j=2,3,??,11)
5.2.3模型建立:
综上所述,我们可以得到总的模型为:
Min m1???rij?cij
i?1j?11111
约束条件:
11111rij?tij+???rij??ti?tj??360 ??2i?1j?1i?1j?11111??ri?1j?11111ij?11 (i,j=1,2,??,11)
?riij?1 ?rij?1 (i,j=1,2,??,11)
jrij?rji?0 (i,j=2,3,??,11)
8
5.2.4 模型求解与结果分析:
根据模型,使用Lingo编程,得出结果为: 旅游景点数n 11 每人总花费m 3243 (单位:元) 成都→乐山→峨眉→海螺沟→康定→丹巴→四姑路线 娘山→青城山→都江堰→九寨沟→黄龙→成都
5.3 问题三
5.3.1目标函数的确立 5.3.1.1问题的再次分析
此问在第一问的基础上增加了代表们意愿这一条件,通过对附件一的观察,我们发现代表们的意愿分为“去”、“不去”和“无所谓”三种。怎样将这些文字转换到公式中来表达代表们的意愿就成为了解决该问的关键。在这里我们采用加权重的方式,将代表们的意愿理解为对该线路上两个景点的权重,又因为我们最终的目标是使旅游的费用最少,因此越热门的景点相应的权重也应该越低(这是因为权重越低,其与该景点的费用相乘后也越低,从而增加了对该景点游览的可能性)。
5.3.1.2数据处理
将所有的“去”替换为0,所有的“不去”替换为1,所有的“无所谓”替换为0.5,从而得到一个100?5的矩阵?Aks?100?5(见附录)。 我们定义:
?i——第i个旅游景点的权重。
由假设可知成都是代表们肯定要游览的一个景点,因此?1?0。 对其他权重进行标准化处理可得:
?2??3???Ak?1s?1100k?11005k?11005?A100k1=0.185 ?4??5?ks??Ak?1s?1100k?11005k?11005?A100k2=0.217
ks?6??7??Ak3??Ak?1s?1=0.196 ?8??9??Ak4=0.206
ksks??Ak?1s?1 9
?10??11???Ak?1s?1k?11005?A100k10.196
ks5.3.1.3确定目标函数
本文我们的做法同样是在满足相应的约束条件下,先确定游览的景点数,然后计算出在这种情况下的最小花费。这样最终会得出几种最佳方案,而组织方可以根据自己的实际情况进行选择。
游览的总费用由2部分组成,分别为交通总费用和在旅游景点的花费。又根据假设,参观景点的人数每增加一人,在景点的总费用就减少原价的1?,由于共有100名代表,这就相当于每人在旅游景点的花费打了“九折”,因此得目标函数为:
11111Min m?=100????i?rij?cij+ ?90????i?rij??ci?cj?
2i?1j?1i?1j?11111而所得结果所对应的每个代表的总花费为:
1901111 m=??rij?cij+ ????rij??ci?cj?
2100i?1j?1i?1j?15.3.2 约束条件
①时间约束
由题目可知,代表们在川的旅游时间应该不多于10天(120小时),而这
些时间包括在路途中的时间和在旅游景点逗留的时间。因为tij表示从第i个景点到第j个景点路途中所需时间,所以路途中所需总时间为??rij?tij;
i?1j?111111111ti表示会议代表们在第i个景点的逗留时间,故代表们在旅游景点的总逗留11111时间为???rij??ti?tj?。因此,总的时间约束为:
2i?1j?111111rij?tij+???rij??ti?tj??120 ??2i?1j?1i?1j?1 ②旅游景点数约束
根据假设,整个旅游路线是环形,即最终代表们要回到成都,因此
1111??ri?1j?11111ij即表示代表们旅游的景点数,这里我们假定要旅游的景点数为n(n=2,3,??,11)。因此旅游景点数约束为:
??ri?1j?11111ij?n (n=2,3,??,11)
10