当前位置: 首页 > news >正文

沂源网站建设yx718做网站 用什么兼容

沂源网站建设yx718,做网站 用什么兼容,wordpress添加媒体没反应,门户网站建设ppt方案Dijkstra算法的目的是寻找单起点最短路径,其策略是贪心加非负加权队列 一、单起点最短路径问题 单起点最短路径问题:给定一个加权连通图中的特定起点,目标是找出从该起点到图中所有其他顶点的最短路径集合。需要明确的是,这里关心…

  Dijkstra算法的目的是寻找单起点最短路径,其策略是贪心加非负加权队列

一、单起点最短路径问题

  单起点最短路径问题:给定一个加权连通图中的特定起点,目标是找出从该起点到图中所有其他顶点的最短路径集合。需要明确的是,这里关心的不仅仅局限于寻找一条从起点出发到任一其他顶点的单一最短路径;单起点最短路径问题要求的是一组路径,每条路径都从起点出发通向图中的一个不同顶点,当然,其中某些路径可能具有公共边。

二、Dijkstra算法原理

  Dijkstra算法是一种高效地找出图中从一个给定起点到所有其他顶点最短路径的方法。它按照距离起点的远近顺序,逐步确定到各个顶点的最短路径。具体来说,算法首先找到距离起点最近的顶点,并确定它们之间的最短路径;然后,它接着寻找下一个最近的顶点,依此类推。在第 i i i 次迭代之前,算法已经确定了到达最近的 i − 1 i-1 i1个顶点的最短路径,这些顶点及其路径构成了原图的一个子图,形成一棵以起点为根的树。

  重要的是,由于图中所有边的权重都为非负,算法能够保证每次迭代找到的是当前可达顶点中距离起点最近的一个。这些待选顶点,称为“边缘顶点”,位于已构建的子树的外围。理论上,图中的所有其他顶点也可以被视为边缘顶点,但它们与树中顶点的连接权重被假设为无限大。

  为了求出下一个最接近起点的顶点,Dijkstra算法计算每个边缘顶点至其最近的树内顶点的距离(即该边的权重),并将此距离与从起点到该树内顶点的已知最短路径长度相加。在所有这些候选顶点中,算法选择总和最小的顶点作为下一个最近顶点。Dijkstra算法的核心在于,通过仅对这些特定的候选路径进行比较,就可以有效地找到最短路径。

三、Dijkstra算法应用

  为了简化算法的实施过程,我们为每个顶点引入两个辅助标记。第一个标记是一个数值标记 d d d,它记录了从算法开始到当前为止,从起点到该顶点的最短路径长度。随着算法的进行,当新的顶点被加入到树中时, d d d 的值更新为从起点到这个新顶点的最短路径长度。第二个标记则记录了该路径上的倒数第二个顶点,即当前构建的树中该顶点的父节点(对于起点以及那些尚未与树中的顶点直接相连的顶点,这个标记不必指定)。有了这两个标记后,寻找下一个最近顶点 u ∗ u^{ *} u 变得相对直接:我们仅需在所有边缘顶点中找到具有最小 d d d 值的顶点即可,而这个查找过程的顺序并不重要。这样,这两个标记极大地简化了算法的步骤,使得确定最短路径的过程更加高效和直观。

在确定了加入树中的顶点u*以后,还需要做两个操作:

  • u ∗ u^{ *} u 从边缘集合移到树顶点集合中。

  • 对于余下的每一个边缘顶点 u u u,如果通过权重为 w ( u ∗ , u ) w(u^{ *}, u) w(u,u) 的边和 u ∗ u^{ *} u 相连,当 d u ∗ + w ( u ∗ , u ) < d u d_{u^{*}} +w(u^{*},u)<d_{u} du+w(u,u)<du时,把 u u u 的标记分别更新为 u ∗ u^{ *} u d u ∗ + w ( u ∗ , u ) d_{u^{*}} +w(u^{*},u) du+w(u,u)

在这里插入图片描述
  最短的路径(从左列中的目标项点根据非数字标记向起点回溯,来确定最短路径)和它们的长度(由树中数字标记给出)如下:

  • a a a b b b : a − b a-b ab, 长度为3

  • a a a d d d : a − b − d a-b-d abd, 长度为5

  • a a a c c c ; a − b − c a-b-c abc, 长度为7

  • a a a e e e : a − b − d − e a-b-d-e abde,长度为9

Dijkstra(G, s)
# 单起点最短路径的Dijkstra算法
# 输入: 带有非负权重的连通图G=<V, E>以及起点顶点s
# 输出: 对于V中的每个顶点v,从s到v的最短路径长度d[v],
# 以及路径上的倒数第二个顶点p[v]Initialize(Q)  # 将顶点优先队列初始化为空
for v in V:d[v] ← ∞p[v]NoneInsert(Q, v, d[v])  # 初始化优先队列中顶点的优先级d[s]0
Decrease(Q, s, d[s])  # 更新s的优先级为d[s]
p[s]Nonefor i from 0 to |V| - 1 do:u ← DeleteMin(Q)  # 删除优先级最小的元素for 每一个与u相邻的顶点u' do:if d[u] + w(u, u') < d[u']:d[u'] ← d[u] + w(u, u')p[u'] ← uDecrease(Q, u', d[u'])
http://www.yayakq.cn/news/858416/

相关文章:

  • 学生做网站的工作室网站建设可以自己建设服务器吗
  • 广州万安建设监理有限公司网站哪些网站是用c语言做的
  • 徐水住房建设局网站广州智能建站模板
  • 制作制作网站建设的曲阜市古建设计院网站
  • 邯郸哪儿做网站便宜网站改自适应 做自适应
  • 手机怎么做钓鱼网站网站内容为王
  • 滕州市做网站wordpress发表图片
  • 做视频网站服务器要求网络租车系统设计报告
  • 网站备案正常多久山东省建设教育集团网站首页
  • 株洲网站优化找哪家asp 英文企业网站 免费
  • 做一个公司网站的费用菏泽建设局官网
  • 网站关键词优化培训这周新闻热点事件
  • 优秀网站案例欣赏企业如何进行网站建设
  • 资深的网站建设怎样查看网站是否被百度收录
  • 个人微信网站怎么做杭州做网站的网络公司有哪些
  • 兰州网站关键字优化武夷山市住房和城乡建设局网站
  • 佛山网站建设企划动力wordpress共享文件夹
  • 刷q币网站建设R shinny网站开发
  • 苏州网站开发公司兴田德润在那里岭南地区网站建设
  • 个人微信公众号怎么做微网站吗怎么制作网站设计图片
  • 方案图网站国外 做励志视频的网站
  • 最好的开发网站有哪些如何修改wordpress的域名
  • 广州制作网站公司简介用python做网站的步骤
  • 做电子网站网站建设技术服务方案
  • 研学网站平台建设方案南京注册公司有什么要求
  • cloudflare做侵权网站浙江省住房和城乡建设厅官方网站
  • 音乐资源网站开发大型门户网站建设步骤
  • 网站审核时间网络推广运营
  • 网站开发维护公司经营范围vs2013网站开发教程
  • 单纯python能完成网站开发吗长沙建设品牌网站