ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:38.93KB ,
资源ID:15195106      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15195106.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图论最短路径选址问题.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

图论最短路径选址问题.docx

1、图论最短路径选址问题姓 名:之宇文皓月创作学 号:专 业:图论的实际应用蔬菜批发市场选址问题摘要:在现实生活和生产实践中,有许多管理、组织与计划中的优化问题,都可借助图论知识得以解决,而最短路问题是利用图论解决的一个典型的实际问题。图论中最典型的两种求最短路径的算法分别为Dijkstra算法和Floyd算法,其中Floyd算法广泛应用于求任意两点间的最短路径。本文介绍了利于Floyd算法来解决城市蔬菜批发市场选址的问题。关键词:最短路;Floyd算法;选址问题 0引言对于许多地理问题,当它们被抽象为图论意义下的网络图时,问题的核心就酿成了网络图上的优化计算问题。其中,最为罕见的是关于路径和顶点

2、的优选计算问题5。在路径的优选计算问题中,最罕见的是最短路径问题,最短路径可能是给定两点间的最短路径,也可能是任意各点间的最短路径。而在顶点的优选计算问题中,最为罕见的是选址问题,所谓选址问题就是在某一地理区域构成的网络中选择一个顶点,建立服务设施,为该网络中的各个点提供服务,使得服务效率最高3。选址问题,在规划建设中经常可以碰到,这里所谓的服务设施,可以是某些公共服务设施,如医院,消防站,物流中心等。也可以是生产服务设施,如仓库,转运站等等。可以认为,选址问题,就是把服务设施与服务对象,反映与统一的网络中,便于对问题进行研究4。尽管对选址的目标、要求有分歧的评判尺度,但是要求服务对象与服务设

3、施之间易于沟通、易于达到,这是一个最基本的要求。1最短路径问题 最短路径问题是图论研究的一个经典算法问题,其目的是求出给定两点之间的长最短的路径,这里所说的长具有广泛意义,即可指普通意义的距离,也可是时间或费用等2。因此,最短路径问题通常可以归纳为三类:(1)距离意义上的最短路径,即求两点间距离最短的路径;(2)经济意义上的最短路径,即为两点间的费用最少的路径;(3)时间意义上的最短路径,即选择两点间最节省时间的路径。以上三类问题,都可以抽象为同一类问题,即带权图上的最短路径问题。分歧意义下的距离都可以被抽象为网络图中边的权值,权值既可以代表“纯距离”,又可以代表“经济距离”,还可以代表“时间

4、距离”。1.1 Dijkstra算法Dijkstra算法是一种求解最短路径方法。它是一个按路径长度递增的顺序发生最短路径的算法,其基本思想是:设图中所有顶点集合为V,另设置两个顶点集合S和T=V- S,集合S中存放已找到最短路径的顶点,集合T存放当前还未找到最短路径的顶点。初始状态时,集合S中只包含源点V1,然后不竭从集合T中选取到顶点V1 的路径长度最短顶点Vi 加入到集合S中,集合S每加入一个新的顶点Vi,都要修改顶点V1到集合T中剩余顶点的最短路径长度值,此过程不竭重复,直到集合T中的顶点全部加入到S中为止。这样,就可以求出一点到其它的任一顶点的最短路径。Dijkstra算法简单易懂,在

5、求给定两点间的最短距离时效率很高,但是其只能求图中一个特定结点到其他各个结点的最短路1。当需要求出图中任意两顶点的最短路径时,就需要以图中的每个顶点为起点,依次求出到另外顶点的最短路径,在顶点数目比较多的情况下,其效率将非常低下。1.2 Floyd算法Floyd算法为另外一种求最短路径的算法。在某些问题中,需要求出图中任意两顶点之间的最短路径,这时,Floyd算法将比Dijkstra算法具有明显优势。Floyd算法借助于权矩阵的运算直接可以求出任意两点之间的最短路径2。Floyd算法的实现思路为:首先定义赋权图的边权矩D =dij)n x n,即dij=w(i,j),若结点i到j无边相连时,则

6、去dij=。然后依次计算出矩阵D2,D3,Dn。其中D2=D*D=(d2ij)n x n,d2ij=mindi1+d1j,di2+d2j,din+dnj暗示从vi出发两步可以到达vj的道路中距离最短者;Dk=(dkij)n x n,dkij暗示从vi出发k步可以到达vj的道路距离中最短路径。 Dn = Dn-1*D = (dnij)n x nS = DD2D3Dn = (Sij)n x n由定义可知d暗示从结点i到j经过k边的路(在有向图中即为有向路)中的长度最短者,而Sij为结点i到j的所有路中的长度最短者。2.最短路径问题在蔬菜批发市场中的应用河南某城市市政管理部分决定新建一个蔬菜批发市场

7、,为周边的几个小区的菜市场集中供应新鲜蔬菜。由于蔬菜水果容易蜕变,小区菜市场的商贩必须在每天早晨把蔬菜从批发市场运送回店铺,这就要求批发市场的地址不克不及距离小区太远。该城市管理部分经过征求意见后,决定将批发市场建在其中的一个小区旁边,现在的问题是该将此批发市场建在那个小区才干使最远的小区距离该批发市场距离最短。2.1 分析问题并建立模型 已知该城市的小区位置及相互连通道路分布示意图如图1所示,其中结点v1,v2,v3,v4,v5,v6,v7暗示七个小区,结点间的数字暗示小区间的距离。25图1 小区位置分布示意图由上面的小区位置及道路分布图可知,若找一个合适的小区来建造批发市场,使该小区到其它

8、小区的最远距离最短,即求无向简单图图1中的一点,使该点到其它点的最大值为最小。为此,我们可以使用Floyd算法来求解问题。首先根据图1画出对应的权矩阵D: 30 30 20 15 20 20 60 25 D = 20 30 18 7 3 15 25 18 15 15 2.2 Floyd算法求各点间最短路径 通过7阶加权简单图的权矩阵D,分别算出矩阵D2,D3,D4,D5,D6,D7,然后求出最短路矩阵S,S如下:则可得出矩阵S中v1,v2,v3,v4,v5,v6,v7结点到其它个结点的最长距离分别为93,63,50,63,93,48,63,即v6结点到其它结点有最短路径。 由以上结论知,将蔬菜

9、批发市场应该建在小区v6处才最为合理,使得最远的小区菜市场距批发市场的距离最短。3.编程实现 以下为使用C+语言实现的Floyd算法的核心代码:#include#define MaxInt 10000/最大数 const int MaxNumEdges=50; const int MaxNumVertices=10; /最大顶点数 class Graph private: int vNum;/当前顶点数 int eNum;/当前边数 int VertexMaxNumVertices;/顶点数组 int EdgeMaxNumVerticesMaxNumVertices;/边数组 bool Get

10、VertexPos(const int &vertex,int &i);/给出顶点vertex在图中的位置 public: Graph(const int sz= MaxNumEdges);/构造函数 bool FindVertex(const int &vertex); bool InsertVertex(const int & vertex);/拔出一个顶点vertex bool InsertEdge(const int v1,const int v2,const int weight);/拔出一条边(v1,v2),该边上的权值为weight void Hospital();/选址函数;

11、Graph:Graph(const int sz): vNum(0), eNum(0)/构造函数 int n,e; int name,tail,head; int weight; for(int i=0;isz;i+) for(int j=0;jsz;j+) if(i=j) Edgeij=0;/顶点到自身权值为0 else Edgeij=10000;/邻接矩阵初始化为最大值 printf(请输入顶点数,注意本程序最多为10个!n); scanf(%d,&n); printf(请依次输入顶点名称:n); for(int r=0;rn;r+)/依次输入顶点,拔出图中 scanf(%d,&name)

12、; InsertVertex(name); vNum+; printf(请输入边数:n); scanf(%d,&e); printf(以下输入边信息:n); for(int k=0;ke;k+) printf(请输入第%d边头顶点:n,k+1); scanf(%d,&head); printf(请输入该边尾顶点:n); scanf(%d,&tail); printf(请输入该边权值:n); scanf(%d,&weight); if(!InsertEdge(head,tail,weight) printf(不存在该边,请重输!n); continue; bool Graph:FindVerte

13、x(const int& vertex)/给出顶点vertex在图中的位置 for (int i = 0; i vNum; i+) if (vertex = Vertexi) return true; return false; bool Graph: GetVertexPos(const int &vertex,int &i)/给出顶点vertex在图中的位置 for (i = 0; i vNum; i+) if (vertex = Vertexi) return true; return false; bool Graph:InsertVertex(const int & vertex)/

14、拔出一个顶点vertex if (FindVertex(vertex) return false; VertexvNum = vertex; return true; bool Graph:InsertEdge(const int v1,const int v2,const int weight)/拔出一条边(v1,v2),该边上的权值为weight int k=0,j=0; if(GetVertexPos(v1,k) & GetVertexPos(v2,j) Edgekj=weight; eNum+; Edgejk=weight; eNum+; return true; else retur

15、n false; void Graph:Hospital() /在以邻接带权矩阵暗示的n个小区中,求批发市场建在何处,使离市场距离最远的小区到达市场的路径最短。 int k,i,j,s; for (k=0;kvNum;k+) /求任意两顶点间的最短路径 for (i=0;ivNum;i+) for (j=0;jvNum;j+) if (Edgeik+EdgekjEdgeij) Edgeij=Edgeik+Edgekj; int m=MaxInt; /设定m为机器内最大整数。 printf(*n); /以下为求各小区离批发市场最近的选址 int min=MaxInt ; /设定机器最大数作小区间

16、距离之和的初值。 k=0; /k设小区位置。 for (j=0;jvNum;j+) m=0 ; for (i=0;im) min=m;k=j; /取顶点间的距离之和的最小值。 /for printf(各小区离批发市场最近的选址,要建批发市场的小区为:%dn,k+1); /输出要建批发市场的小区编号 for(j=0;jvNum;j+) if(j!=k) printf(该小区离%d小区最短距离为:%dn,j+1,Edgekj);/算法结束int main() Graph Town(MaxNumVertices); Town.Hospital(); return 0;运行程序,并将2.1中的加权矩阵

17、D的数值输入程序,得到的程序运行的结果如图2所示:25图2程序运行结果图 对图2中结果分析知,将批发市场建在V6小区,使得到其它6个小区的最长距离为48。结果和2.2中的矩阵S的计算结果相同。4.总结通过利用学习到的Floyd算法解决了一个城市蔬菜批发市场的选址问题,我认识到最短路径问题在现实生活中的巨大作用,它可以广泛应用于建筑物选址,厂区规划等实际问题,用此方法可得到最好的解决方案。参考文献1 殷剑宏,吴开亚. 基于图论及其算法M.合肥:中国科学技术大学出版社,2005:63-75.2 张清华. 图论及其应用M.北京:清华大学出版社,2012:87-95.3 胡桔洲. Floyd最短路径算法在配送中心选择中的应用J.湖南农业大学学报,2004(08):51-754 毕亚君,王晓威. 网络图中任意两点间最短路径问题的计算机实现J.科技资讯,2006(06):32-34.5 叶玉萍. 最短路径在中心选址中的应用研究J.电脑与信息技术,2012(08):8-12.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2