最佳旅游线路-数学建模_第1页
最佳旅游线路-数学建模_第2页
最佳旅游线路-数学建模_第3页
最佳旅游线路-数学建模_第4页
最佳旅游线路-数学建模_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最正确云南旅游路线设计摘要本文主要研究最正确旅游路线的设计问题。在满足相关约束条件的情况下,花最少的钱游览尽可能多的景点是我们追求的目标。基于对此的研究,建立数学模型,设计出最正确的旅游路线。第一问给定时间约束,要求为设计适宜的旅游路线。我们建立了一个最优规划模型,在给定游览景点个数的情况下以人均总费用最小为目标。再引入0—1变量表示是否游览某个景点,从而推出交通费用和景点花费的函数表达式,给出相应的约束条件,使用lingo编程对模型求解。推荐方案:第二问放松时间约束,要求游客们游遍所有的景点,该问题也就成了典型的货郎担〔TSP〕问题。同样使用第一问的模型,改变时间约束,使用lingo编程得到最正确旅游路线为:本文思路清晰,模型恰当,结果合理.由于附件所给数据的繁杂,给数据的整理带来了很多麻烦,故我们利用Excel排序,SPSS预测,这样给处理数据带来了不少的方便。本文成功地对0—1变量进行了使用和约束,简化了模型建立难度,并且可方便地利用数学软件进行求解。此外,本文建立的模型具有很强普适性,便于推广。关键词:最正确路线TCP问题景点个数最小费用一问题重述云南是我国的旅游大省,拥有丰富的旅游资源,吸引了大批的省外游客,旅游业正在成为云南的支柱产业。随着越来越多的人选择到云南旅游,旅行社也推出了各种不同类型的旅行路线,使得公众的面临多条线路的选择问题。假设某一个从没有到过云南的人准备在假期带家人到云南旅游,预计从昆明出发,并最终返回昆明。请你们为他设计一条在云南旅游的最正确路线初步设想有如下线路可供选择:一号线:昆明-玉溪-思茅二号线:昆明-大理-丽江三号线:昆明-大理-香格里拉四号线:昆明-玉溪-西双版纳五号线:昆明-玉溪-思茅-西双版纳-大理-丽江-香格里拉每条线路中的景点可以全部参观,也可以参观其中之一。结合上述要求,请你答复以下问题:一、请你们为游客设计适宜的旅游路线,假设使游客在10天时间内花最少的钱尽可能的游更多的地方。二、如果有游客的时间非常充裕〔比方一个月〕,游客打算将上述旅游景点全部参观完毕后才离开云南,请你们为游客设计适宜的旅游路线,使在云南境内的交通费用尽量地节省。二问题分析2.1问题背景的理解:根据对题目的理解我们可以知道,旅游的总费用包括交通费用和在景点游览时的费用,而在确定了要游览的景点的个数后,所以我们的目标就是在满足所有约束条件的情况下,求出本钱的最小值。2.2问题一和问题二的分析:问题一要求我们为游客设计适宜的旅游路线,假设使游客在10天时间内花最少的钱游尽可能多的地方。在这里我们的做法是在满足相应的约束条件下,先确定游览的景点数,然后计算出在这种情况下的最小花费。这样最终会得出几种最正确方案,而游客可以根据自己的实际情况进行选择。问题二实质上是在问题一的根底上改变了时间约束,即游客要游览所有的景点,我们完全可以使用与问题一同样的方法进行求解。三模型假设1.所给的5条路线每条路线中的景点可以全部参观,也可以参观其一;2.游客使用旅游大巴安排他们往返于各个旅游景点,其交通费用、在景点的花费、在景点的逗留时间参照当地客运公司及旅行社的数据;3.游客们所乘坐的旅游大巴平均时速为50km/h,平均费用为0.3元/km;4.一个景点直接到达另外一个景点是指,途中经过的其他景点只是一个转站地,而并不进行游览;5.在限定的时间内,游客最终要返回昆明,并且假设昆明是游客们肯定要去的一个旅游景点;6.游客们在途中和游览景点的时间为12小时,而另外12小时为休息、用餐及其他琐事时间。四符号说明,——第个或者第个景点,,=1,2,……,7;分别表示昆明玉溪思茅西双版纳大理丽江香格里拉——每个游客的旅游总花费;——每个游客在第个景点的逗留时间;——每个游客在个景点的总消费;——从第个景点到第个景点路途中所需时间;——从第个景点到第个景点所需的交通费用;五模型建立及求解5.1问题一:目标函数确实立:经过对题目分析,我们可以知道此题所要实现的目标是,使游客在10天时间内花最少的钱游览尽可能多的地方。显然,花费最少和游览的景点尽量多是该问题的两个目标。因此,我们的做法是在满足相应的约束条件下,先确定游览的景点数,然后计算出在这种情况下的最小花费。这样最终会得出几种旅游路线,而游客可以根据自己的实际情况进行选择。游览的总费用由2局部组成,分别为交通总费用和在旅游景点的花费。我们定义:——每个游客的旅游总花费;——每个游客的交通总费用;——每个游客的旅游景点的花费;从而得到目标函数:Min=+〔1〕交通总花费因为表示从第个景点到第个景点所需的交通费用,而是判断游客是否从第个景点直接到第个景点的0—1变量,因此我们可以很容易的得到交通总费用为:〔2〕旅游景点的花费因为表示游客在个景点的总消费,也可以表示出游客是否到达过第个和第个景点,而整个旅游路线又是一个环形,因此实际上将游客在所到景点的花费计算了两遍,从而我们可得旅游景点的花费为:从而我们可以得到目标函数为:Min=+=+约束条件:①时间约束假设游客在云南的旅游时间应该不多于10天(120小时),而这些时间包括在路途中的时间和在旅游景点逗留的时间。因为表示从第个景点到第个景点路途中所需时间,所以路途中所需总时间为;表示游客在第个景点的逗留时间,故游客在旅游景点的总逗留时间为。因此,总的时间约束为:+120②旅游景点数约束根据假设,整个旅游路线是环形,即最终游客要回到成都,因此即表示游客旅游的景点数,这里我们假定要旅游的景点数为〔=2,3,……,11〕。因此旅游景点数约束为:〔=2,3,……,7〕③0——1变量约束我们可以把所有的景点连成一个圈,而把每一个景点看做圈上一个点。对于每个点来说,只允许最多一条边进入,同样只允许最多一条边出来,并且只要有一条边进入就要有一条边出去。因此可得约束:〔,=1,2,……,7〕当时,因为昆明是出发点,所以;时,因为游客最终要回到昆明,所以。综合以上可知,〔,=1,2,……,7〕同样,当,时,根据题意不可能出现,即不可能出现游客在两地间往返旅游,因为这样显然不满足游览景点尽量多的原那么。因此我们可得约束:〔,=2,3,……,7〕模型建立:综上所述,我们可以得到总的模型为:Min=+=+约束条件:+120〔=2,3,……,7〕〔,=1,2,……,7〕〔,=2,3,……,7〕模型求解与结果分析:在这里我们引入以下符号:——第个景点和第个景点之间的路程;——游客所乘坐的旅游大巴的平均时速,=50km/h;——游客所乘坐的旅游大巴的平均费用,=0.3元/h;通过上网查询资料,我们可以得到的具体值,根据公式=/可得到相应的,同样根据公式=×可以得到相应的〔,=1,2,……,7〕。〔、和的具体数值见附录〕同样,通过对云南的一些旅行社进行咨询,我们得出游客在第个景点的最正确逗留时间和游客在第个景点总消费:t1t2t3t4t5t6t7(单位:小时)c1c2c3c4c5c6c7(单位:元)从而根据模型,使用Lingo编程,得出结果如下表:旅游景点数n234每人总花费m〔单位:元〕路线旅游景点数n56每人总花费m〔单位:元〕路线旅游景点数n7每人总花费m〔单位:元〕路线〔其中数字1,2,……,7;分别表示昆明玉溪思茅西双版纳大理丽江香格里拉〕对于上述结果,我们的推荐为:路线一:路线二:路线三:5.2问题二目标函数确实立:此问与第一问大同小异,不同的是游客要完成所有景点的旅游,而目标函数是求最少的交通费。由第一问结论可知,交通费用为:因此,该问题的目标函数为:Min约束条件:①时间约束该问与上一问相比,放宽了对时间的要求,不妨可以假定限制的时间为一个月〔360个小时〕,同上一问可得:+360②旅游景点数约束由题目要求可知,因为游客时间充裕,因此他们打算游览完全部7个景点。由第一问知道表示游客游览的景点总数,因此该约束为:(,=1,2,……,7)③0——1变量约束根据假设,整个旅游路线是环形,即最终游客要回到昆明,因此我们可以把整个路线看做一个Hamilton〔哈密尔顿〕圈,这样该问题就归结为货郎担〔TSP〕〔哈密尔顿〕问题,当然前提是我们已经知道了要旅游所有的景点。因此,对于Hamilton圈中的每个点来说,只允许有一条边进入,同样,也只允许有一条边出去。用公式表示即为:〔,=1,2,……,7〕同样,当,时,根据题意不可能出现,即不可能出现游客在两地间往返旅游,因为这样显然不满足游览景点尽量多的原那么。因此我们可得约束:〔,=2,3,……,7〕模型建立: 综上所述,我们可以得到总的模型为:Min约束条件:+360〔,=1,2,……,7〕〔,=1,2,……,7〕〔,=2,3,……,7〕模型求解与结果分析:根据模型,使用Lingo编程,得出结果为:旅游景点数n7每人总花费m〔单位:元〕路线六模型的评价、改良及推广6.1.模型的评价1.本文思路清晰,模型恰当,得出的方案合理;2.本文成功的使用了0—1变量,使模型的建立和编程得以顺利进行;3.在第二问中采用了TCP算法,简化了模型的求解难度;4.问题五由于数据庞大,对程序的要求很高,尽管经过了检验,但结果依然比拟粗糙,有待进行进一步的改良。6.2.模型的改良与推广:1.实际情况中,两景点之间可能还有出公路外其他交通方式,如航班、铁路,增加这些考虑后,结果会更加合理。2.因数据资料搜集的不完整,准确性也有待商榷,而且没有对最终方案进行更为细致的讨论研究,这些方面有待七参考文献[1]姜启源谢金星叶俊,《数学模型〔第三版〕》,北京:高等教育出版社,2003。[2]谢金星薛毅,《优化建模与LINDO/LINGO软件》,北京:清华大学出版社,2005。[3]周仁郁,《SPSS13.0统计软件》,成都,西南交通大学出版社,2005。[4]李庆扬王能超易大义,《数值分析》,北京:清华大学出版社施普林格出版社,2001。八附录附录清单:附录1为搜集的一些数据附录2为相关程序及运行结果附录1:网上查询到的一些数据及相应的计算出的数据:==附录2:程序及运行结果〔由于数据庞大,只选择了局部数据〕第一问:〔程序〕sets:jingdian/1..7/:c,t,l;!其中:1,2,...,7分别代表昆明玉溪思茅西双版纳大理丽江香格里拉;c,t分别表示旅行团在各景点的吃住消费和逗留时间;w表示各景点选择性权重;l是为了控制不出现两个以上环形回路而设的一个变量;links(jingdian,jingdian):r,cc,tt;!其中:r为0-1变量〔0表示两景点不相连,1表示两景点相通〕;cc为两景点之间的交通费用;tt为两景点之间的交通时间;endsetsdata:t=72418123630129152417;c=12042330013537839017590148303241;tt=0 8.54 4.74 2.82 3.44 5.08 8.4 1.32 1.54 6.14 6.68.54 0 1.22 11.52 12.14 10.9 13.1 8.84 8.98 14.84 15.544.74 1.22 0 11.22 11.82 9.38 11.58 7.66 7.46 13.44 13.92.82 11.52 11.22 0 0.88 7.78 8.08 4.02 4.24 5.84 6.33.44 12.14 11.82 0.88 0 8.42 8.24 4.66 4.88 6 6.465.08 10.9 9.38 7.78 8.42 0 2.18 4.24 4.04 5.98 6.748.4 13.1 11.58 8.08 8.24 2.18 0 6.08 6.22 3.86 2.861.32 8.84 7.66 4.02 4.66 4.24 6.08 0 0.3 6.28 6.741.54 8.98 7.46 4.24 4.88 4.04 6.22 0.3 0 6.08 6.546.14 14.84 13.44 5.84 6 5.98 3.86 6.28 6.08 0 2.086.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 99128.1 0 18.3 172.8 182.1 163.5 196.5 132.6 134.7 222.6 233.171.1 18.3 0 168.3 177.3 140.7 173.7 114.9 111.9 201.6 208.542.3 172.8 168.3 0 13.2 116.7 121.2 60.3 63.6 87.6 94.551.6 182.1 177.3 13.2 0 126.3 123.6 69.9 73.2 90 96.976.2 163.5 140.7 116.7 126.3 0 32.7 63.6 60.6 89.7 101.1126 196.5 173.7 121.2 123.6 32.7 0 91.2 93.3 57.9 42.919.8 132.6 114.9 60.3 69.9 63.6 91.2 0 4.5 94.2 101.123.1 134.7 111.9 63.6 73.2 60.6 93.3 4.5 0 91.2 98.192.1 222.6 201.6 87.6 90 89.7 57.9 94.2 91.2 0 31.299 233.1 208.5 94.5 96.9 101.1 42.9 101.1 98.1 31.2 0;!其中:主对角线为零,表示各景点到自身的交通时间为零;n=?;!其中:n表示方案游玩的景点数目;enddatamin=@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-1-(n-2)*r(1,i);l(i)>1+(n-2)*r(i,1));!这两个约束条件:为了控制不出现两个以上环形回路,保证有且仅有一条环形路线;结果:〔以n=5为例〕由于数据庞大,只剪切出重要的局部如下:Globaloptimalsolutionfoundatiteration:2042Objectivevalue:949.1000VariableValueReducedCostN5.0000000.000000R(1,4)1.000000169.8000R(4,7)1.000000276.2000R(7,9)1.000000254.8000R(8,1)1.000000124.8000R(9,8)1.000000123.5000第二问:sets:jingdian/1..7/:c,t,l;!其中:1,2,...,7分别代表昆明玉溪思茅西双版纳大理丽江香格里拉;c,t分别表示旅行团在各景点的吃住消费和逗留时间;l是为了控制不出现两个以上环形回路而设的一个变量;links(jingdian,jingdian):r,cc,tt;!其中:r为0-1变量〔0表示两景点不相连,1表示两景点相通〕;cc为两景点之间的交通费用;tt为两景点之间的交通时间;endsetsdata:t=72418123630129152417;c=12042330013537839017590148303241;tt=0 8.54 4.74 2.82 3.44 5.08 8.4 1.32 1.54 6.14 6.68.54 0 1.22 11.52 12.14 10.9 13.1 8.84 8.98 14.84 15.544.74 1.22 0 11.22 11.82 9.38 11.58 7.66 7.46 13.44 13.92.82 11.52 11.22 0 0.88 7.78 8.08 4.02 4.24 5.84 6.33.44 12.14 11.82 0.88 0 8.42 8.24 4.66 4.88 6 6.465.08 10.9 9.38 7.78 8.42 0 2.18 4.24 4.04 5.98 6.748.4 13.1 11.58 8.08 8.24 2.18 0 6.08 6.22 3.86 2.861.32 8.84 7.66 4.02 4.66 4.24 6.08 0 0.3 6.28 6.741.54 8.98 7.46 4.24 4.88 4.04 6.22 0.3 0 6.08 6.546.14 14.84 13.44 5.84 6 5.98 3.86 6.28 6.08 0 2.086.6 15.54 13.9 6.3 6.46 6.74 2.86 6.74 6.54 2.08 0;!其中:主对角线为零,表示各景点到自身交通费用为零;cc=0 12871 42 52 77 126 20 23 92 99128 0 18173 182164 197 133 135 223 23371 18 0 168 177 141 174 115 112 202 20942 173 168 0 13 117121 60. 64 88 9552 182 177 13 0 126 124 70 73 90 9776 164141 117 126 0 33 64 61 90 101126 197 174 121 124 33 0 91 93 58 4320 133 115 60 70 64 91 0 5 94 10123 135 112 64 73 61 93 5 0 91 9892 223 202 88 90 90 58 94 91 0 3199 233 209 95 97 101 43 101 98 31 0;!其中:主对角线为零,表示各景点到自身的交通时间为零;enddatamin=@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)))))<360;!约束条件:表示总的旅行时间〔交通时间和景点逗留时间〕不超过给定时间30天360小时;@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)))=11;!约束条件:表示旅游景点的数目为n的约束;@for(jin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论