数学建模基础知识幻灯片.ppt
《数学建模基础知识幻灯片.ppt》由会员分享,可在线阅读,更多相关《数学建模基础知识幻灯片.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学建模基础知识第1页,共71页,编辑于2022年,星期六我们介绍三种优化模型:n n图论图论n n动态优化动态优化n n排队论排队论重点:图论模型的数学建模案例分析重点:图论模型的数学建模案例分析 第2页,共71页,编辑于2022年,星期六基本方法机理分析机理分析测试分析测试分析根据对客观事物特性的认识,找出反映内部机理的数量规律将研究对象看作“黑箱”,通过对量测数据的统计分析,找出与数据拟合最好的模型二者结合二者结合机理分析建立模型结构,测试分析确定模型参数 数学建模的方法和步骤数学建模的方法和步骤第3页,共71页,编辑于2022年,星期六数数 学学 建建 模模 的的 一一 般般 步步 骤
2、骤模型准备模型准备模型假设模型假设模型构成模型构成模型求解模型求解模型分析模型分析模型检验模型检验模型应用模型应用第4页,共71页,编辑于2022年,星期六一、图论方法一、图论方法最短路问题最短路问题最短路问题最短路问题两个指定顶点之间的最短路径两个指定顶点之间的最短路径两个指定顶点之间的最短路径两个指定顶点之间的最短路径给出了一个连接若干个城镇的铁给出了一个连接若干个城镇的铁给出了一个连接若干个城镇的铁给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间,找一条最短铁路线路网络,在这个网络的两个指定城镇间,找一条最短铁路线路网络,在这个网络的两个指定城镇间,找一条最短铁路线路网络,
3、在这个网络的两个指定城镇间,找一条最短铁路线 (DijkstraDijkstra算法算法算法算法 )每对顶点之间的最短路径每对顶点之间的最短路径每对顶点之间的最短路径每对顶点之间的最短路径 (DijkstraDijkstra算法、算法、算法、算法、FloydFloyd算法算法算法算法 )最小生成树问题最小生成树问题连线问题连线问题连线问题连线问题欲修筑连接多个城市的铁路设计一个线路图,使欲修筑连接多个城市的铁路设计一个线路图,使欲修筑连接多个城市的铁路设计一个线路图,使欲修筑连接多个城市的铁路设计一个线路图,使总造价最低(总造价最低(总造价最低(总造价最低(primprim算法算法算法算法、K
4、ruskalKruskal算法算法算法算法 )图的匹配问题图的匹配问题图的匹配问题图的匹配问题人员分派问题:人员分派问题:人员分派问题:人员分派问题:n n个工作人员去做个工作人员去做个工作人员去做个工作人员去做n n份工作,每人适合做其中一份份工作,每人适合做其中一份份工作,每人适合做其中一份份工作,每人适合做其中一份或几份,问能否每人都有一份适合的工作?如果不能,最多几人或几份,问能否每人都有一份适合的工作?如果不能,最多几人或几份,问能否每人都有一份适合的工作?如果不能,最多几人或几份,问能否每人都有一份适合的工作?如果不能,最多几人可以有适合的工作?可以有适合的工作?可以有适合的工作?
5、可以有适合的工作?(匈牙利算法匈牙利算法匈牙利算法匈牙利算法)第5页,共71页,编辑于2022年,星期六遍历性问题遍历性问题遍历性问题遍历性问题中国邮递员问题中国邮递员问题邮递员发送邮件时,要从邮递员发送邮件时,要从邮局出发,经过他投递范围内的每条街道至邮局出发,经过他投递范围内的每条街道至少一次,然后返回邮局,但邮递员希望选择少一次,然后返回邮局,但邮递员希望选择一条行程最短的路线一条行程最短的路线最小费用最大流问题最小费用最大流问题在运输问题中,人们总是希望在完成运输任在运输问题中,人们总是希望在完成运输任务的同时,寻求一个使总的运输费用最小的务的同时,寻求一个使总的运输费用最小的运输方案
6、运输方案 第6页,共71页,编辑于2022年,星期六(1)基基本本概概念念(2)固)固定定起起点点的的最最短短路路(3)每)每对对顶顶点点之之间间的的最最短短路路1 1、最短路问题、最短路问题第7页,共71页,编辑于2022年,星期六基基 本本 概概 念念第8页,共71页,编辑于2022年,星期六固固 定定 起起 点点 的的 最最 短短 路路从甲地到乙地之间是否有公路连通?在有多条通路的情况下,哪一条路最短?交通网络可用带权图来表示。顶点表示城市名称,边表示两个城市有路连通,边上的权值可表示两城市之间的距离、交通费或途中所花费的时间等。求两个顶点之间的最短路径,不是指路径上边数之和最少,而是指
7、路径上各边的权值之和最小。另外,若两个顶点之间没有边,则认为两个顶点无通路,但有可能有间接通路(从其它顶点达到)。路径上的开始顶点(出发点)称为源点,路径上的最后一个顶点称为终点,并假定讨论的权值不能为负数。第9页,共71页,编辑于2022年,星期六从一个顶点到其余各顶点的最短路径从一个顶点到其余各顶点的最短路径 问问 题题:给给定定一一个个带带权权有有向向图图G与与源源点点v,求求从从v到到G中中其其他顶点的最短他顶点的最短 路径路径,并限定各边上的权值大于或等于并限定各边上的权值大于或等于0。第10页,共71页,编辑于2022年,星期六 采用采用狄克斯特拉狄克斯特拉(Dijkstra)算法
8、求解算法求解 基基本本思思想想是是:设设G=(V,E)是是一一个个带带权权有有向向图图,把把图图中中顶点集合顶点集合V分成两组:分成两组:第第一一组组为为已已求求出出最最短短路路径径的的顶顶点点集集合合(用用S表表示示,初初始始时时S中中只只有有一一个个源源点点,以以后后每每求求得得一一条条最最短短 路路径径v,vk,就就将将vk加加入入到到集集合合S中中,直直到到全全部部顶顶点点都都加加入入到到S中中,算算法法就就结束了结束了)第二组为其余未确定最短第二组为其余未确定最短 路径的顶点集合路径的顶点集合(用用U表示表示)。按按最最短短 路路径径长长度度的的递递增增次次序序依依次次把把第第二二组
9、组的的顶顶点点加加入入S中中。在在加加入入的的过过程程中中,总总保保持持从从源源点点v到到S中中各各顶顶点点的的最最短短路路径径长长度度不不大大于于从从源源点点v到到U中中任任何何顶顶点点的的最最短短路路径径长长度度。此此外外,每每个个顶顶点点对对应应一一个个距距离离,S中中的的顶顶点点的的距距离离就就是是从从v到到此此顶顶点点的的最最短短 路路径径长长度度,U中中的的顶顶点点的的距距离离从从v到到此此顶顶点点只只包括包括S中的顶点为中间顶点的当前最短中的顶点为中间顶点的当前最短 路径长度。路径长度。第11页,共71页,编辑于2022年,星期六狄克斯特拉算法的具体步骤如下:狄克斯特拉算法的具体
10、步骤如下:(1)初初始始时时,S只只包包含含源源点点,即即S=v,v的的距距离离为为0。U包包含含除除v外外的的其其他他顶顶点点,U中中顶顶点点u距距离离为为边边上上的的权权(若若v与与u有有边边)或或(若若u不是不是v的出边邻接点的出边邻接点)。(2)从从U中中选选取取一一个个距距离离v最最小小的的顶顶点点k,把把k加加入入S中中(该该选选定的距离就是定的距离就是v到到k的最短路径长度的最短路径长度)。(3)以以k为为新新考考虑虑的的中中间间点点,修修改改U中中各各顶顶点点的的距距离离:若若从从源源点点v到到顶顶点点u(uU)的的距距离离(经经过过顶顶点点k)比比原原来来距距离离(不不经经过
11、过顶顶点点k)短短,则则修修改改顶顶点点u的的距距离离值值,修修改改后后的的距距离离值值的的顶顶点点k的的距距离加上边离加上边上的权。上的权。(4)重复步骤重复步骤(2)和和(3)直到所有顶点都包含在直到所有顶点都包含在S中。中。第12页,共71页,编辑于2022年,星期六S U v0到到06各顶点的距离各顶点的距离0 1,2,3,4,5,6 0,4,6,6,0,1 2,3,4,5,6 0,4,5,6,11,0,1,2 3,4,5,6 0,4,5,6,11,9,0,1,2,3 4,5,6 0,4,5,6,11,9,190,1,2,3,5 4,6 0,4,5,6,10,9,170,1,2,3,5
12、,4 6 0,4,5,6,10,9,160,1,2,3,5,4,6 0,4,5,6,10,9,16 则则v0到到v1v6各各顶顶点点的的最最短短距距离离分分别别为为4、5、6、10、9和和16。第13页,共71页,编辑于2022年,星期六狄克斯特拉算法如下狄克斯特拉算法如下(n为图为图G的顶点数的顶点数,v0为源点编号为源点编号):void Dijkstra(int costMAXV,int n,int v0)int distMAXV,pathMAXV;int sMAXV;int mindis,i,j,u;for(i=0;in;i+)disti=costv0i;/*距离初始化距离初始化*/si
13、=0;/*s置空置空*/if(costv0iINF)/*路径初始化路径初始化*/pathi=v0;else pathi=-1;sv0=1;pathv0=0;/*源点编号源点编号v0放入放入s中中*/第14页,共71页,编辑于2022年,星期六 for(i=0;in;i+)/*循环直到所有顶点的最短路径都求出循环直到所有顶点的最短路径都求出*/mindis=INF;u=-1;for(j=0;jn;j+)/*选取不在选取不在s中且具有最小距离的顶点中且具有最小距离的顶点u*/if(sj=0&distjmindis)u=j;mindis=distj;su=1;/*顶点顶点u加入加入s中中*/for(
14、j=0;jn;j+)/*修改不在修改不在s中的顶点的距离中的顶点的距离*/if(sj=0)if(costujINF&distu+costujdistj)distj=distu+costuj;pathj=u;Dispath(dist,path,s,n,v0);/*输出最短路径输出最短路径*/第15页,共71页,编辑于2022年,星期六void Ppath(int path,int i,int v0)/*前向递归查找路径上的顶点前向递归查找路径上的顶点*/int k;k=pathi;if(k=v0)return;/*找到了起点则返回找到了起点则返回*/Ppath(path,k,v0);/*找找k顶
15、点的前一个顶点顶点的前一个顶点*/printf(%d,k);/*输出输出k顶点顶点*/第16页,共71页,编辑于2022年,星期六void Dispath(int dist,int path,int s,int n,int v0)int i;for(i=0;in;i+)if(si=1)printf(“从从%d到到%d的最短路径长度为的最短路径长度为:%dt路径为路径为:,v0,i,disti);printf(%d,v0);/*输出路径上的起点输出路径上的起点*/Ppath(path,i,v0);/*输出路径上的中间点输出路径上的中间点*/printf(%dn,i);/*输出路径上的终点输出路径
16、上的终点*/else printf(从从%d到到%d不存在路径不存在路径n,v0,i);第17页,共71页,编辑于2022年,星期六每对顶点之间的最短路径每对顶点之间的最短路径 问问题题:对对于于一一个个各各边边权权值值均均大大于于零零的的有有向向图图,对对每每一一对顶点对顶点vivj,求出求出vi与与vj之间的最短路径和最短路径长度。之间的最短路径和最短路径长度。可可以以通通过过以以每每个个顶顶点点作作为为源源点点循循环环求求出出每每对对顶顶点点之之间间的的最最短短路路径径。除除此此之之外外,弗弗洛洛伊伊德德(Floyd)算算法法也也可可用用于于求求两顶点之间最短路径。两顶点之间最短路径。第
17、18页,共71页,编辑于2022年,星期六 假假设设有有向向图图G=(V,E)采采用用邻邻接接矩矩阵阵cost存存储储,另另外外设设置置一一个个二二维维数数组组A用用于于存存放放当当前前顶顶点点之之间间的的最最短短路路径径长长度度,分分量量Aij表表示示当当前前顶顶点点vi到到顶顶点点vj的的最最短短路路径径长长度度。弗弗洛洛伊伊德德算算法法的的基基本本思思想想是是递递推推产产生生一一个个矩矩阵阵序序列列A0,A1,Ak,An,其其中中Akij表表示示从从顶顶点点vi到到顶顶点点vj的的路径上所经过的顶点编号不大于路径上所经过的顶点编号不大于k的最短路径长度。的最短路径长度。第19页,共71页
18、,编辑于2022年,星期六 初初始始时时,有有A-1ij=costij。当当求求从从顶顶点点vi到到顶顶点点vj的的路路径径上上所所经经过过的的顶顶点点编编号号不不大大于于k+1的的最最短短路路径径长长度时度时,要分两种情况考虑:要分两种情况考虑:一一种种情情况况是是该该路路径径不不经经过过顶顶点点编编号号为为k+1的的顶顶点点,此此时时该该路路径径长长度度与与从从顶顶点点vi到到顶顶点点vj的的路路径径上上所所经经过过的的顶顶点点编编号号不大于不大于k的最短路径长度相同;的最短路径长度相同;另另一一种种情情况况是是从从顶顶点点vi到到顶顶点点vj的的最最短短路路径径上上经经过过编编号号为为k
19、+1的顶点。的顶点。那那么么,该该路路径径可可分分为为两两段段,一一段段是是从从顶顶点点vi到到顶顶点点vk+1的的最最短短路路径径,另另一一段段是是从从顶顶点点vk+1到到顶顶点点vj的的最最短短路路径径,此此时时最最短短路路径径长长度度等等于于这这两两段段路路径径长长度度之之和和。这这两两种种情情况况中中的的较较小小值值,就就是是所所要要求求的的从从顶顶点点vi到到顶顶点点vj的的路路径径上上所所经经过过的的顶顶点点编编号号不不大于大于k+1的最短路径。的最短路径。第20页,共71页,编辑于2022年,星期六 弗洛伊德思想可用如下的表达式来描述:弗洛伊德思想可用如下的表达式来描述:A-1i
20、j=costij Ak+1ij=minAkij,Akik+1+Akk+1j(0kn-1)第21页,共71页,编辑于2022年,星期六 采用弗洛伊德算法求解过程采用弗洛伊德算法求解过程 第22页,共71页,编辑于2022年,星期六 考考虑虑顶顶点点v0,A0ij表表示示由由vi到到vj,经经由由顶顶点点v0的的最最短短路路径径。只只有有从从v2到到v1经经过过v0的的路路径径和和从从v2到到v3经经过过v0的的路路径径,不不影影响响v2到到v1和和v2到到v3的路径长度的路径长度,因此因此,有:有:第23页,共71页,编辑于2022年,星期六 考考虑虑顶顶点点v1,A1ij表表示示由由vi到到v
21、j,经经由由顶顶点点v1的的最最短短路路径径。存存在在路路径径v0-v1-v2,路路径径长长度度为为9,将将A02改改为为9,path02改为改为1,因此因此,有有:第24页,共71页,编辑于2022年,星期六考考虑虑顶顶点点v2,A2ij表表示示由由vi到到vj,经经由由顶顶点点v2的的最最短短路路径径。存存在在路路径径v3-v2-v0,长长度度为为4,将将A30改改为为4;存存在在路路径径v3-v2-v1,长长度度为为4,将将A31改改为为4。存存在在路路径径v1-v2-v0,长长 度度 为为 7,将将 A10改改 为为 7。将将path30、path31和和path10均均改改为为2。因
22、此。因此,有:有:第25页,共71页,编辑于2022年,星期六 考虑顶点考虑顶点v3,A3ij表示由表示由vi到到vj,经经由顶点由顶点v3的最短路径。存在路径的最短路径。存在路径v0-v3-v2,长度为长度为8比原长度短比原长度短,将将A02改为改为8;存在路径存在路径v1-v3-v2-v0,长度为长度为6(A13+A30=2+4=6)比原长度短比原长度短,将将A10改为改为6;存在路径;存在路径v1-v3-v2,长度为长度为3,比原长度短比原长度短,将将A12改为改为3;将;将path02、path10后后path12均改为均改为3。因此。因此,有:有:第26页,共71页,编辑于2022年
23、,星期六 因此因此,最后求得的各顶点最短路径长度最后求得的各顶点最短路径长度A和和Path矩阵为:矩阵为:从从0到到0路径为:路径为:0,0路径长度为:路径长度为:0从从0到到1路径为:路径为:0,1路径长度为:路径长度为:5从从0到到2路径为:路径为:0,3,2路径长度为:路径长度为:8从从0到到3路径为:路径为:0,3路径长度为:路径长度为:7从从1到到0路径为:路径为:1,3,2,0 路径长度为:路径长度为:6从从1到到1路径为:路径为:1,1路径长度为:路径长度为:0从从1到到2路径为:路径为:1,3,2 路径长度为:路径长度为:3从从1到到3路径为:路径为:1,3路径长度为:路径长度
24、为:2第27页,共71页,编辑于2022年,星期六从从2到到0路径为:路径为:2,0路径长度为:路径长度为:3从从2到到1路径为:路径为:2,1路径长度为:路径长度为:3从从2到到2路径为:路径为:2,2路径长度为:路径长度为:0从从2到到3路径为:路径为:2,3路径长度为:路径长度为:2从从3到到0路径为:路径为:3,2,0 路径长度为:路径长度为:4从从3到到1路径为:路径为:3,2,1 路径长度为:路径长度为:4从从3到到2路径为:路径为:3,2路径长度为:路径长度为:1从从3到到3路径为:路径为:3,3路径长度为:路径长度为:0第28页,共71页,编辑于2022年,星期六弗洛伊德算法如
25、下:弗洛伊德算法如下:void Floyd(int costMAXV,int n)int AMAXVMAXV,pathMAXVMAXV;int i,j,k;for(i=0;in;i+)for(j=0;jn;j+)Aij=costij;pathij=-1;for(k=0;kn;k+)for(i=0;in;i+)for(j=0;j(Aik+Akj)Aij=Aik+Akj;pathij=k;Dispath(A,path,n);/*输出最短路径输出最短路径*/第29页,共71页,编辑于2022年,星期六最小生成树概念最小生成树概念1.1.设无向连通图设无向连通图设无向连通图设无向连通图G=G=(V V
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 基础知识 幻灯片
限制150内