数学建模中的图论方法.
- 格式:doc
- 大小:144.50 KB
- 文档页数:22
数学建模的主要建模方法数学建模是指运用数学方法和技巧对复杂的实际问题进行抽象、建模、分析和求解的过程。
它是解决实际问题的一个重要工具,在科学研究、工程技术和决策管理等领域都有广泛的应用。
数学建模的主要建模方法包括数理统计法、最优化方法、方程模型法、概率论方法、图论方法等。
下面将分别介绍这些主要建模方法。
1.数理统计法:数理统计法是基于现有的数据进行概率分布的估计和参数的推断,以及对未知数据的预测。
它适用于对大量数据进行分析和归纳,提取有用的信息。
数理统计法可以通过描述统计和推断统计两种方式实现。
描述统计主要是对数据进行可视化和总结,如通过绘制直方图、散点图等图形来展示数据的分布特征;推断统计则采用统计模型对数据进行拟合,进行参数估计和假设检验等。
2.最优化方法:最优化方法是研究如何在给定的约束条件下找到一个最优解或近似最优解的方法。
它可以用来寻找最大值、最小值、使一些目标函数最优等问题。
最优化方法包括线性规划、非线性规划、整数规划、动态规划等方法。
这些方法可以通过建立数学模型来描述问题,并通过优化算法进行求解。
3.方程模型法:方程模型法是通过建立数学方程或函数来描述问题,并利用方程求解的方法进行求解。
这种方法适用于可以用一些基本的方程来描述的问题。
方程模型法可以采用微分方程、代数方程、差分方程等不同类型的方程进行建模。
通过求解这些方程,可以得到问题的解析解或数值解。
4.概率论方法:概率论方法是通过概率模型来描述和分析不确定性问题。
它可以用来处理随机变量、随机过程和随机事件等问题。
概率论方法主要包括概率分布、随机变量、概率计算、条件概率和贝叶斯推理等内容。
利用概率论的方法,可以对问题进行建模和分析,从而得到相应的结论和决策。
5.图论方法:图论方法是研究图结构的数学理论和应用方法。
它通过把问题抽象成图,利用图的性质和算法来分析和求解问题。
图论方法主要包括图的遍历、最短路径、最小生成树、网络流等内容。
数学建模中的图论方法一、前言我们知道,数学建模比赛中有问题A和问题B。
一般而言,问题A是连续系统中的问题,问题B是失散系统中的问题。
因为我们在大学数学教育内容中,连续系统方面的知识的比率较大,而离散数学比率较小。
所以好多人有这样的感觉,A题下手快,而B题不好下手。
其他,在有限元素的失散系统中,相应的数学模型又可以区分为两类,一类是存在有效算法的所谓P类问题,即多项式时间内可以解决的问题。
但是这种问题在MCM中特别少见,事实上,由于比赛是开卷的,参照有关文件,使用现成的算法解决一个P类问题,不可以显示参赛者的建模及解决实诘问题能力之大小;还有一类所谓的NP问题,这种问题每一个都还没有成立有效的算法,或许真的就不行能有有效算法来解决。
命题经常以这种NPC问题为数学背景,找一个详细的实质模型来考验参赛者。
这样增添了成立数学模型的难度。
但是这也其实不是说没法求解。
一般来说,因为问题是详细的实例,我们可以找到特其他解法,或许可以给出一个近似解。
图论作为失散数学的一个重要分支,在工程技术、自然科学和经济管理中的好多方面都能供给有力的数学模型来解决实诘问题,所以吸引了好多研究人员去研究图论中的方法和算法。
应当说,我们对图论中的经典例子或多或少仍是有一些认识的,比方,哥尼斯堡七桥问题、中国邮递员问题、四色定理等等。
图论方法已经成为数学模型中的重要方法。
好多灾题因为归纳为图论问题被奇妙地解决。
并且,从历年的数学建模比赛看,出现图论模型的频次极大,比方:AMCM90B-扫雪问题;AMCM91B-找寻最优Steiner树;AMCM92B-紧迫修复系统的研制(最小生成树)AMCM94B-计算机传输数据的最小时间(边染色问题)CMCM93B-足球队排名(特点向量法)CMCM94B-锁具装箱问题(最大独立极点集、最小覆盖等用来证明最优性)CMCM98B-灾情巡视路线(最优回路)等等。
这里面都直接或是间接用到图论方面的知识。
数学建模中的图论算法及其应用研究引言:数学建模是指利用数学方法和技巧对实际问题进行分析、抽象、描述、求解和预测的一种研究方法。
图论作为数学建模中的重要工具之一,被广泛应用于各个领域,如网络分析、交通规划、社交网络等。
本文将介绍数学建模中常用的图论算法,并探讨它们在实际问题中的应用。
一、图论基础知识1.1 图的概念图是由一些点和连接这些点的边组成的集合。
点表示图中的实体或对象,边表示实体之间的关系。
图包含了很多重要的信息,例如节点的度、连通性等。
1.2 图的表示方法图可以用邻接矩阵或邻接表来表示。
邻接矩阵是一个二维矩阵,其中的元素表示节点之间是否相连。
邻接表是一个由链表构成的数组,数组的每个元素表示一个节点,每个节点的链表存储了与该节点相连的节点列表。
二、图的遍历算法2.1 深度优先搜索(DFS)深度优先搜索是一种用于图的遍历的算法。
从一个节点出发,递归地访问它的相邻节点,直到所有可达的节点都被访问过为止。
DFS可以用于寻找连通分量、路径搜索等问题。
2.2 广度优先搜索(BFS)广度优先搜索是另一种图的遍历算法。
从一个节点出发,依次访问它的相邻节点,然后再依次访问相邻节点的相邻节点。
BFS可以用于寻找最短路径、网络分析等问题。
三、最短路径算法3.1 Dijkstra算法Dijkstra算法用于寻找图中两个节点之间的最短路径。
它基于贪心策略,从起点开始逐步扩展最短路径,直到到达终点或无法扩展为止。
Dijkstra算法在交通网络规划、电力网络优化等领域有广泛应用。
3.2 Floyd-Warshall算法Floyd-Warshall算法用于寻找图中所有节点之间的最短路径。
它通过动态规划的思想,逐步更新每对节点之间的最短路径。
Floyd-Warshall算法在地理信息系统、通信网络等领域有重要应用。
四、最小生成树算法4.1 Prim算法Prim算法用于寻找连通图的最小生成树。
它从一个起始节点开始,逐步选择与当前生成树距离最近的节点,并将其加入最小生成树中。
数学建模中的图论方法一、引言我们知道,数学建模竞赛中有问题A和问题B。
一般而言,问题A是连续系统中的问题,问题B是离散系统中的问题。
由于我们在大学数学教育内容中,连续系统方面的知识的比例较大,而离散数学比例较小。
因此很多人有这样的感觉,A题入手快,而B题不好下手。
另外,在有限元素的离散系统中,相应的数学模型又可以划分为两类,一类是存在有效算法的所谓P类问题,即多项式时间内可以解决的问题。
但是这类问题在MCM中非常少见,事实上,由于竞赛是开卷的,参考相关文献,使用现成的算法解决一个P类问题,不能显示参赛者的建模及解决实际问题能力之大小;还有一类所谓的NP问题,这种问题每一个都尚未建立有效的算法,也许真的就不可能有有效算法来解决。
命题往往以这种NPC问题为数学背景,找一个具体的实际模型来考验参赛者。
这样增加了建立数学模型的难度。
但是这也并不是说无法求解。
一般来说,由于问题是具体的实例,我们可以找到特殊的解法,或者可以给出一个近似解。
图论作为离散数学的一个重要分支,在工程技术、自然科学和经济管理中的许多方面都能提供有力的数学模型来解决实际问题,所以吸引了很多研究人员去研究图论中的方法和算法。
应该说,我们对图论中的经典例子或多或少还是有一些了解的,比如,哥尼斯堡七桥问题、中国邮递员问题、四色定理等等。
图论方法已经成为数学模型中的重要方法。
许多难题由于归结为图论问题被巧妙地解决。
而且,从历年的数学建模竞赛看,出现图论模型的频率极大,比如:AMCM90B-扫雪问题;AMCM91B-寻找最优Steiner树;AMCM92B-紧急修复系统的研制(最小生成树)AMCM94B-计算机传输数据的最小时间(边染色问题)CMCM93B-足球队排名(特征向量法)CMCM94B-锁具装箱问题(最大独立顶点集、最小覆盖等用来证明最优性)CMCM98B-灾情巡视路线(最优回路)等等。
这里面都直接或是间接用到图论方面的知识。
要说明的是,这里图论只是解决问题的一种方法,而不是唯一的方法。
本文将从图论的角度来说明如何将一个工程问题转化为合理而且可求解的数学模型,着重介绍图论中的典型算法。
这里只是一些基础、简单的介绍,目的在于了解这方面的知识和应用,拓宽大家的思路,希望起到抛砖引玉的作用,要掌握更多还需要我们进一步的学习和实践。
二、基本概念和性质首先给出图论中的一些基本概念。
1.一个图G由一个顶点集V和一个边的集E组成。
E中每个元素e是连接顶点集V中两个顶点u和v的边,称e与u,v关联。
我们规定连接两个顶点u、v至多有一条边,且一条边的两个顶点不重合,这种图称为简单图。
2.顶点集为V,边集为E的图G通常记为G=(V,E)。
图G1=(V1,E1)称为G的子图,如果V1V,E1E。
3.顶点v的度(或“次”)是指与v相关联的边的个数。
图G的度数之和为边数的两倍。
4.若图G中任意两个顶点u、v之间都存在连接它们的路,称G为连通图。
5.W=v0e1v1e2……ekvk,其中ei E,vj V,ei与vi-1,vi关联,称W是图G的一条道路。
v0是起点,vk是终点;各边相异的道路叫做行迹,各顶点相异的道路叫做轨道;起点和终点重合的道路为回路;起点和终点重合的轨道为圈;包含图中每条边的回路称为Euler回路;含Euler 回路的图称为Euler图。
6.一个无圈的连通图称为树。
树是最简单而最重要的一类图。
树有下列重要性质:性质:1)在树中去掉任意一条边,所得的图是不连通的。
2)在树中任意两个不相邻的顶点u、v之间添加一条新的边,所得的图恰有一个圈。
下述定理是树的判断定理:定理:若图G具有下列性质中的两条,则它是树,且也具有第三条性质。
(1).G是连通图;(2).G没有圈;(3).G的顶点数=G的边数+1。
7.如果图G=(V,E)的子图G t=(V t,E t)是一个树,且V t=V,称G t是G的生成树。
G连通的充要条件是G有生成树。
生成树一般而言数量很大。
8.设对图G=(V,E)的每一条边e赋予一个实数W(e),称为e的权,G称为赋权图(加权图)。
假设G是连通的赋权图,要找G的连通子图G *=(V,E*),使得W(G*)=∑∈Eee W) (为最小。
显然G*应为G的一个生成树。
G的权最小的生成树称为G的最小生成树。
三、算法介绍3.1 最短轨道问题背景:给定连接若干城市的铁路网,寻求从指定城市v0到各城v去的最短道路。
数学模型:图G为一赋权图,对任给的v V(G),寻求轨道P(v0,v),使得W(P(v0,v))=min{W(P),P取自所有v0到v的轨道集合}其中W(P)是轨道P上各边权之和。
这一问题可用迪克斯特拉(Dijkstra)算法解决。
基本思想:从起点v0开始,逐步寻找到达各点的最短路,在每一步都对顶点记录一个数,称之为该点的标号,它表示v0到该点的最短距离的上界,或就是v0到该点的最短距离。
实际上每一步都通过把至少一个具有T标号的点变成P标号(即把一个不是最短距离标号的顶点变成是最短距离标号的顶点),这样最多经过|V(G)|-1步就可完成。
步骤:记l(v)为v0到v的距离。
(1) l(v0)=0,l(v) = ,(v v0);S0={v0},i=0。
(2) 对v Si,min{l(v),l(vi)+w(viv)}代替l(v);这样找到点vi+1使得l(v)取最小值,v(i+1)(Si 的余集)。
令S(i+1)=Si+{v(i+1)}。
(3) i=|V(G)|-1时停止,否则,i+1,转到(2)。
实例:CMCM94A-公路选址问题。
3.2 求最小生成树1.克罗斯克尔(Kruskal)算法(1956年),俗称“避圈法”背景:筑路选线问题欲修筑连接n个城市的铁路,已知i城与j城之间的铁路造价为Cij。
设计一个线路图,使总造价最低。
分析:选线问题的数学模型是在连通加权图上求权最小的连通生成子图。
显然,权最小的连通生成子图是一个生成树,即求取连通加权图上的权最小的生成树,这就归结为最小生成树问题。
这个问题可由克罗斯克尔(Kruskal)算法解决。
思路:从“边”着手选最小生成树。
步骤:设G为由m个节点组成的连通赋权图。
(1) 先把G中所有的边按权值大小由小到大重新排列,并取权最小的一条边为树T中的边。
即选e1E,使得w(e1)=min。
(2) 从剩下的边中按(1)中的排列取下一条边。
若该边与前面已取进T中的边构成一个回路,则舍弃该边,否则也把它取进T中。
若e1,e2,…,ei已经选好,则从E-{e1,e2,…,ei}中选取ei+1,使得G[{e1,e2,…,ei,ei+1}]中无圈,且w(ei+1)=min。
(3) 重复步骤(2),直到T中有m-1条边为止。
则T为G的最小生成树。
该算法的复杂度为O(e log e),其中e是图G中的边数。
2.普莱姆(Prim)算法思路:从点入手来选边步骤:(1) 在图G中任取一个节点vi1,并放入T中。
(2) 令S=V(G)/V(T),V(G)、V(T)分别是G、T的节点集。
(3) 在所有连接V(T)节点与S节点的边中,选出权值最小的边(u0,v0),即w(u0,v0)=min{w(u,v)|u V(T), v S}。
(4) 将边(u0,v0)放入T中。
(5) 重复步骤(2)-(4),直到G中节点全部取完。
该算法的复杂度为O(n^2),其中n为图G的节点数。
3.1975年管梅谷提出的“破圈法”3.3 Steiner生成树实际背景:在已有网络上选择连通几个城市的最廉价交通或通讯网。
数学模型:从已知的加权连通图上求取最小的树状子图,使此树包含指定的顶点子集。
第一个的边长为3,第二个的边长为1,总费用第二个更少。
分析:与传统的最小生成树相比,这里可以引入若干“虚拟站”并构造一个新的Steiner树,这样可以降低由一组站生成的传统的最小生成树所需的费用(降低的费用大概为13.4%)。
而且为构造一个有n个顶点的网络的费用,最低的Steiner树决不需要多于(n-2)个虚设站。
当然,有时最小Steiner 生成树与最小生成树相同。
寻求最小Steiner生成树的算法有Melzak算法(1961年),但是这是一个指数时间的算法,现在没有多项式时间的算法,换句话说它是一个NP问题。
而且,这里的要求是用直折线代替欧氏直线距离,因而不能利用直接的算法。
所以在解决这样的问题的时候,为减少运算的时间,理论上的分析是必要的:比如树的长度的下界,Steiner树的存在性,虚设站的位置等等。
常用的算法还包括穷举法、模拟退火法等。
Melzak算法:其基础是3点steiner树,即3点Fermat问题的几何作图法。
参考[2],Page375。
模拟退火法原理:模拟退火法(Simulated annealing, SA)是模拟热力学中经典粒子系统的降温过程,来求解极值问题。
当孤立粒子系统的温度以足够慢的速度下降时,系统近似处于热力学平衡状态,最后系统将达到本身的最低能量状态,即基态,这相当于能量函数的全局极小点。
其步骤如下(也称为Metropolis过程):(1)给定初始温度T0,及初始点,计算该点的函数值f(x)。
(2)随机产生扰动Δx,得到新点x′=x+Δx,计算新点函数值f(x′),及函数值差Δf=f(x′)-f(x)。
(3)若Δf≤0,则接受新点,作为下一次模拟的初始点;(4)若Δf>0,则计算新点接受概率:,产生[0,1]区间上均匀分布的伪随机数r,r∈[0,1],如果p(Δf)≥r,则接受新点作为下一次模拟的初始点;否则放弃新点,仍取原来的点作为下一次模拟的初始点。
模拟退火法实例:1.MCM91B(通讯网络中的极小生成树)是一个求STEINER生成树问题,参见《工科数学专辑》Page:70-78。
2、CMCM 97A题97年全国大学生数模竞赛A题“零件的参数设计”,可以归结为非线性规划模型,由于目标函数很复杂,且又是一个多维函数,因此求解比较困难,为应用模拟退火法进行求解,将7个自变量的取值范围进行离散化,取步长为0.0001,这样,所有7个变量取值就组成了一个极为庞大的离散空间, 而这个问题变成组合优化模型。
这个问题算法的状态调整规则是:每次从7个自变量中随机选取1-4个,让选取的自变量随机移动,考虑选取的自变量在两个方向移动组合,从中选取最佳的作为候选者,自变量移动的距离随着温度的降低而减少,为避免陷入局部极小,可以从多个随机选取的初始值开始计算,算法的其它步骤同上。
3、CMCM 98B题98年全国大学生数学建模竞赛B题“水灾巡视问题”,是一个推销员问题,本题有53个点,所有可能性大约为exp(53),目前没有好方法求出精确解,既然求不出精确解,我们使用模拟退火法求出一个较优解,将所有结点编号为1到53,1到53的排列就是系统的结构,结构的变化规则是:从1到53的排列中随机选取一个子排列,将其反转或将其移至另一处,能量E自然是路径总长度。