全国研究生数学建模竞赛答案.docx
《全国研究生数学建模竞赛答案.docx》由会员分享,可在线阅读,更多相关《全国研究生数学建模竞赛答案.docx(199页珍藏版)》请在冰豆网上搜索。
全国研究生数学建模竞赛答案
参赛密码
(由组委会填写)
全
第十二届“中关村青联杯”全国研究生
数学建模竞赛
学校
上海交通大学
参赛队号
队员姓名
1.
2.
3.
参赛密码
(由组委会填写)
第十二届“中关村青联杯”全国研究生
数学建模竞赛
题目基于聚类分析的Hopfield网络求解旅游路线规划问题
摘要:
本文围绕游遍201个5A级景区旅游问题进行了分析,对无费用限制的旅游时间问题、有时限的旅游费用问题利用聚类分析方法和连续的Hopfield网络分别建立了数学模型并设计了每条旅游线路具体的行程表,最后对求解结果进行了分析与验证。
问题一在无费用限制情况下,要求用最少的时间游遍所有201个景点。
第一步,利用聚类分析方法对201个景点进行聚类。
以按省份分类为主,按地理位置分类为辅,考虑实际环境,综合各自的优势为一体,最终划分出20个区域。
第二步,根据Hopfield网络的有关方法,以景点间的消耗时间为参考量,建立了适用于问题一的Hopfield网络的计算模型。
并用matlab语言编写模型的程序文件,在matlab软件中运行后得出各个区域内的最优旅游路线。
第三步,结合题干中所有的旅游限制条件,设计出前往各个区域对应的旅游线路具体行程表。
第四步,计算得出游遍201个景点的最短时长为11年。
问题二在十年时间限制条件下,要求用最少的费用游遍所有201个景点。
第一步,根据题目中的条件,针对十年期间的游玩总费用,建立定价模型。
第二步,仍然采用问题一的聚类分析方法的结果,将201个景点聚类成20个区域。
第三步,针对问题二的具体情况,以景点间的消耗时间为参考量,对Hopfield网络的计算模型进行改进,得出各个区域内的最优旅游路线。
第四步,设计出十年游遍所有景点的最低费用路线,总费用为287486.2元。
问题三在前两个问题的基础上,规划出更适合全国旅游爱好者的游玩路线,并以北京市的旅游爱好者为例,给出最佳旅游路线;同时,依据当代旅游爱好者和相关旅游部门的现状,给出合理的建议,以便旅行者获得更好的旅行体验,相关部门提供更好的服务质量。
问题四。
最后,对整个数学模型进行了总结分析,并作出客观评价。
关键词:
聚类分析Hopfield网络matlab定价模型最优旅游路线最佳体验
一.问题重述
旅游活动正在成为全球经济发展的重要动力之一,随着我国国民经济的快速发展,人们生活水平得到很大提升,越来越多的人积极参与有益于身心健康的旅游活动。
附件给出了全国201个5A级景区的名单,全国高速公路,全国火车、高铁、飞机班次等信息。
一位自驾游爱好者拟按这些附件制定旅游计划。
根据该旅游爱好者的个人偏好,景点位置及开放时间的实际情况,在旅行中需要达到以下条件:
(1)该旅游爱好者每年有不超过30天的外出旅游时间,每年外出旅游的次数不超过4次,每次旅游的时间不超过15天;
(2)根据个人偏好,每个5A级景区的游览时间不得小于附件中的要求,最长逗留时间不得超过附件中最少时间的2倍;
(3)基于安全考虑,行车时间限定于每天7:
00至19:
00之间,每天开车时间不超过8小时;
(4)若是全天游览,则开车时间控制在3小时内;若是半天游览,开车时间控制在5小时内;
(5)在高速公路上的行车平均速度为90公里/小时,在普通公路上的行车平均速度为40公里/小时;
(6)该旅游爱好者计划在每一个省会城市至少停留24小时,以安排专门时间去游览城市特色建筑和体验当地风土人情(不安排景区浏览);
(7)选择高铁出行要求当天乘坐高铁的时间不超过6个小时,乘坐高铁或飞机的当天至多安排半天的景区游览;
(8)景区开放时间统一为8:
00至18:
00;
(9)旅行中租车费用300元/天,油费和高速过路费另计,租车和还车需在同一城市;
(10)住宿费简化为省会城市和旅游景区200元/人•天,地级市150元/人•天,县城100元/人•天;高速公路的油耗加过路费平均为1.00元/公里,普通公路上油耗平均为0.60元/公里;
根据上述条件,需要解决下面问题:
(1)该旅行者出行先通过高速公路到达与景区邻近的城市,再自驾到景区。
以其常住地在西安市为例,规划设计旅游线路,试确定游遍201个5A级景区至少需要几年?
给出每一次旅游的具体行程(每一天的出发地、行车时间、行车里程、游览景区)。
(2)若出行方式考虑乘坐高铁或飞机到达与景区相邻的省会城市,而后租车自驾到景区游览。
根据附件材料,建立数学模型设计一个十年游遍所有201个5A景区、费用最优、旅游体验最好的旅游线路,给出每一次旅游的具体线路(含每次具体出行方式;每一天的出发地、费用、路途时间、游览景区、每个景区的游览时间)。
(3)在
(2)的基础上加以推广,为全国的自驾游爱好者规划设计类似的旅游线路,进而给出常住地在北京市的自驾游爱好者的十年旅游计划;根据上述三问的结果给旅游爱好者和旅游有关部门提出建议。
(4)根据国家5A级旅游景区评定的相关信息,更合理地规划该旅游爱好者的十年旅游计划。
二.模型的建立与求解
2.1连续的Hopfield网络概述
反馈网络达稳定状态时可以时系统的能量达极小,因而可用于一些最优化问题的计算,如何把实际问题的目标函数表达成下述二次型的能量函数是一个关键问题。
或
常用的是连续型Hopfield网络[1],如图1所示,每一神经元可由一个(有正反向输出的)放大器模拟,输入端并联的电阻和电容可模拟生物神经元的时间常数,互相连线间的电导Tij则模拟各神经元间突触的特性(相当权系数)。
该网络的微分方程为
函数gi常用Sigmoid函数:
,u0可控制斜率,
时变为阶跃函数。
若g-1(·)为单调增且连续,Cj>0,
,Tji=Tij,则沿系统轨迹有
,当且仅当
时
,其中
,为系统的能量函数。
以上表明,随着时间的演变,在状态空间内的网络总是朝着能量函数E减小的方向运动,网络稳定时E取极小值。
图1连续Hopfield神经网络的电路形式
用Hopfield网络求解优化问题的一般步骤:
(1)用罚函数法写出问题的目标函数
设优化问题如下:
则目标函数为
,其中
为足够大的常数,取值可以互不相同。
令I与前式中的E相等可定出各连接权Tij的值来。
(2)写出网络的动态方程
Hopfield网络是一个梯度系统,所以它满足
对于常用的连续网络有
(3)选择合适的初值
,使网络按动态方程演化直到收敛为止。
2.2用Hopfield网络求解旅行商问题(TSP问题)
对于N城市的TSP问题,任何一个城市在最终路径上的访问次序可用一个N维向量来表示,就需要N个神经元。
如在5-TSP中,设城市1在第3个被访问,则对应的向量为V
(1)=00100。
N城市TSP问题需用N*N个神经元来实现,而每行每列都只能有一个1,其余为0,该阵称为换位矩阵。
换位矩阵中1的和为N,所构造的函数极小值
对应于最短路径。
构造与TSP相对应的能量函数[1-3]:
A、B、C、D为拉格朗日常数,均为正数。
当解合法时前三项为0;当达到最优解时,第四项最小,其值对应于最短路径。
在Hopfield网络运行时,采用并行算法:
τ=1.0;u0为符号函数的参量,u0越小,符号函数的离散化程度越高。
在进行迭代前,要对uxi赋初值,不妨令
,δ是在(-0.1,0.1)均匀分布的随机数。
在迭代时,
,δt为运算步长。
因为能量在极小值时变化最慢,所以将能量函数E变化小到一定程度作为结束标志,即
。
如果超过了一定的迭代次数(如1500次)仍没有收敛,则强行终止。
2.3旅游路线规划问题一的分析与求解
假设该旅游爱好者每年外出旅游次数为x次,每次旅游时间为y天。
根据条件,该旅游爱好者每年有不超过30天的外出旅游时间,每年外出旅游的次数不超过4次,每次旅游的时间不超过15天,则有:
xy≤30
x≤4
y≤15
问题一中旅游爱好者需要以最短的时间将201个5A景点全部游览过,则有必要考虑旅行过程中的耗时因素,主要有
(1)每次从西安到某个景点的来回时间t1;
(2)高速公路及过道的限速t2;(3)到达景点的时间及景点的参观时长t3。
针对耗时因素t1,可近似考虑其与从西安出发的次数x成正相关关系,正相关系数为a,则有:
t1=ax
要使得t1时长短,需要减小x的值,同时为了使每年可以去到尽量多的地方,需要该旅游爱好者每年安排30天出行,求得x=2,y=15。
则该旅行者需要每年外出旅游2次,每次15天,从而可以有效地减小t1的时间,缩短整个规划中的时长。
2.3.1聚类分析思想
聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程[4]。
聚类分析就是通过在相似的基础上收集数据来分类,达到数据简化的目的。
聚类分析包括两类方式,
(1)层次聚类(HierarchicalClustering),包括合并法、分解法、树状图;
(2)非层次聚类,包括划分聚类、谱聚类。
201个5A级别的景点覆盖整个中国,如果直接对其进行数据分析和处理,工作量是非常大的。
因此我们需要对其进行聚类分析,形成更少数量的点,便于下一步的规划与设计。
图2全国201个5A景点一览图
从地图上可以看到,西安市位于中原地区,黄色五角星表示5A级别的景点,这些景点分布在西安市的四周,这在位置上有利于聚类分析的分类,采用合并法,现有两种分类方式,
(1)按照省份分类;
(2)按照地理位置分类,即相邻的景点划分一类。
两类分类方法的优缺点如下:
(1)按照省份分类
优点:
a.分类方便,可直接通过省界线确定各区域;
b.同一个省内交通方便,距离较近,可大大缩短旅游时间;
c.符合附件中景点的分类方式,数据处理较为方便;
d.符合现代人游玩的方式,可尽情享受省特色文化。
缺点:
相邻省份的某些景点可能更加接近,按照省份分类反而会稍增耗时。
(2)按照地理位置分类
优点:
相邻景点交通便利,耗时较短。
缺点:
a.数据庞大,分区复杂,工作量大;
b.地图上相邻的某些景点之间交通可能并不发达,反而耗时更大;
c.不能充分感受省特色文化。
综上,为了简化数据的处理,为了更好地体验,问题一中采用两种分类结合的方式对中国的5A景点进行划分,以按省份分类为主,按地理位置分类为辅,考虑实际环境,综合各自的优势为一体,最终划分出20个区域,分别是:
江苏、浙江、福建、江西、黑龙江、广东、云南、四川、安徽(江苏、陕西)、青海-甘肃(宁夏)、湖北(宁夏)、上海-山西(宁夏)、北京-天津(河北)、山东(河北)、吉林-辽宁-内蒙、湖南(重庆)、河南(陕西)、广西-海南、贵州(重庆)、新疆-西藏,其中符号“-”后的省份被完全包含到该区域中去,括号内的省份仅部分地区合并到该地区。
以下所有问题的解决,都是以这20个区域为基础进行规划的。
2.3.2求解的具体过程
由于全国的省份众多,这里不再一一说明。
下面以旅游景点较多的浙江省为例进行说明。
浙江省的旅游景点有:
杭州西湖风景区、温州乐清市雁荡山风景区、舟山普陀山风景区、杭州淳安千岛湖风景区、嘉兴桐乡乌镇古镇旅游区、宁波奉化溪口-滕头旅游景区、金华东阳横店影视城景区、嘉兴南湖旅游区、杭州西溪湿地旅游区、绍兴市鲁迅故里-沈园景区、衢州市开化根宫佛国文化旅游区、湖州市南浔区南浔古镇景区。
为了减少计算的复杂性,提高计算结果的准确性,我们把在一个城市的多个景点合并成一个景点来进行计算,并将总游览时间作为该景点的游览时间。
比如浙江省的杭州西湖风景区与杭州西溪湿地旅游区两者都在杭州市区,可以被当做一个景点来计算,当最后安排详细行程时再分拆成两个景点进行行程安排。
另外由于该旅游爱好者计划在每一个省会城市至少停留24小时,以安排专门时间去游览城市特色建筑和体验当地风土人情,因此我们将每个省的省会当做一个景点来计算,并将游览时间定为8个小时。
由于旅游路线规划问题一需要求解的是旅游时间最优,查询各个景点的行车时间(资料来源:
XX地图[5])与游览时间(资料来源:
附件1),建立如下图所示的各景点之间所花费时间的表格。
表格中每个花费时间包括行车时间与将要游览景区的游览时间。
其中左侧景区为出发地,上侧的景区为目的地。
表1浙江省各景区间的花费时间表
浙江省景区
杭州西溪湿地旅游区、西湖
杭州淳安千岛湖风景区
湖州市南浔区南浔古镇景区
嘉兴南湖旅游区
嘉兴桐乡乌镇古镇旅游区
金华东阳横店影视城景区
宁波奉化溪口-滕头旅游景区
衢州市开化根宫佛国
绍兴市鲁迅故里-沈园景区
温州乐清市雁荡山风景区
舟山普陀山风景区
杭州西溪湿地旅游区,西湖
0
10.2
5.5
5.3
5.2
6.1
6.25
7.3
5.45
12.6
11.7
杭州淳安千岛湖风景区
10.2
0
7.5
7.4
7.2
7.6
8.05
6.7
7.25
13.65
13.5
湖州市南浔区南浔古镇景区
9.5
11.5
0
5.05
4.67
7.33
6.67
8.6
6.6
13.1
12.05
嘉兴南湖旅游区
9.3
11.4
5.05
0
4.9
6.65
6.05
8.4
5.5
12.1
11.4
嘉兴桐乡乌镇古镇旅游区
9.2
11.2
4.67
4.9
0
7.3
6.6
8.75
6.17
13
11
金华东阳横店影视城景区
10.1
11.6
7.33
6.65
7.3
0
5.75
7
5.65
10.7
11.85
宁波奉化溪口-滕头旅游景区
10.25
12.05
6.67
6.05
6.6
5.75
0
8.1
5.75
11
10.04
衢州市开化根宫佛国
11.3
10.7
8.6
8.4
8.75
7
8.1
0
7.9
13
14.05
绍兴市鲁迅故里-沈园景区
9.45
11.25
6.6
5.5
6.17
5.65
5.75
7.9
0
12
11.25
温州乐清市雁荡山风景区
12.6
13.65
9.1
8.1
9
6.7
7
9
8
0
13.05
舟山普陀山风景区
11.7
13.5
8.05
7.4
7
7.85
6.04
10.05
7.25
13.05
0
编写基于Hopfield网络的matlab语言的m文件[6](具体程序请见附录一),输入上表数据,运行得出浙江省内的最优路线方案如下矩阵(程序结果vv矩阵的第2~12列)。
杭州西溪湿地旅游区,西湖00010000000
杭州淳安千岛湖风景区00000000001
湖州市南浔区南浔古镇景区10000000000
嘉兴南湖旅游区00100000000
嘉兴桐乡乌镇古镇旅游区01000000000
金华东阳横店影视城景区00000100000
宁波奉化溪口-滕头旅游景区00000001000
衢州市开化根宫佛国00000000010
绍兴市鲁迅故里-沈园景区00001000000
温州乐清市雁荡山风景区00000000100
舟山普陀山风景区00000010000
矩阵为一个换位矩阵,矩阵每一列仅有一个1,代表每次游览的城市。
从第1列到第11列分别给出了依次游览的城市顺序。
TSP问题将会回到起点,因此第11列的游览景区结束后将会回到第1列的游览景区。
上表对应的游览景区顺序如下:
湖州市南浔区南浔古镇景区→嘉兴桐乡乌镇古镇旅游区→嘉兴南湖旅游区→杭州西溪湿地旅游区,西湖→绍兴市鲁迅故里-沈园景区→金华东阳横店影视城景区→舟山普陀山风景区→宁波奉化溪口-滕头旅游景区→温州乐清市雁荡山风景区→衢州市开化根宫佛国→杭州淳安千岛湖风景区→湖州市南浔区南浔古镇景区
在地图上标明各景区(黄色五角星)和游览路线(红色直线)后,如下图所示。
由图可知整个游览过程在地图上基本成一个环装,说明游览过程是合理的。
其中宁波奉化溪口-滕头旅游景区这一个景区似乎不太合理,但结合景区间的公路情况我们可以知道,从金华东阳横店影视城景区去往舟山普陀山风景区的公路是途径宁波奉化溪口-滕头旅游景区的,而舟山普陀山风景区前往温州乐清市雁荡山风景区也会途径宁波奉化溪口-滕头旅游景区,因此舟山普陀山风景区和宁波奉化溪口-滕头旅游景区的前后顺序不会增加游览的总时间。
图3浙江省浏览路线图
将通过Hopfield算法得出的上述浙江省内游玩的最优时间路线命名为路线a。
为了验证路线a是否为时间最少的路线,我们随即抽取两条路线作为比较。
路线b:
嘉兴桐乡乌镇古镇旅游区→嘉兴南湖旅游区→杭州西湖风景区→杭州西溪湿地旅游区→湖州市南浔区南浔古镇景区→杭州市→绍兴市鲁迅故里-沈园景区→舟山普陀山风景区→宁波奉化溪口-滕头旅游景区→金华东阳横店影视城景区→温州乐清市雁荡山风景区→衢州市开化根宫佛国文化旅游区→杭州淳安千岛湖风景区→嘉兴桐乡乌镇古镇旅游区。
路线c:
杭州淳安千岛湖风景区→嘉兴桐乡乌镇古镇旅游区→嘉兴南湖旅游区→杭州西湖风景区→湖州市南浔区南浔古镇景区→杭州市→绍兴市鲁迅故里-沈园景区→舟山普陀山风景区→宁波奉化溪口-滕头旅游景区→金华东阳横店影视城景区→温州乐清市雁荡山风景区→杭州西溪湿地旅游区→衢州市开化根宫佛国文化旅游区→杭州淳安千岛湖风景区。
参考XX地图查询出来的时间,通过计算,路线a耗时为86.06小时,路线b耗时为105.94小时,路线c耗时为125.84小时。
路线时间对比如图所示,路线a耗时最短,从而验证了模型算法的正确性。
图4三种路线耗时对比图
由于各个省内的游览过程是一个巡回的过程,在地图上呈现为一个环形,当我们从西安前往该省游玩时,该省存在一个景点离西安在距离上最近,选择这个景点作为西安去这个省的目的地可以减少整体的行车时间。
如浙江省内的湖州市南浔区南浔古镇景区离西安最近,选择这个城市为西安前往浙江的目的地。
这样最终前往浙江的这一次旅游的具体行程如下表。
表2浙江旅游的具体行程
天数
出发时间
出发地
游览景区
行车时间
行车里程
到达时间
游览时间
游览完毕时间
1
7:
00
西安
湖州市南浔区南浔古镇景区
8:
00
0
15:
00
2
7:
00
西安
湖州市南浔区南浔古镇景区
6:
34
1283
13:
34
3
7:
00
湖州市南浔区南浔古镇景区
嘉兴桐乡乌镇古镇旅游区
0:
43
19.4
7:
43
4:
00
11:
43
3
11:
43
嘉兴桐乡乌镇古镇旅游区
嘉兴南湖旅游区
1:
02
37.3
12:
45
4:
00
16:
45
3
16:
45
嘉兴南湖旅游区
杭州西溪湿地旅游区
1:
27
97
18:
12
4:
00
12:
00
4
12:
00
杭州西溪湿地旅游区
杭州西湖风景区
0:
28
12.8
12:
28
4:
00
16:
28
4
16:
28
杭州西湖风景区
杭州市
0
0
16:
28
24:
00
16:
28
5
16:
28
杭州市
绍兴市鲁迅故里-沈园景区
1:
20
69.9
17:
48
4:
00
11:
48
6
11:
48
绍兴市鲁迅故里-沈园景区
金华东阳横店影视城景区
1:
39
118.7
13:
27
4:
00
11:
44
7
11:
44
金华东阳横店影视城景区
舟山普陀山风景区
3:
52
286.5
15:
36
8:
00
13:
36
8
13:
36
舟山普陀山风景区
宁波奉化溪口-滕头旅游景区
2:
23
152
15:
59
4:
00
9:
59
9
9:
59
宁波奉化溪口-滕头旅游景区
温州乐清市雁荡山风景区
2:
53
188.4
12:
52
8:
00
10:
52
10
10:
52
温州乐清市雁荡山风景区
衢州市开化根宫佛国文化旅游区
4:
56
395
15:
48
4:
00
9:
48
11
9:
48
衢州市开化根宫佛国文化旅游区
杭州淳安千岛湖风景区
2:
29
121.3
12:
17
8:
00
10:
17
12
10:
17
杭州淳安千岛湖风景区
湖州市南浔区南浔古镇景区
3:
27
260.2
13:
44
4:
00
17:
44
12
17:
44
湖州市南浔区南浔古镇景区
西安
1:
16
0
19:
00
13
7:
00
湖州市南浔区南浔古镇景区
西安
8:
00
0
15:
00
14
7:
00
湖州市南浔区南浔古镇景区
西安
5:
18
0
12:
18
前面已经论述了将每条线路尽可能的安排成接近15天可以减少浪费在来回路途上的时间。
下面以湖南省的线路举例说明,这条线路同时又包括了重庆省的部分景点。
因为这些景点没有被游览完成,如果单独前往一次重庆需要浪费4天来回的路程,这样加上游玩的时间将达到7天左右。
而湖南省离重庆省非常近,在湖南省游玩完成后还有多余的时间即可游玩重庆省的景点,从而减少了一次出行的时间,大大减少了总的旅游行程时间。
前往湖南(重庆)的这一次旅游的具体行程如下表。
表3湖南(重庆)旅游的具体行程表
天数
出发时间
出发地
游览景区
行车时间
行车里程
到达时间
游览时间
游览完毕时间
1
7:
00
西安
张家界武陵源-天门山旅游区
8:
00
0
15:
00
2
7:
00
西安
张家界武陵源-天门山旅游区
4:
42
974
11:
42
16:
00
17:
42
4
7:
00
张家界武陵源-天门山旅游区
湘潭韶山旅游区
4:
49
129
11:
49
4:
00
15:
49
4
15:
49
湘潭韶山旅游区
长沙市宁乡县花明楼景区
0:
39
31.8
16:
28
4:
00
10:
28
5
10:
28
长沙市宁乡县花明楼景区
郴州市东江湖旅游区
4:
09
335.8
14:
37
4:
00
8:
37
6
8:
37
郴州市东江湖旅游区
衡阳南岳衡山旅游区
2:
43
190.5
11:
20
4:
00
15:
20
6
15:
20
衡阳南岳衡山旅游区
长沙岳麓山-橘子洲旅游区
2:
55
134.9
18:
15
4:
00
12:
00
7
12:
00
长沙岳麓山-橘子洲旅游区
长沙市
0:
00
0
12:
00
24:
00
12:
00
8
12:
00
长沙市
岳阳岳阳楼-君山岛景区
3:
01
182.4
15:
01
4:
00
9:
01
9
9:
01
岳阳岳阳楼-君山岛景区
万盛黑山谷-龙鳞石海风景区
5:
00
0
14:
01
10
7:
00
岳阳岳阳楼-君山岛景区
万盛黑山谷-龙鳞石海风景区
6:
05
872.8
13: