数学建模.docx

上传人:b****6 文档编号:10195070 上传时间:2023-02-09 格式:DOCX 页数:49 大小:703.89KB
下载 相关 举报
数学建模.docx_第1页
第1页 / 共49页
数学建模.docx_第2页
第2页 / 共49页
数学建模.docx_第3页
第3页 / 共49页
数学建模.docx_第4页
第4页 / 共49页
数学建模.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

数学建模.docx

《数学建模.docx》由会员分享,可在线阅读,更多相关《数学建模.docx(49页珍藏版)》请在冰豆网上搜索。

数学建模.docx

数学建模

走遍全中国

摘要

通过对问题的分析,基本是一个TSP(旅行商)问题。

我运用图论及线性规划的相关知识,对问题进行了分析及求解。

首先我根据各省会及港澳台地区的地理位置(经纬度)绘制了平面直角坐标图(图一)。

在此过程中,我忽略了将曲面化为平面所产生的误差。

然后运用了蚁群算法设计出了最短路旅行方案(图二)。

根据程序运行的结果,我在地图上做出了相应的最短路图(图三),得出的最短旅行路线为:

沈阳->长春->哈尔滨->天津->北京->石家庄->和浩特->太原->郑州->西安->银川->兰州->西宁->乌鲁木齐->拉萨->昆明->成都->重庆->贵阳->南宁->海口->澳门->香港->广州->长沙->武汉->南昌->福州->台北->杭州->上海->南京->合肥->济南->沈阳,得出的全局最优路径长度为153.809。

但这个结论是基于各站可以直达的情况得出的,对于不可直达的我在模型拓展中进行了相关说明。

接着,我查阅了关于各省会及港澳台地区之间航班及火车的时间及票价数据(附录)。

根据他们的具体地理位置,将各个城市分成五个区域。

具体化分情况如图四。

在每个区域上,我将第一个问题的求最短路的程序改编成了已知城市间旅行最小费用,求整体最小费用路径的问题。

在求出了每个区域的最小费用路线后,我确定了每个区域的入口和出口,连出了整体区域的近似费用最小旅行路线(图五)。

在这里,港澳台地区的费用我们是单独考虑的。

最后,我得出的结论为,此次旅行的近似最小费用为7486元。

对于最后一个问题,我们沿用了第二问的分区域思想。

并选择了第一个区域为例,构建了线性目标规划模型。

经过上网查询我们知道,不论火车还是飞机,它们的费用都是和里程成线性关系。

因此,我在找出了本区域上的最短路后,比较出各种交通工具的费用与时间情况即可。

我为各地间的费用和时间分别赋予了权值系数,并用lindo软件求出了此区域上的相对既省钱又省时的旅行方案。

同理,可以求出其他各区域上的相对省钱省时的旅行方案。

再将他们整合即可得出整体的既省时又省钱的旅行方案。

最后,我对此模型的复杂性、可行性及误差进行了分析,并对此算法进行了相应的评价。

关键词:

旅行商问题蚁群算法最短路途费用最少划分

目录

一、问题重述1

二、模型假设1

三、符号说明1

四、模型的建立与求解2

4.1问题一2

4.2问题二3

4.3问题三5

4.4问题四8

五、模型分析与评价8

5.1模型一的评价8

5.2模型二的评价9

5.3模型三的评价9

六、模型拓展9

七、参考文献10

一、问题重述

随着人们生活水平的提高,学习工作压力也越来越大。

越来越多的人选择了用旅游得的方式来缓解压力。

这就使得旅游业迅速的发展起来。

但在我们选择了旅游路线后,时间的长短,花销的费用等问题也是我们要好好考虑的,为此,我对以下问题进行了研究。

首先,我计划走遍全国的省会城市、直辖市、香港、澳门、台北。

并分别按照下面的要求制定出行方案:

1.按地理位置(经纬度)设计最短路旅行方案;

2.如果我从哈尔滨市出发,每个城市停留3天,可选择航空、铁路(快车卧铺或动车),设计最经济的旅行互联网上订票方案;

3.要综合考虑省钱、省时又方便,设定相应的评价准则,建立数学模型,进行相关分析;

4.对我选择的算法作复杂性、可行性及误差分析;

5.对我所采用的算法做出相关的理解及评价。

本问题属于TSP(旅行商)问题的变形,经分析我决定采用图论中的蚁群算法及线性规划来建立数学模型并对进行求解。

二、模型假设

1.模型不考虑曲面变成直面时坐标的引起的变换

2.模型只是对各省会城市、直辖市、香港、澳门、台北等地区进行地理位置进行分析

3.模型忽略了等车所耗时间,认为到车站即可上车

4.模型忽略了各种交通工具因淡季旺季引起的票价波动

三、符号说明

i地到j地的距离

:

时间的权系数(考虑对时间的侧重程度)

费用的权系数(考虑对费用的侧重程度)

i地到j地的费用

i地到j地的时间

四、模型的建立与求解

4.1问题一

各省会城市及港澳台的总数共有34个,我们首先根据个城市的经纬度,将其转换成了各城市的坐标,做出了平面直角坐标图,确定了各城市在平面图上的位置情况,结果如图一。

而对于此问题我们要达到的目标就是让函数

=

达到最小。

基于此目标,我们选择了蚁群算法求出了最短旅行路线。

经过程序的运行,我们求解出的最短路线为:

沈阳->长春->哈尔滨->天津->北京->石家庄->和浩特->太原->郑州->西安->银川->兰州->西宁->乌鲁木齐->拉萨->昆明->成都->重庆->贵阳->南宁->海口->澳门->香港->广州->长沙->武汉->南昌->福州->台北->杭州->上海->南京->合肥->济南->沈阳,得出的全局最优路径长度为153.809。

图一根据各省会经纬度建立的直面坐标图(spss软件)

图二蚁群算法求出的最短路径(VC++6.0)

为了使结果更直观明了,我们在中国地图上作出了最短路旅行路线(图三),但在此过程中,我们忽略了各城市间存在的无法直达的情况。

此结论只是理论结果,对于实践应用有一定局限性。

图三周游各省会的最短路径(googleearth截图)

4.2问题二

我们对一问的蚁群算法程序进行了改进,改成了求最短费用路径的程序。

为了简化求解的过程,我们采用了将所有城市划分为不同区域分别求解的方法,具体分区如图四。

接着,我们在每个区域的城市间构建了全图,并查询了各区域城市间的火车及飞机票价,选出了最小费用作为了相应线路的权值。

在每个区域中,我们用程序算出了属于本区域的费用最小路线。

在得出了各区域最短路后,我们作出了整体区域间的近似经济最优路线(图五)。

此问题主要就是求目标函数

=

,即求出各地费用整体最小值。

具体旅行路线为:

哈尔滨->长春->沈阳->天津->呼和浩特->太原->石家庄->北京->济南->合肥->福州->台北->福州->杭州->上海->南京->郑州->南昌->武汉->长沙->南宁->广州->澳门->香港->广州->海口->重庆->贵阳->昆明->成都->拉萨->西安->银川->南宁->兰州->乌鲁木齐。

由于港澳台地区的特殊性,我们将到这几个城市的费用做了另外的考虑。

我们把到香港澳门的交通工具选做了船。

广州到台湾,台湾到香港,香港岛广州的各自费用大体为140元。

福州到台北的交通工具我们选择了飞机,往返机票费用大体为670元。

其他各地的最小总费用大致为6396元。

因此,我们得出此次旅行的最小费用大致为7486元。

具体的订票方案为为:

路线

订票方案

价格(单位:

元)

时间

哈尔滨->长春

火车K129

60

2010年5月1日

长春->沈阳

火车K265

95

2010年5月4日

沈阳->天津

火车K1054

177

2010年5月7日

天津->呼和浩特

火车K1136

173

2010年5月11日

呼和浩特->太原

火车K2462

93

2010年5月14日

太原->石家庄

火车K372

89

2010年5月17日

石家庄->北京

火车K117

93

2010年5月21日

北京->济南

火车T281

127

2010年5月24日

济南->合肥

火车K747

157

2010年5月27日

合肥->福州

火车K70

265

2010年5月31日

福州->台北

往返机票

670

2010年6月3(6)日

福州->杭州

火车K163

191

2010年6月6日

杭州->上海

火车K112

80

2010年6月9日

上海->南京

火车K154

98

2010年6月12日

南京->郑州

火车K152

169

2010年6月16日

郑州->南昌

火车K742

141

2010年6月20日

南昌->武汉

火车K124

103

2010年6月23日

武汉->长沙

火车G1059

84

2010年6月26日

长沙->南宁

火车T5

224

2010年6月30日

南宁->广州

火车K230

191

2010年7月2日

广州->澳门

140

2010年7月5日

澳门->香港

140

2010年7月8日

香港->广州

140

2010年7月11日

广州->海口

火车K407

239

2010年7月14日

海口->重庆

飞机HU7262

1280

2010年7月17日

重庆->贵阳

火车K872

80

2010年7月20日

贵阳->昆明

火车K156

157

2010年7月24日

昆明->成都

火车K853

158

2010年7月28日

成都->拉萨

火车T22

578

2010年8月1日

拉萨->西安

火车T166

518

2010年8月6日

西安->银川

火车K359

191

2010年8月10日

银川->西宁

火车K915

124

2010年8月13日

西宁->兰州

火车K171

84

2010年8月16日

兰州->乌鲁木齐

火车K544

377

2010年8月19日

K129-K265-K1054-K1136-K2462-K372-K117-T281-K747-K70-K163-K112-K154-K152-K742-K124-G1059-T5-K230-K407-HU7262-K872-K156-K853-T22-T166-K359–K915-K171-K544

图四区域划分图(googleearth截图)

图五费用最少路线图(googleearth截图)

注:

红线为各区域最短路,蓝线为区域间近似最短链接路径

4.3问题三

在这一问题中,我们选取了第一个区域为代表建立了数学模型。

选取的城市包括:

哈尔滨、长春、沈阳、北京、天津、太原、呼和浩特。

从第二个问中我们可以知道,在第一个区域中的最短路线为:

哈尔滨->长春->沈阳->天津->呼和浩特->太原->石家庄->北京。

考虑省钱省时两方面因素,建立线性目标规划为

我们引入变量

,让其表示从i地道j地的路线选择情况。

为1时,表示选择第i条线路用第j种交通工具走;当

为0时表示第i条线路不用第j种交通工具走。

其中路线为:

1.北京-呼和浩特2.呼和浩特-太原3.太原-石家庄4.石家庄-天津5.天津-沈阳6.沈阳-长春7.长春-哈尔滨;交通工具有:

1.飞机2.动车3.火车卧铺

不选择第i种地交通工具走第j条路线

=

,选择第i种地交通工具走第j条路线

设时间的权值系数为α,由于只涉及费用和时间两个因素,则费用的权值系数为β,而β+α=1。

建立各条路线的目标函数为:

MIN

=(α*500+β*1.083)*x11+(α*1000+β*1000)*x12+(α*165+β*10.45)*x13+(α*430+β*0.917)*x21+(α*1000+β*1000)*x22+(α*1000+β*1000)*x23+(α*1000+β*1000)*x31+(α*70+β*1.267)*x32+(α*89+β*2.167)*x33+(α*1000+β*1000)*x41+(α*1000+β*1000)*x42+(α*106+β*4.867)*x43+(α*690+β*1.25)*x51+(α*213+β*4.5)*x52+(α*169+β*9.5)*x53+(α*510+β*1)*x61+(α*169+β*4.167)*x62+(α*139+β*5.95)*x63+(α*1000+β*1000)*x71+(α*76+β*1.767)*x72+(α*60+β*3.45)*x73

s.tx11+x12+x13=1

x21+x22+x23=1

x31+x32+x33=1

x41+x42+x43=1

x51+x52+x53=1

x61+x62+x63=1

x71+x72+x73=1

令α=β=0.5,简化后目标函数

MIN

=250.5415x11+1000x12+87.725x13+

215.4585x21+1000x22+1000x23+

1000x31+35.638x32+45.5835x33+

1000x41+1000x42+55.4335x43+

345.625x51+108.75x52+89.25x53+

255.5x61+86.5835x62+72.475x63+

1000x71+38.8835x72+31.725x73

s.tx11+x12+x13=1

x21+x22+x23=1

x31+x32+x33=1

x41+x42+x43=1

x51+x52+x53=1

x61+x62+x63=1

x71+x72+x73=1

用lindo求解如下:

OBJECTIVEFUNCTIONVALUE

1)587.7050

VARIABLEVALUEREDUCEDCOST

X110.000000250.541504

X120.0000001000.000000

X131.00000087.724998

X211.000000215.458496

X220.0000001000.000000

X230.0000001000.000000

X310.0000001000.000000

X321.00000035.638000

X330.00000045.583500

X410.0000001000.000000

X420.0000001000.000000

X431.00000055.433498

X510.000000345.625000

X520.000000108.750000

X531.00000089.250000

X610.000000255.500000

X620.00000086.583504

X631.00000072.474998

X710.0000001000.000000

X720.00000038.883499

X731.00000031.725000

 

ROWSLACKORSURPLUSDUALPRICES

2)0.0000000.000000

3)0.0000000.000000

4)0.0000000.000000

5)0.0000000.000000

6)0.0000000.000000

7)0.0000000.000000

8)0.0000000.000000

NO.ITERATIONS=7

BRANCHES=0DETERM.=1.000E0

根据求解结果我们可得,在第一个区域中,相对省钱省时的路线为及其选择的交通工具为:

北京-呼和浩特路线选择火车硬卧,呼和浩特-太原路线选择飞机,太原-石家庄路线选择动车,石家庄-天津路线选择火车硬卧,天津-沈阳路线选择火车硬卧,沈阳-长春路线选择火车硬卧,长春-哈尔滨路线选择火车硬卧。

4.4问题四

本题是TSP(旅行商)问题的一种变形,而TSP问题直观的求解方法为穷举法(城市规模是n,总的计算时间是o(n!

)。

用运算能力为每秒一百万次浮点运算的计算机求解,在n=10时只需0.18s。

而在n=20时,需用1929年才能找到最优解。

而本题是34城市,故在规定的时间内运用穷举法是无法完成的),但跟据这种方法能求出最优解。

为解决这一个NP问题,采用了蚁群算法来求最短路径与最小费用。

通过对算法的分析,得出算法的时间复杂度为O(Nc·n2·m),空间复杂度为O(n2)+O(n·m),对于一般蚁群算法,参数选择范围为m=

~n/2,α=1~5,β=1~5,p=0.7,Q=100。

(文献【5】)。

蚁群算法在解决较小规模地TSP问题时会得到一个近似解,故在本题中可以采用得出的最短路与最小费用。

当城市个数规模增大到一定的程度时,蚁群算法也不可取。

第二个与第三个模型的采用的分割思想可能导致局部最优却不是整体最优,但对大规模问题不能整体求解的话便只能分割开来分别求解,再将局部最优解整合求出解。

五、模型分析与评价

5.1模型一的评价

对于第一个问题,我们构建了以经纬度为坐标的平面直角坐标系,将曲面问题近似的化成了平面问题,更易求解出相应的最短路线。

但在此过程中,我们忽略了将曲面化成直面时引起的误差问题。

接着,我们采用了蚁群算法求解出了到达各省会及港澳台的最短旅行路线,并在地图上做出了最短路线图,使结论更较明了直观。

蚁群算法是一种用于求解优化问题的新型模拟进化算法,该算法在许多相当困难的优化问题的求解中体现了极强的寻优能力和较好的性质。

从理论角度分析,最优化模型规划角度可解具有很强的实际意义,例如可以推广到遍历更多的地区的情况。

但此模型是基于坐标的基础上求解出的,忽略了无法直达的问题,因此在理论上是最优解,但对实际应用会有一些局限性。

5.2模型二的评价

模型二的划分区域的思想是将整体球最小费用路径的问题变成了求多个区域的最小费用路径问题。

这种分割式的思想会将问题简化,求解起来会相对容易些,也更容易让人理解。

对此模型地求解我们采用了第一个问题的蚁群算法程序,对程序的主干部分进行了修改,将求最短距离路径的问题变成了就最小费用路径的问题,提高了程序的重复利用率。

但是,在查找各城市间的火车及飞机票价问题时,由于查找的局限性,查出的数据可能不是很准确。

还有由于是分区域求出的最小费用路径,在整体整合时是从各区域的出口连接另一个区域的入口。

导致我们求解出来的结果不是最优而是近似最优。

5.3模型三的评价

模型三最开始应该是属于无约束条件的线性目标规划问题,但我们引入了变量

,用其表示第i条路线用第j种交通工具走的状态。

取0时,表示此种状态不成立,当

取1时表示此种状态成立。

由于每一条路线只能选取一种交通工具取走,这样,我们就为本没有约束条件的问题建立了约束。

使得模型成了我们常见的线性目标规划问题。

但在此模型中,由于数据和相关信息的缺乏以及时间问题,我们只选取了第一个区域为代表给出了求解近似既省钱又省时的优化路线。

和第一个问题类似,次模型的理论意义较好,但实际应用起来可能会受到局限。

Lindo求解的评价:

Lindo执行速度很快、易于方便输入、求解和分析数学规划问题。

因此在数学、科研和工业界得到广泛应用。

LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。

也可以用于一些非线性和线性方程组的求解以及代数方程求根等。

LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。

但是,lindo软件求解的对象只能是线性的问题,对于非线性问题的求解就要借助其他软件来进行了。

因此,lindo软件在这方面会有一定的局限性。

六、模型拓展

由于时间及数据查询方面等约束,此模型主要从理论上对游遍各城市的路途最短,费用最小,既省时又省钱的路径进行求解。

如果时间允许,我们可以将34个城市抽象成点,再连接所有点,构建一个省会城市之间的全图,再上网查找出所有城市之间票价的详细信息,然后参考图论的相关关知识建立与之想对应的数学模型,编程求解。

这样得出的结论会更加精确,误差也会尽量减小。

七、参考文献

【1】.姜启源、谢金星、叶俊,数学模型(第三版),北京:

高等教育出版社,2003年8月第三版

【2】.谢金星、薛毅,优化建模与LINDO/LINGO软件,北京:

清华大学出版社,2005年7月第一版

【3】.梅长林、范金城,数据分析方法,北京:

高等教育出版社,2006年2月第一版

【4】.黄润龙,数据统计与分析技术,北京:

清华大学出版社,2004年7月第一版

【5】.詹士昌、徐洁、吴俊,蚁群算法中有关算法参数的最优选择,杭州:

科技通报第19卷第5期,2003年9月

附录

附录一各省会经纬度:

北京E116°28′N39°54′

上海E121°29′N31°14′

天津E117°11′N39°09′

重庆E106°32′N29°32′

哈尔滨E126°41′N45°45′

长春E125°19′N43°52′

沈阳E123°24′N41°50′

呼和浩特E111°48′N40°49′

石家庄E114°28′N38°02′

太原E112°34′N37°52′

济南E117°N36°38′

郑州E113°42′N34°48′

西安E108°54′N34°16′

兰州E103°49′N36°03′

银川E106°16′N38°20′

西宁E101°45′N36°38′

乌鲁木齐E87°36′N43°48′

合肥E117°18′N31°51′

南京E118°50′N32°02′

杭州E120°09′N30°14′

长沙E113°N28°11′

南昌E115°52′N28°41′

武汉E114°21′N30°37′

成都E104°05′N30°39′

贵阳E106°42′N26°35′

福州E119°18′N26°05′

台北E121°31′N25°03′

广州E113°15′N23°08′

海口E110°20′N20°02′

南宁E108°20′N22°48′

昆明E102°41′N25°

拉萨E91°10′N29°40′

香港E114°10′N22°18′

附录二蚁群算法求最短路源程序:

(C++环境)

#include

#include

#include

usingnamespacestd;

//该程序是以蚁群系统为模型写的蚁群算法程序(强调:

非蚂蚁周模型)

//通过微调参数,都可以获得较好的解

#defineN34

//城市坐标

doubleC[N][2]={

{116.5,39.9},{121.5,31.2},{117.2,40.5},{106.5,29.5},{126.7,45.8},

{125.3,43.9},{123.4,41.8},{111.8,40.8},{114.5,38.0},{112.6,37.9},

{117.0,36.6},{113.7,34.8},{108.9,34.3},{103.8,36.1},{106.3,38.3},

{101.8,36.6},{87.6,43.8},{117.3,31.9},{118.8,32.0},{120.2,30.2},

{113.0,28.2},{115.9,28.7},{114.4,30.6},{104.1,30.7},{106.7,26.6},

{119.3,26.1},{121.5,25.1},{113.3,23.1},{110.3,20.0},{108.3,22.8},

{102.7,25.0},{91.2,29.7},{114.2,22.3},{113.6,22.2}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1