数学建模之图论

概览

  1. 问题引入与分析
  2. 图论的基本概念
  3. 最短路问题及算法
  4. 最小生成树及算法
  5. 旅行售货员问题
  6. 模型建立与求解

1. 问题引入与分析

1) 98年全国大学生数学建模竞赛B题“最佳灾情巡视路线”中的前两个问题是这样的:

今年(1998年)夏天某县遭受水灾. 为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡(镇)、村巡视. 巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线.
a. 若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
b. 假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V =35公里/小时. 要在24小时内完成巡视,至少应分几组;给出这种分组下最佳的巡视路线.

数学建模之图论_第1张图片
公路边的数字为该路段的公里。

2) 问题分析:

本题给出了某县的公路网络图,要求的是在不同的条件下,灾情巡视的最佳分组方案和路线.
将每个乡(镇)或村看作一个图的顶点,各乡镇、村之间的公路看作此图对应顶点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化图论中一类称之为旅行售货员问题,即在给定的加权网络图中寻找从给定点O出发,行遍所有顶点至少一次
再回到点O,使得总权(路程或时间)最小.

本题是旅行售货员问题的延伸-多旅行售货员问题.
本题所求的分组巡视的最佳路线,也就是m条经过同一点并覆盖所有其他顶点又使边权之和达到最小的闭链(闭迹).
如第一问是三个旅行售货员问题,第二问是四个旅行售货员问题.
众所周知,旅行售货员问题属于NP完全问题,即求解没有多项式时间算法.
显然本问题更应属于NP完全问题. 有鉴于此,一定要针对问题的实际特点寻找简便方法,想找到解决此类问题的一般方法是不现实的,对于规模较大的问题可使用近似算法来求得近似最优解.

2. 图论的基本概念

  1. 图的概念
  2. 赋权图与子图
  3. 图的矩阵表示
  4. 图的顶点度
  5. 路和连通

1) 图的概念

定义 一个图G是指一个二元组(V(G),E(G)),其中:

  1. V ( G ) = { v 1 , v 2 , . . . , v ν } V (G) = \{ v_1,v_2,...,v_ν \} V(G)={v1,v2,...,vν}是非空有限集,称为顶点集,其中元素称为图G的顶点.
  2. E ( G ) E(G) E(G)是顶点集 V ( G ) V(G) V(G)中的无序或有序的元素偶对 ( v i , v j ) (v_i ,v_j ) (vi,vj) 组成的集合,即称为边集,其中元素称为边.

定义 图G的是指图的顶点数|V(G)|, 用 v来表示;图的边的数目|E(G)|用ε 来表示.
G = ( V ( G ) , E ( G ) ) G = (V (G),E(G)) G=(V(G),E(G)) 表示图,简记 G = ( V , E ) G = (V , E) G=(V,E).也用 v i v j v_iv_j vivj 来表示边 ( v i , v j ) (v_i ,v_j ) (vi,vj).

数学建模之图论_第2张图片
数学建模之图论_第3张图片

数学建模之图论_第4张图片
数学建模之图论_第5张图片
数学建模之图论_第6张图片
数学建模之图论_第7张图片
数学建模之图论_第8张图片
数学建模之图论_第9张图片
数学建模之图论_第10张图片
数学建模之图论_第11张图片
数学建模之图论_第12张图片
数学建模之图论_第13张图片
数学建模之图论_第14张图片
数学建模之图论_第15张图片
数学建模之图论_第16张图片

3. 最短路

Dijkstra算法

Floyd算法

算法的基本思想

直接在图的带权邻接矩阵中用插入顶点的方法依次构造出ν 个矩阵 D ( 1 ) 、 D ( 2 ) 、 … 、 D ( ν ) D(1)、 D(2)、 … 、D(ν) D(1)D(2)D(ν),使最后得到的矩阵 D ( ν ) D(ν ) D(ν)成为图的距离矩阵,同时也求出插入点矩阵以便得到两点间的最短路径。
(I)求距离矩阵的方法.
(II)求路径矩阵的方法.
(III)查找最短路路径的方法.

Floyd有两个矩阵,一个是D矩阵(代表距离),一个是R矩阵(代表中介点)
数学建模之图论_第17张图片
数学建模之图论_第18张图片

  • 在这里相当于 v 1 v_1 v1被打通了,此时 v 1 v_1 v1就可以作为中介点连接。
  • 于是遍历和 v 1 v_1 v1连接的点,例如此时遍历到 v 2 v_2 v2
  • 然后再以 v 2 v_2 v2为基准,遍历和 v 1 v_1 v1连接的点。
  • 所有遍历到的点都尝试一下是否可以变化距离矩阵,如果可以变化,那么再他们的中介点矩阵上打入"1"的标记。
    数学建模之图论_第19张图片
    数学建模之图论_第20张图片
    数学建模之图论_第21张图片
    数学建模之图论_第22张图片
    数学建模之图论_第23张图片
    这里的逻辑是这样的:
  • R 52 = 6 R_{52} = 6 R52=6,说明从5到2的下一个点为6
  • R 62 = 1 R_{62} = 1 R62=1,说明6到2的下一个点为1
  • R 12 = 2 R_{12} = 2 R12=2,说明1到2的下一个点为2
  • 所以路径为 v 5 → v 6 → v 1 → v 2 v_5\rightarrow v_6\rightarrow v_1\rightarrow v_2 v5v6v1v2

最小生成树

(略)

你可能感兴趣的:(数学建模,算法)