1、z 使用范围:1)求每对顶点的最短路径求每对顶点的最短路径;2)有向图、无向图和混合图有向图、无向图和混合图;z 算法思想: 直接在图的带权邻接矩阵中用插入顶点的方法依次递推地构造出n个矩阵D(1), D(2), , D(v), D(v)是图的距离矩阵, 同时引入一个后继点矩阵记录两点间的最短路径.z 输入参数:G的带权邻接矩阵W.z 算法输出:距离矩阵D以及路由矩阵R.1(I)求距离矩阵的方法)求距离矩阵的方法.2(II)求路径矩阵的方法)求路径矩阵的方法.在建立距离矩阵的同时可建立路径矩阵在建立距离矩阵的同时可建立路径矩阵R ivjv(III)查找最短路路径的方法)查找最短路路径的方法.然
2、后用同样的方法再分头查找若:然后用同样的方法再分头查找若:1av2av3avkav1bv2bvmbv(IV)Floyd算法:求任意两顶点间的最短路算法:求任意两顶点间的最短路.例例3: 求下图中加权图的任意两点间的距离与路径求下图中加权图的任意两点间的距离与路径. ,053142503330212044401210 )0(D,654321654321654321654321654321654321 )0(R6,053142503330212044401210 )0(D,min) 1() 1() 1()(kkjkikkijkijdddd插入点插入点 v1,得:得:,053132503330212
3、043401210)1(D,654311654321654321654321154321654321 )1(R矩阵中带矩阵中带“=”的项为经迭代比较以后有变化的元素的项为经迭代比较以后有变化的元素.7,min) 1() 1() 1()(kkjkikkijkijdddd插入点插入点 v2,得:得:,053132503330212043401210)1(D矩阵中带矩阵中带“=”的项为经迭代比较以后有变化的元素的项为经迭代比较以后有变化的元素.,05313250333021204534012510)2(D,654311654321654321654322154321654221 )2(R8,min)
4、 1() 1() 1()(kkjkikkijkijdddd,053132503330267120453640127510)3(D,654311654321654333654322153321653221 )3(R插入点插入点 v3,得:得:,05313250333021204534012510)2(D,min) 1() 1() 1()(kkjkikkijkijdddd,053132503330267120453640127510)3(D插入点插入点 v4,得:得:,05313250359103302671520453964012107510)4(D,6543116544446543336443
5、22143321643221 )4(R,)4()5(DD插入点插入点 v5,得:得:,)4()5(RR10,min) 1() 1() 1()(kkjkikkijkijdddd插入点插入点 v6,得:得:,05313250359103302671520453964012107510)5(D,053132503587330265152043386401275310)6(D.654311654466654336644326163321666621 )6(R11,053132503587330265152043386401275310)6(D.65431165446665433664432616332
6、1666621 )6(R8)6(52d8)6(52d故从故从v5到到v2的最短路为的最短路为8 6)6(52R由由v6向向v5追溯追溯: . 6)6(56R由由v6向向v2追溯追溯: , 1)6(62R. 2)6(12R所以从到的最短路径为:所以从到的最短路径为: .2165vvvv12 1、中心问题、中心问题 所谓中心选址问题就是在一网络中选择一所谓中心选址问题就是在一网络中选择一点,建立点,建立公用服务设施公用服务设施,为该网络中的点,为该网络中的点提供服务,使得服务效率最高。比如一个提供服务,使得服务效率最高。比如一个区域的消防站、自来水厂、学校、变电站、区域的消防站、自来水厂、学校、变
7、电站、银行、商店等选址。为了提高服务效率,银行、商店等选址。为了提高服务效率,自然的想法是将这些设施建立在中心地点。自然的想法是将这些设施建立在中心地点。要求要求网络中最远的被服务点离服务设施的网络中最远的被服务点离服务设施的距离尽可能小距离尽可能小。13ijnjidMaxvd 1)()(1inivdMinI Ivdk )(), 2 , 1()(1nidvhnjiji )()(1inikvhMinvh 设网络设网络N有个有个n点点v1,v2,vn。dij表示点表示点vi到到vj之间的距之间的距离(即最短路的长度),并记离(即最短路的长度),并记dii=0(i=1,2,n)。定义定义1: 记记
8、, 。若。若 ,则称点则称点vk为网络为网络N的中心,的中心,I为直径。为直径。定义定义2: 令令 ,若,若 ,则称,则称vk为网络为网络N的中心。的中心。14 例例1某城市要建立一个消防站,为该市所某城市要建立一个消防站,为该市所属的七个区服务,如图所示问应设在哪个属的七个区服务,如图所示问应设在哪个区,才能使它至最远区的路径最区,才能使它至最远区的路径最 短。短。1505 .15 .55 .86475 .10475 .45 .25 .55 .54032475 .8730571065 .42502545 .24720375 .5710530DS(v1)=10, S(v2)=7, S(v3)=
9、6, S(v4)=8.5, S(v5)=7, S(v6)=7, S(v7)=8.5S(v3)=6,故应将消防站设在v3处. 16 例例2 教育部门打算在某新建城区建一所学校,教育部门打算在某新建城区建一所学校,让附近七个居民区的学生就近入学。七个居民让附近七个居民区的学生就近入学。七个居民区之间的道路如下图所示,学校应建在哪个居区之间的道路如下图所示,学校应建在哪个居民区,才能使大家都方便?(图中距离单位:民区,才能使大家都方便?(图中距离单位:百米)。百米)。171819 2、重心问题、重心问题20 例例3 例例2中,七个居民区的学生人数分别为:中,七个居民区的学生人数分别为:40、25、4
10、5、30、20、35、50人,学校应人,学校应建在哪个居民区,才能使大家都方便?建在哪个居民区,才能使大家都方便?(图中距离单位:百米)。(图中距离单位:百米)。2122某合同战术训练基地为保障即将进行的联合军事演某合同战术训练基地为保障即将进行的联合军事演习,准备在原有的习,准备在原有的1个油库的基础上,再设立个油库的基础上,再设立7个固个固定的燃料补给点。定的燃料补给点。23v1v7v6v2v8v5v3v4油库与补给点的位置如图所示,其中油库位于油库与补给点的位置如图所示,其中油库位于v1点,点,补给点位于补给点位于v2, , v8点。点。24经过前期的测绘工作,如果在油库和补给点之间修建经过前期的测绘工作,如果在油库和补给点之间修建简易公路,由于地形不同,每段公路花费如图,每单简易公路,由于地形不同,每段公路花费如图,每单位费用为位费用为1万元。请根据测绘结果,规划一个总造价万元。请根据测绘结果,规划一个总造价最低的建设方案。最低的建设方案。v1v7v6v2v8v5v3v425734326436174182总造价最低总造价最低各补给点到油库的各补给点到油库的花费均达到最小花费均达到最小?25