Dijkstra算法介绍.pptVIP

  • 145
  • 0
  • 约1.65千字
  • 约 12页
  • 2016-06-05 发布于安徽
  • 举报
Dijkstra算法介绍.ppt

网络分析 网络分析的地学原理 网络分析是运筹学模型中的一个基本模型,它的根本目的是研究、筹划一项网络工程如何安排,并使其运行效果最好,如一定资源的最佳分配,从一地到另一地的运输费用最低等。其基本思想则在于人类活动总是趋于按一定目标选择达到最佳效果的空间位置。这类问题在社会经济活动中不胜枚举。 对地理网络(如交通网络)、城市基础设施网络(如各种网线、电力线、电话线、供排水管线等)进行地理分析和模型化,是地理信息系统中网络分析功能的主要目的。 网络数据结构 链(Link),网络中流动的管线,如街道、河流、水管等。其状态属性包括阻力和需求。 结点(Node),网络中链的结点,如港口、车站、电站等,其状态同性包括阻力和需求等。下面几种特殊的类型。 障碍(Barrier),禁止网络中链上流动的点; 拐点(Turn),出现在网络链中的分割结点上,状态属性有阻力,如拐弯的时间和限制(如在8:00到18:00不允许左拐); 中心(Centre),是接受或分配资源的位置,如水库、商业中心、电站等,其状态属性包括资源容量(如总量)、阻力限额(中心到链的最大距离或时间限制)。 站点(Stop),在路径选择中资源增减的结点,如库房、车站等.其状态属性有资源需求,如产品数量 网络分析的基本功能 路径分析 地址匹配:地址匹配实质是对地理位置的查询,它涉及到地址的编码。地址匹配与其它网络分析功能结合起来,可以满足实际工作中非常复杂的分析要求。 资源分配 路径分析 静态求最佳路径:在给定每条链上的属性后,求最佳路径 N条最佳路径分析:确定起点或终点,求代价最小的N条路径,因为在实践中最佳路径的选择只是理想情况。由于种种因素而要选择近似最优路径。 最短路径或最低耗费路径:确定起点、终点和要经过的中间点、中间连线,求最短路径或最小耗费路径。 动态最佳路径分析:实际网络中权值是随权值关系式变化的,可能还会临时出现一些障碍点,需要动态的计算最佳路径 。 动态分段:给定一条路径由多段联系组成,要求标注出这条路上的公里点或要求定位某一公路上的某一点,标注出某条路上从某一公里数到另一公里数的路段。 最短路径算法分析 ——Dijkstra(戴克斯徒拉)算法:可以求出一个起源点到其余各点的路径,无向图和有向图都适用 ——Floyd (弗洛伊德)算法:能够一次性求得所有顶点间的最短路径,无向图和有向图都适用 ——矩阵算法:能够一次性求得所有顶点间的最短路径,并且还能求出次短路径,但一般只适用于无向图 Dijkstra算法基本思想 ——Dijkstra(戴克斯徒拉)算法是Dijkstra E W于1959年提出的一种按路径长度递增的次序产生最短路径的算法,被认为是解决单源点间最短路径问题比较经典而且有效的算法 ——其基本思想是:假设网络中的每个点都有一对标号(dj,pj),其中dj是从起源点s到点j的最短路径的长度; pj则是从s到j的最短路径中j点的前一点 ——其求解的基本过程是: 1,初始化:起源点设置为ds=0,ps为空,并标记起源点s,记k=s,其它所有点设为未标记点 2,检验从所有已标记的点k到其直接连接的未标记的点j的距离,并设置 dj=min[dj,dk+lkj] 其中,lkj为从点k到j的直接连接距离 3,选取下一个点:从所有未标记的节点中,选取dj中最小的一个i di=min[dj,所有未标记的点j] 点i就是被选为最短路径中的一点,并设为已标记的点 4,检查是否所有点都已标记,如果都标记,则算法退出,否则重复步骤2,3 经典Dijkstra算法的时间复杂度为 ,随着顶点数量的增加,循环次数也会急剧上升,效率会大幅度下降。该算法在求解过程中会产生大量的临时路径,占用大量内存空间。 Dijkstra算法问题分析

文档评论(0)

1亿VIP精品文档

相关文档