数学建模论文旅游线路的优化设计.docx
《数学建模论文旅游线路的优化设计.docx》由会员分享,可在线阅读,更多相关《数学建模论文旅游线路的优化设计.docx(38页珍藏版)》请在冰豆网上搜索。
数学建模论文旅游线路的优化设计
数学建模论文-旅游线路的优化设计
一、问题重述
随着人们的生活不断提高,旅游已成为提高人们生活质量的重要活动。
江苏徐州有一位旅游爱好者打算在今年的五月一日早上8点之后出发,到全国一些著名景点旅游,
由于跟团旅游会受到若干限制,他(她)打算自己作为背包客出游。
他预最后回到徐州。
选了十个省市旅游景点,如附表1(见附录I)所示。
假设
(A)城际交通出行可以乘火车(含高铁)、长途汽车或飞机(不允许包车或包机),并且车
票或机票可预订到。
(B)市内交通出行可乘公交车(含专线大巴、小巴)、地铁或出租车。
(C)旅游费用以网上公布为准,具体包括交通费、住宿费、景点门票(第一门票)。
晚上20:
00至次日早晨7:
00之间,如果在某地停留超过6小时,必须住宿,住宿费用不超
过200元/天。
吃饭等其它费用60元/天。
(D)假设景点的开放时间为8:
00至18:
00。
问题:
根据以上要求,针对如下的几种情况,为该旅游爱好者设计详细的行程表,该行程表应包括具体的交通信息(车次、航班号、起止时间、票价等)、宾馆地点和名称,门票费用,
信息。
在景点的停留时间等
(1)如果时间不限,游客将十个景点全游览完,至少需要多少旅游费用,请建立相关数
学模型并设计旅游行程表。
(2)如果旅游费用不限,游客将十个景点全游览完,至少需要多少时间,请建立相关数
学模型并设计旅游行程表。
(3)如果这位游客准备2000元旅游费用,想尽可能多游览景点,请建立相关数学模型并
设计旅游行程表。
(4)如果这位游客只有5天的时间,想尽可能多游览景点,请建立相关数学模型并设计
旅游行程表。
(5)如果这位游客只有5天的时间和2000元的旅游费用,想尽可能多游览景点,请建立
相关数学模型并设计旅游行程表。
二、问题假设
1、忽略乘坐出租车时经过收费路段所交的费用;
2、在每个城市中停留时,难免会遇到等车、堵车等延时情况,在此问题中我们不做考
虑;
3、所有旅馆都未客满,并且忽略从旅馆到火车站或景点的时间;
4、列车车次和飞机航班没有晚点等情况发生;
5、列车和飞机的票足够,没有买不到票的情况发生;
6、景点的开放,列车和航班的运营不受天气的影响;
7、绘图时,经线和纬线近似平行分布;
8、将城市和路径的关系转化为图论问题;
9、在时间的认识上,我们把当天的8点至次日的8点作为一天。
1
三、符号说明
有向图矩阵G
城市V
路径A
要经过的城市总数n
d任意两城市之间的距离ij
x是否经过两座城市ij
路径上的信息量ij
n启发函数ij
信息启发式因子,
期望启发式因子
kpt蚂蚁在时刻由城市转向城市的转移概率jtki,,ij
tabu第只蚂蚁的禁忌搜索表kk
信息素挥发系数
k,,t时刻蚂蚁在路径上留下的信息素量ijtk,,ij
L到目前为止所找到的全局最短路径长度短
Q蚂蚁携带的信息素量
L本次循环中第只蚂蚁所走的路程长度kk
蚂蚁的总数量m
蚂蚁的编号k
n所记录的循环次数c
n最大循环次数cmax
四、问题分析
4.1问题一的分析
针对问题一,要求求出将旅游景点全游览完,所需的最少旅游费用。
这和问题,TSP即旅行商问题有些类似,所以本文将问题向问题进行一定的转化,从而进行求解。
TSP
因为运用传统的动态规划解法,解法的空间复杂性和时间复杂性都十分庞大,不利于求解,所以采用蚁群算法,通过计算机软件进行编程得到路程最短的旅行路线。
Matlab
因题目要求时间不限,用最少的旅游费用游览全部景点,而考虑到不同交通工具的速度和票价都不相同,各个旅馆的住宿费用也不相同,所以我们对其行程进行详细的安排,尽量减少其在交通和住宿上的费用,减少不必要的花费。
最后得出一个最少旅游费用的旅游行程表。
4.2问题二的分析
针对问题二,要求求出将旅游景点全游览完,所需的最少时间。
因为考虑到交通工具的不同导致时间上的差异问题,所以仅用问题一的模型不能求解。
但是由于任意两座
2
城市之间都能相连接起来,且每座城市只经过一次,所以将任意两座城市之间的路程转变为时间,建立最优化模型,通过计算机软件进行编程,到时间最短的旅游路线。
Lingo
然后,根据题目要求,再对其行程进行详细的安排,尽量避免不必要的时间。
最后得出一个最短时间的旅游行程表。
4.3问题三的分析
针对问题三,题目给出了限制条件,旅游费用不超过2000元。
只用2000元游览完全部景点是不可能的,所以我们对其行程进行优化。
首先,将问题一的旅游行程根据旅游景点和交通路线划分成21个部分(包括10个景点和11条交通线路),并计算出每一个部分所要花费的旅游费用。
然后,对旅游行程进行优化计算,为了简化运算,我们假设交通线路上花费的费用只是简单相加。
通过除去旅游景点计算出2000元以下的费用最优解。
最后得出一个2000元以下的旅游行程表。
4.4问题四的分析
针对问题四,题目也给出了限制条件,旅游时间不超过5天。
只用5天游览完全部景点是不可能的,所以我们对其行程进行优化。
解法与问题三大致相同。
首先,对问题二的旅游行程也根据旅游景点和交通路线划分成21部分(包括10个景点和11条交通线路),并计算出每一个部分所要花费的时间。
然后,对旅游行程进行优化计算,为了简化运算,我们假设交通线路上花费的时间只是简单相加。
通过除去旅游景点计算出5天以内的时间最优解。
最后得出一个5天以内的旅游行程表
4.5问题五的分析
针对问题五,题目给出了两个限制条件,旅游费用不超过2000元,并且旅游时间在5天以内。
只用5天和2000元游览完10个景点是不可能的,所以我们对其进行优化。
由于飞机价格非常高,所以我们基于第三问,并且结合第四问的数据对其进行优化。
首先,对旅游行程也根据旅游景点和交通路线划分成21部分(包括10个景点和11条交通线路),并计算出每一部分所要花费的时间和费用。
然后,对旅游行程进行优化计算,为了简化运算,我们假设交通线路上花费的时间和费用只是简单相加。
通过除去旅游景点计算出2000元以下和5天以内的时间最优解。
最后得出一个最优旅游行程表。
五、模型的建立与求解
5.1问题一的求解
5.1.1建立图论的数学模型
将各个旅游景点之间的关系转化为图论问题,并做以下分析:
建立有向图。
其中称为图的顶点集,中的每一个VVVV,{,,......,}GVA,(,)GV12n
元素称为该图的一个顶点,在该题中表示城市;称为Vin(1,2,......),Aaaa,{,,......}ni12n
A图的弧集,中的每个元素称为该图的一条从到的弧,在此题中表示aVV,(,)VVGkijji[1]各个城市两两连线的集合。
设城市个数为,表示两个城市与之间的距离,0或1(1表示走过城市djx,niiijij
到城市的路,0表示没有选择走这条路)。
本题可以向问题进行转化,则问题jTSPTSP的数学模型为:
mindx,ijij,ij
5.1.2建立蚂蚁算法的数学模型
3
(1)状态转移规则
因为蚂蚁不能重复经过一个城市,所以建立禁忌表来记录蚂蚁tabukm(1,2,......),kk走过的城市,禁忌表随着时间做动态变化。
建立蚂蚁由城市转移到城市的状态转移概率如下:
jki
,,,,,,()()tt,,ijik,,,jtabu,k,,k()()tt,,,,,,,
(1)pt(),,isis,ij,stabuk,
0jtabu,k,
上式中为信息启发式因子,表示路径的相对重要性,是对所积累的信息素影响作,
用的一个加权值;为期望启发式因子,表示能见度的相对重要性;,
每只蚂蚁必须依据以城市距离和连接边上信息素的数量为变量的概率函数,决定选择下一个城市的概率。
每只蚂蚁必须根据禁忌表和概率函数寻找下一个城市,以保证该蚂蚁从起点出发经过所有城市有且只有一次,并且最终返回到起点。
(2)信息素的全局更新规则
当只蚂蚁成功的完成一次寻径过程之后,将选出目标函数值最小的路径,用以完m
成全局信息素的更新,使得较优解保留下来,对后继蚂蚁产生影响,加快收敛到最优解的速度。
设,为两个相连接点,则有:
ji
(2),,,,,(,)1,,ijijij,,,,,,,,,,,,,ijijij
其中,变量是在时刻,节点之间路上信息素的增加量ij,,,ij,t,,ij
1,ifijglobalbesttour,,,,()L,,短,,,ij,,,,ijotherwise0,
是位于[0,1]上的“激素”挥发因子;为到目前为止所找到全局最短路径长度。
L短
(3)信息素的局部更新
对于第只蚂蚁,在建立一个解得过程中也同时进行激素迹的更新,如果节点是ij,k
它所选择路径上的两个相邻节点,规则如下:
,,,,()1ttt,,,,,,,,,,,,,ijijij
否则,不更新。
其中,,,是各条路上的信息素的初始值,,,,,()t0,,,1,ij00
通常取同一值,表示同一环境。
k信息素的更新策略有很多种方法,每种更新策略的主要差别体现在的求法,,t,,ij上。
我们规定蚂蚁在完成一个循环后更新所有路径上的信息素,其方程式为:
Q,ki,j蚂蚁本次循环经过(),kL,,,t(3),,,kij
0否则,
上式中表示蚂蚁携带信息素的量,其值的大小影响算法的收敛速度;表示第QLkk只蚂蚁在本次循环中所走的路程总长度。
[2]5.1.3基于蚁群算法的实现步骤
本题基于蚁群算法的实现步骤如下:
:
初始化。
时间,循环次数,设置最大循环次数为,;n,,,00step1n,0t,0,,ccijmax
4
:
循环次数;step2n,,c
:
蚂蚁个数;step3k,,
:
蚂蚁选择可以到达的城市,按照状态转移规则移动到下一个城市;jstep4
:
对于城市,由于已经到达,所以添加到禁忌表中;jstep5
:
判断所有城市是否都经过,若未完全经过,表明蚂蚁个数没有达到,则step6m
转向执行,否则执行;step3step7
:
由于信息素改变,要求按照公式
(2)(3)更新最短路径信息素,使得较优step7
解保留,加快收敛到最优解的速度;
:
若表明没有满足终止条件,即转向执行,否则执行;step8nn,step2step9ccmax
:
输出最优结果。
step9
5.1.4模型的求解
(1)求解城市之间的距离
首先,假设经线和纬线近似平行分布,根据附表2(见附录I)可知11座城市的经
轴,以经度最小的城市所纬坐标。
建立直角坐标系,以纬度最低的城市所在的纬线为x
在的经线为轴,计算11座城市的坐标。
y
将城市进行编号,计算相应城市间的距离得到附表3(见附录I),得到编程数据(见附录II)。
(2)求解最短路径
利用上述蚁群算法的步骤,使用附录II的数据,编写程序,得出以下结果:
MatlabShortest_Route=
6954312117108
图一:
模拟图Matlab
对上述结果进行处理,根据城市编号求出最优解为:
徐州?
常州?
舟山?
黄山?
九江?
武汉?
洛阳?
西安?
祁县?
北京?
青岛?
徐州
由上面结果可以在中国地图上模拟出最短路线,如下:
5
图二:
问题一模拟路径图
5.1.5设计旅游行程表和求出总费用
我们根据蚁群算法得出游览全部景点的最短路径,在得出的最短路径的基础上,我
们通过查阅火车票价、车次、运营时间,宾馆价格、名称等大量资料和数据,尽可能的
减少其在行程上的花费,设计出如下旅游行程表:
表一:
问题一行程表(其余答案参见附录III)日期时间行程价格(元)
8:
30—15:
45乘坐L8449次列车(徐州——常州)345月1日16:
00——21:
00游览常州市0
21:
00——7:
00住宿于常州蓝色快舟营销人连锁旅店120
7:
00——8:
00乘坐公交去中华恐龙园4
8:
00——16:
00游览中华恐龙园1605月2日16:
00——17:
00乘坐公交返回4
17:
00——22:
30游览常州市0
22:
30——5:
20乘坐K75次列车(常州——宁波)73
5:
30——8:
00乘坐758W公交到白峰码头——乘坐船到普陀山16
8:
00——14:
00游览普陀山2005月3日14:
00——16:
00返回宁波站16
16:
00——22:
15乘坐K8500次列车(宁波——宣城)63
22:
15——1:
30候车0
并且得出最少的总旅游费用为3438元。
6
5.2问题二的求解
5.2.1模型的建立
基于第一问的模型,我们稍作改进。
因为第二问要求安排时间最短的旅游行程表,而费用不限,由于飞机费用过大,所以在第一问我们未做考虑,但由于其时间比火车和汽车都要快的多,所以我们把飞机作为首要考虑对象加入第二问中。
第一问的模型中,是把任意两点之间的距离作为参数,从而进行求解,得出最短路径。
在第二问中,我们把任意两点之间的所乘坐的交通工具的最短时间作为参数,建立时间最优化模型,结合软件(程序见附录III)求出经过所有旅游景点的花费时间Lingo
最短的路线。
5.2.2模型的解释
在模型中,我们引入0-1变量,若通过两城市之间的路径,则赋值为1;若不通过两城市之间的路径,则赋值为0。
对于无向图的最短时间路径问题,可以这样理解,从点到点和点到点的边,看成有向弧,其他各条边均看成有不同方向的双弧,因此,可以[3]按照前面介绍有向图的最短时间路径问题来编程。
5.2.3模型的求解
利用上述算法的步骤,使用附录II的数据,编写程序,得出以下结果:
Lingo
VariableValueReducedCost
X(1,2)1.000000322.0000
X(2,9)1.000000110.0000
X(3,11)1.00000090.00000
X(4,6)1.000000105.0000
X(5,3)1.000000100.0000
X(6,1)1.000000280.0000
X(7,4)1.000000120.0000
X(8,10)1.000000215.0000
X(9,5)1.00000065.00000
X(10,7)1.000000484.0000
X(11,8)1.00000075.00000即最短时间路径:
12953118107461,,,,,,,,,,,
对上述结果进行处理,根据城市编号求出最优解为:
徐州?
常州?
西安?
祁县?
青岛?
舟山?
武汉?
九江?
黄山?
北京?
洛阳?
徐州
由上面结果可以在中国地图上模拟出最短路线,如下:
7
图三:
问题二模拟路径图
5.2.4设计旅游行程表和求出总费用
我们根据最优化模型得出游览全部景点的最短时间路径,在得出的最短时间路径的
基础上,我们通过查阅飞机票价、班次、运营时间,宾馆价格、名称等大量资料和数据,
尽可能的减少其在行程上的花费,设计出如下旅游行程表:
表二:
问题二的行程表(其余答案参见附录III)日期时间行程价格(元)
8:
00——9:
30整理行装0
9:
30——15:
30乘坐K55次列车(徐州——常州)705月1日15:
30——21:
00游览常州市0
21:
00——7:
00住宿于常州蓝色快舟营销人连锁旅店120
7:
00——8:
00乘坐出租车到中华恐龙园40
8:
00——16:
00游览中华恐龙园160
16:
00——17:
00乘坐出租车返回405月2日17:
00——21:
00游览常州市0
21:
00——23:
00乘坐MU5638班次飞机(常州——西安)1110
23:
00——24:
00乘坐出租车到秦始皇兵马俑40
0:
00——8:
00住宿于西安美宝宾馆后宰门店138
8:
00——10:
00游览秦始皇兵马俑905月3日10:
00——11:
00乘坐出租车返回40
11:
00——13:
00游览西安0
并且得出最少的总旅游时间为210小时。
8
5.3问题三的求解
基于第一问得出的旅游行程表,我们对其进行优化。
由于题目给出了约束条件,旅游经费不超过2000元,所以我们将行程划分为21部分(包括10个景点和11条线路)。
然后统计出每一部分所要花费的经费,如下表所示:
表三:
各地花费经费表(单位:
元)
徐州常州舟山黄山九江武汉
016823226020084
洛阳西安祁县北京青岛
124944485164
徐州——常州常州——宁波宁波——黄山黄山——九江九江——武汉武汉——洛阳
347389935792洛阳——西安西安——祁县祁县——北京北京——青岛青岛——徐州
55399415899
由上表可以看出,黄山、普陀、九江和常州所花费的经费占10个旅游景点的前4位,这四个景点的总经费大约为915元,所以先不考虑黄山、普陀、九江和常州这四个景点。
然后使其从青岛开始出发,尽量避免这四个景点。
对其余的景点根据最短路径重新安排行程,避免住宿,减少不必要的花费。
表四:
问题三行程估计表(其余数据参见附录IV)日期时间行程价格(元)
8:
00——23:
30整理行装05月1日23:
30——8:
00乘坐K1025次列车(徐州——青岛)70
8:
00——9:
00乘坐311W公交车到崂山风景区7
9:
00——17:
00游览崂山1505月2日17:
00——18:
00乘坐311W公交车返回7
18:
00——20:
00游览青岛市0
20:
00——5:
30乘坐T26次列车(青岛——北京)116
5:
30——7:
00休息0
7:
00——8:
00乘坐地铁2号线和公交车到八达岭20
8:
00——13:
00游览八达岭455月3日13:
00——14:
00乘坐地铁2号线和公交车返回20
14:
00——22:
00游览北京市0
22:
00——23:
30休息0
23:
30——13:
30乘坐2603次列车(北京——祁县)94
13:
30——14:
30乘坐公交车到乔家大院2
14:
30——18:
00游览乔家大院405月4日18:
00——19:
00乘坐公交车返回2
19:
00——20:
30游览祁县0
9
经过计算,新的旅游行程所花费的经费大约为1517元,与题目给出的2000元还有很大的差距,所以我们重新旅游行程表进行优化,对黄山、普陀、九江和常州这四个旅游景点进行分析,安排行程。
发现只有添加九江这个景点旅游费用不会超支,所以设计出如下行程表:
表五:
问题三行程表(其余答案参见附录III)日期时间行程价格(元)
8:
00——23:
30整理行装05月1日23:
30——8:
00乘坐K1025次列车(徐州——青岛)70
8:
00——9:
00乘坐311W公交车到崂山风景区7
9:
00——17:
00游览崂山1505月2日17:
00——18:
00乘坐311W公交车返回7
18:
00——20:
00游览青岛市0
20:
00——5:
30乘坐T26次列车(青岛——北京)116
5:
30——7:
00休息0
7:
00——8:
00乘坐地铁2号线和公交车到八达岭20
8:
00——13:
00游览八达岭455月3日13:
00——14:
00乘坐地铁2号线和公交车返回20
14:
00——22:
00游览北京市0
22:
00——23:
30休息0
23:
30——13:
30乘坐2603次列车(北京——祁县)94
并且得出旅行费用为1994元。
由上面结果可以在中国地图上模拟出最短路线,如下:
图四:
问题三模拟路径图
10
5.4问题四的求解
基于第二问得出的旅游行程表。
我们对其进行优化。
由于题目给出了约束条件,旅游时间不超过5天,也就是120小时,所以我们将行程划分为21部分(包括10个景点和11条线路)。
然后统计出每一部分所要花费的时间,如下表所示:
表六:
各地花费时间表(单位:
小时)
徐州常州西安太原青岛舟山
1.529.514719.521.5
武汉九江黄山北京洛阳
2121.517.513.54
徐州——常州常州——西安西安——太原太原——青岛青岛——舟山舟山——武汉
620.751.251.52武汉——九江九江——黄山黄山——北京北京——洛阳洛阳——徐州
51021.57.5
由上表可以看出,常州、舟山、九江和武汉所花费的时间占10个旅游景点的前4位,这4个景点的总时间大约为93.5小时,但是根据路程上所花的时间来看,武汉所花的时间要少于黄山,所以先不考虑常州、黄山、九江、舟山这四个景点。
然后,考虑到如果从洛阳开始出发,没有飞机能够直达,早上出发会遇到住宿的问题,从而浪费时间,然而从北京开始出发能够避免此问题,所以从北京出发对其余的景点根据最短路径重新安排行程。
表七:
问题四行程估计表(其余数据参见附录IV)日期时间行程价格(元)
8:
00——9:
30整理行装0
9:
30——10:
45乘坐KN2904班次飞机(徐州——北京)690
10:
45——11:
30乘坐出租车到八达岭40
11:
30——14:
30游览八达岭455月1日14:
30——15:
15乘坐出租车返回40
15:
15——16:
40乘坐MU743班次飞机(北京——青岛)618
16:
40——22:
00游览青岛市0
22:
00——7:
00住宿于常州蓝色快舟营销人连锁旅店120
7:
00——8:
00乘坐出租车到崂山风景区40
8:
00——14:
00游览崂山150
14:
00——15:
00乘坐出租车返回405月2日15:
00——16:
40乘坐SC4607班次飞机(青岛——太原)690
16:
40——17:
40乘坐出租车到达乔家大院40
17:
40——22:
00游览祁县0
22:
00——8:
00住宿于平遥怡兴驿同福客栈98
11
经过计算,新的旅游行程所花费的时间大约为91小时,与题目给出的120小时还有很大的差距,所以我们重新旅游行程表进行优化,对常州、舟山、九江和黄山这四个旅游景点进行分析,安排行程。
发现只有添加常州这个景点对时间安排最合理,所以设计出如下行程表:
:
问题四行程表(其余答案参见附录III)表八
日期时间行程价格(元)
8:
00——9:
30整理行装0
9:
30——10:
45乘坐KN2904班次飞机(徐州——北京)690
10:
45——11:
30乘坐出租车到八达岭40
11:
30——14:
30游览八达岭455月1日14:
30——15:
15乘坐出租车返回40
15:
15——