数学建模方法之图论模型
- 格式:ppt
- 大小:4.25 MB
- 文档页数:96
数学建模的主要建模方法数学建模是指运用数学方法和技巧对复杂的实际问题进行抽象、建模、分析和求解的过程。
它是解决实际问题的一个重要工具,在科学研究、工程技术和决策管理等领域都有广泛的应用。
数学建模的主要建模方法包括数理统计法、最优化方法、方程模型法、概率论方法、图论方法等。
下面将分别介绍这些主要建模方法。
1.数理统计法:数理统计法是基于现有的数据进行概率分布的估计和参数的推断,以及对未知数据的预测。
它适用于对大量数据进行分析和归纳,提取有用的信息。
数理统计法可以通过描述统计和推断统计两种方式实现。
描述统计主要是对数据进行可视化和总结,如通过绘制直方图、散点图等图形来展示数据的分布特征;推断统计则采用统计模型对数据进行拟合,进行参数估计和假设检验等。
2.最优化方法:最优化方法是研究如何在给定的约束条件下找到一个最优解或近似最优解的方法。
它可以用来寻找最大值、最小值、使一些目标函数最优等问题。
最优化方法包括线性规划、非线性规划、整数规划、动态规划等方法。
这些方法可以通过建立数学模型来描述问题,并通过优化算法进行求解。
3.方程模型法:方程模型法是通过建立数学方程或函数来描述问题,并利用方程求解的方法进行求解。
这种方法适用于可以用一些基本的方程来描述的问题。
方程模型法可以采用微分方程、代数方程、差分方程等不同类型的方程进行建模。
通过求解这些方程,可以得到问题的解析解或数值解。
4.概率论方法:概率论方法是通过概率模型来描述和分析不确定性问题。
它可以用来处理随机变量、随机过程和随机事件等问题。
概率论方法主要包括概率分布、随机变量、概率计算、条件概率和贝叶斯推理等内容。
利用概率论的方法,可以对问题进行建模和分析,从而得到相应的结论和决策。
5.图论方法:图论方法是研究图结构的数学理论和应用方法。
它通过把问题抽象成图,利用图的性质和算法来分析和求解问题。
图论方法主要包括图的遍历、最短路径、最小生成树、网络流等内容。
数学建模中的图论方法一、前言我们知道,数学建模比赛中有问题A和问题B。
一般而言,问题A是连续系统中的问题,问题B是失散系统中的问题。
因为我们在大学数学教育内容中,连续系统方面的知识的比率较大,而离散数学比率较小。
所以好多人有这样的感觉,A题下手快,而B题不好下手。
其他,在有限元素的失散系统中,相应的数学模型又可以区分为两类,一类是存在有效算法的所谓P类问题,即多项式时间内可以解决的问题。
但是这种问题在MCM中特别少见,事实上,由于比赛是开卷的,参照有关文件,使用现成的算法解决一个P类问题,不可以显示参赛者的建模及解决实诘问题能力之大小;还有一类所谓的NP问题,这种问题每一个都还没有成立有效的算法,或许真的就不行能有有效算法来解决。
命题经常以这种NPC问题为数学背景,找一个详细的实质模型来考验参赛者。
这样增添了成立数学模型的难度。
但是这也其实不是说没法求解。
一般来说,因为问题是详细的实例,我们可以找到特其他解法,或许可以给出一个近似解。
图论作为失散数学的一个重要分支,在工程技术、自然科学和经济管理中的好多方面都能供给有力的数学模型来解决实诘问题,所以吸引了好多研究人员去研究图论中的方法和算法。
应当说,我们对图论中的经典例子或多或少仍是有一些认识的,比方,哥尼斯堡七桥问题、中国邮递员问题、四色定理等等。
图论方法已经成为数学模型中的重要方法。
好多灾题因为归纳为图论问题被奇妙地解决。
并且,从历年的数学建模比赛看,出现图论模型的频次极大,比方:AMCM90B-扫雪问题;AMCM91B-找寻最优Steiner树;AMCM92B-紧迫修复系统的研制(最小生成树)AMCM94B-计算机传输数据的最小时间(边染色问题)CMCM93B-足球队排名(特点向量法)CMCM94B-锁具装箱问题(最大独立极点集、最小覆盖等用来证明最优性)CMCM98B-灾情巡视路线(最优回路)等等。
这里面都直接或是间接用到图论方面的知识。
图论中最短路算法与程序实现图论中的最短路问题(包括无向图和有向图)是一个基本且常见的问题。
主要的算法有Dijkstra 算法和Floyd 算法。
Dijkstra 算法是求出指定两点之间的最短路,算法复杂度为 Floyd 算法是求出任意两点之间的最短路,算法复杂度为 2()O n 3()O n1.Dijkstra算法2. Floyd算法算法程序(Matlab)为:for k=1:nfor i=1 :nfor j=1:nt=B(i,k)+B(k,j);if t<B(i,j) B(i,j)=t; end endendend起点终点距离起点终点距离起点终点距离12400718160151725013450892001617140243008152851618130221230910180172724024714010111501819204346001015160182518045210111214019201404193101114130192417556230121320020211805720013344002024190673201415190212230068340142619021232707817015161702147350表1 各点距离(m)实例:已知50个点之间相互连接信息见表1及续表。
求最短距离矩阵续表1 各点距离(m)起点终点距离起点终点距离起点终点距离22441602229313640190 22452702230313738135 22481802230423839130 23242402330433941310 23292102331324041140 23302902331364050190 23441502331504250200 24251702432334344260 24281302432354345210 26271402632364546240 26343202633344648280 27281902735374849200 2829260283639n=50; %Matlab实现的Floyd算法A=zeros(n,n);for i=1:nfor j=1:nif(i==j) A(i,j)=0;else A(i,j)=100000;endendend %赋直接距离信息A(1,2)=400;A(1,3)=450; A(2,4)=300;A(2,21)=230; A(2,47)=140;A(3,4)=600;A(4,5)=210;A(4,19)=310;A(5,6)=230;A(5,7)=200; A(6,7)=320; A(6,8)=340;A(7,8)=170;A(7,18)=160;A(8,9)=200;A(8,15)=285; A(9,10)=180; A(10,11)=150; A(10,15)=160; A(11,12)=140; A(11,14)=130; A(12,13)=200; A(13,34)=400;A(14,15)=190;A(14,26)=190; A(15,16)=170; A(15,17)=250; A(16,17)=140;A(16,18)=130; A(17,27)=240; A(18,19)=204; A(18,25)=180; A(19,20)=140; A(19,24)=175; A(20,21)=180; A(20,24)=190; A(21,22)=300; A(21,23)=270; A(21,47)=350;A(22,44)=160;A(22,45)=270;A(22,48)=180;A(23,24)=240; A(23,29)=210;A(23,30)=290;A(23,44)=150;A(24,25)=170;A(24,28)=130; A(26,27)=140;A(26,34)=320;A(27,28)=190;A(28,29)=260;A(29,31)=190; A(30,31)=240;A(30,42)=130;A(30,43)=210;A(31,32)=230;A(31,36)=260; A(31,50)=210;A(32,33)=190;A(32,35)=140;A(32,36)=240;A(33,34)=210; A(35,37)=160;A(36,39)=180;A(36,40)=190;A(37,38)=135;A(38,39)=130; A(39,41)=310;A(40,41)=140;A(40,50)=190;A(42,50)=200;A(43,44)=260; A(43,45)=210;A(45,46)=240;A(46,48)=280;A(48,49)=200;for j=1:nfor i=1:j-1A(j,i)=A(i,j); %使矩阵对称endendB=A;%利用Floyd算法计算最短距离矩阵for k=1:nfor i=1 :nfor j=1:nt=B(i,k)+B(k,j);if t<B(i,j) B(i,j)=t; endendendend %输出距离矩阵到文件fid=fopen('distance.txt','w'); for i=1:nfor j=1:nfprintf(fid,'%4d ',B(i,j)); endfprintf(fid,'\n');endfclose(fid);。