当前位置:文档之家› 推荐-数学建模旅游线路的优化设计 精品 精品

推荐-数学建模旅游线路的优化设计 精品 精品

一、问题重述随着人们的生活不断提高,旅游已成为提高人们生活质量的重要活动。

江苏徐州有一位旅游爱好者打算在今年的五月一日早上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点作为一天。

三、符号说明四、问题分析4.1问题一的分析针对问题一,要求求出将旅游景点全游览完,所需的最少旅游费用。

这和TSP问题,即旅行商问题有些类似,所以本文将问题向TSP问题进行一定的转化,从而进行求解。

因为运用传统的动态规划解法,解法的空间复杂性和时间复杂性都十分庞大,不利于求解,所以采用蚁群算法,通过计算机Matlab软件进行编程得到路程最短的旅行路线。

因题目要求时间不限,用最少的旅游费用游览全部景点,而考虑到不同交通工具的速度和票价都不相同,各个旅馆的住宿费用也不相同,所以我们对其行程进行详细的安排,尽量减少其在交通和住宿上的费用,减少不必要的花费。

最后得出一个最少旅游费用的旅游行程表。

4.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建立图论的数学模型将各个旅游景点之间的关系转化为图论问题,并做以下分析:建立有向图(,)G V A =。

其中12{,,......,}n V V V V =称为图G 的顶点集,V 中的每一个元素(1,2,......)i V i n =称为该图的一个顶点,在该题中表示n 城市;12{,,......}n A a a a =称为图G 的弧集,A 中的每个元素(,)k i j a V V =称为该图的一条从i V 到j V 的弧,在此题中表示各个城市两两连线的集合。

[1]设城市个数为n ,ij d 表示两个城市i 与j 之间的距离,ij x =0或1(1表示走过城市i 到城市j 的路,0表示没有选择走这条路)。

本题可以向TSP 问题进行转化,则TSP 问题的数学模型为:min ij ij i jd x ≠∑5.1.2建立蚂蚁算法的数学模型(1)状态转移规则因为蚂蚁k 不能重复经过一个城市,所以建立禁忌表(1,2,......)k tabu k m =来记录蚂蚁走过的城市,禁忌表随着时间做动态变化。

建立蚂蚁k 由i 城市转移到j 城市的状态转移概率如下:[][][]()() ()()() 0 k ij ik kkis is ij s tabu kt t j tabu t t p t j tabu αβατητηβ⊄⎧⎡⎤⎣⎦⎪∉⎪=⎨⎪⎪∈⎩∑ (1)上式中α为信息启发式因子,表示路径的相对重要性,是对所积累的信息素影响作用的一个加权值;β为期望启发式因子,表示能见度的相对重要性;每只蚂蚁必须依据以城市距离和连接边上信息素的数量为变量的概率函数,决定选择下一个城市的概率。

每只蚂蚁必须根据禁忌表和概率函数寻找下一个城市,以保证该蚂蚁从起点出发经过所有城市有且只有一次,并且最终返回到起点。

(2)信息素的全局更新规则当m 只蚂蚁成功的完成一次寻径过程之后,将选出目标函数值最小的路径,用以完成全局信息素的更新,使得较优解保留下来,对后继蚂蚁产生影响,加快收敛到最优解的速度。

设i ,j 为两个相连接点,则有:()()()(,)1,,ij ij ij i j i j i j τρτρτ←−−-+⨯∆ (2)其中,变量(),ij i j τ∆是在t 时刻,节点,i j 之间路上信息素的增加量()()1,(),0ij if i j global best tourL i j otherwise τ-⎧∈--∆=⎨⎩短 ρ是位于[0,1]上的“激素”挥发因子;L 短为到目前为止所找到全局最短路径长度。

(3)信息素的局部更新对于第k 只蚂蚁,在建立一个解得过程中也同时进行激素迹的更新,如果节点,i j 是它所选择路径上的两个相邻节点,规则如下:()()()()1ij ij ij t t t τρτρτ←−−-+⨯∆否则,不更新。

其中,0ρ<<1,0()ij t ττ∆=,0τ是各条路上的信息素的初始值,通常取同一值,表示同一环境。

信息素的更新策略有很多种方法,每种更新策略的主要差别体现在()kij t τ∆的求法上。

我们规定蚂蚁在完成一个循环后更新所有路径上的信息素,其方程式为:() k i,j 0 kkij Q L t τ⎧⎪∆=⎨⎪⎩蚂蚁本次循环经过()否则 (3) 上式中Q 表示蚂蚁携带信息素的量,其值的大小影响算法的收敛速度;k L 表示第k 只蚂蚁在本次循环中所走的路程总长度。

5.1.3基于蚁群算法的实现步骤[2]本题基于蚁群算法的实现步骤如下: 1step :初始化。

时间0t =,循环次数0c n =,设置最大循环次数为max c n ,()00ij τ∆=;2step :循环次数c n ++;3step :蚂蚁个数k ++;4step :蚂蚁选择可以到达的城市,按照状态转移规则移动到下一个城市j ; 5step :对于城市j ,由于已经到达,所以添加到禁忌表中;6step :判断所有城市是否都经过,若未完全经过,表明蚂蚁个数没有达到m ,则转向执行3step ,否则执行7step ;7step :由于信息素改变,要求按照公式(2)(3)更新最短路径信息素,使得较优解保留,加快收敛到最优解的速度;8step :若max c c n n <表明没有满足终止条件,即转向执行2step ,否则执行9step ; 9step :输出最优结果。

5.1.4模型的求解(1)求解城市之间的距离首先,假设经线和纬线近似平行分布,根据附表2(见附录I )可知11座城市的经纬坐标。

建立直角坐标系,以纬度最低的城市所在的纬线为x 轴,以经度最小的城市所在的经线为y 轴,计算11座城市的坐标。

将城市进行编号,计算相应城市间的距离得到附表3(见附录I ),得到编程数据(见附录II )。

(2)求解最短路径利用上述蚁群算法的步骤,使用附录II 的数据,编写Matlab 程序,得出以下结果: Shortest_Route =6 9 5 4 3 1 2 117 10 8图一:Matlab 模拟图对上述结果进行处理,根据城市编号求出最优解为:徐州→常州→舟山→黄山→九江→武汉→洛阳→西安→祁县→北京→青岛→徐州由上面结果可以在中国地图上模拟出最短路线,如下:图二:问题一模拟路径图5.1.5设计旅游行程表和求出总费用我们根据蚁群算法得出游览全部景点的最短路径,在得出的最短路径的基础上,我们通过查阅火车票价、车次、运营时间,宾馆价格、名称等大量资料和数据,尽可能的减少其在行程上的花费,设计出如下旅游行程表:日期时间行程价格(元)5月1日8:30—15:45乘坐L8449次列车(徐州——常州)34 16:00——21:00游览常州市0 21:00——7:00住宿于常州蓝色快舟营销人连锁旅店1205月2日7:00——8:00乘坐公交去中华恐龙园4 8:00——16:00游览中华恐龙园160 16:00——17:00乘坐公交返回4 17:00——22:30游览常州市0 22:30——5:20乘坐K75次列车(常州——宁波)735月3日5:30——8:00乘坐758W公交到白峰码头——乘坐船到普陀山16 8:00——14:00游览普陀山200 14:00——16:00返回宁波站16 16:00——22:15乘坐K8500次列车(宁波——宣城)63 22:15——1:30候车0并且得出最少的总旅游费用为3438元。

相关主题