首页 > 编程语言 >算法 -Dijkstra算法

算法 -Dijkstra算法

时间:2022-10-21 13:34:00浏览次数:42  
标签:node lowest graph Dijkstra costs start 算法 cost

算法 -Dijkstra算法_迪克斯特拉


以这个图为例,找到从起点到终点的耗时最短的路径(圆圈连线上的数字代表耗时)。

graph={}
graph["start"]={}
graph["start"]["a"]=6
graph["start"]["b"]=2

graph["a"]={}
graph["a"]["fin"]=1
graph["b"]={}
graph["b"]["a"]=3
graph["b"]["fin"]=5

graph["fin"]={}

infinity=float("inf")
costs={}
costs['a']=6
costs['b']=2
costs['fin']=infinity

parents={}
parents['a']='start'
parents['b']='start'
parents['fin']=None

processed=[]

def find_lowest_cost_node(costs):
lowest_cost=float("inf")
lowest_cost_node=None
for node in costs:
cost=costs[node]
if cost<lowest_cost and node not in processed:
lowest_cost=cost
lowest_cost_node=node
return lowest_cost_node

node=find_lowest_cost_node(costs)

while node is not None:
cost=costs[node]
neighbors=graph[node]
for n in neighbors.keys():
new_cost=cost+neighbors[n]
if costs[n]>new_cost:
costs[n]=new_cost
parents[n]=node
processed.append(node)
node=find_lowest_cost_node(costs)


标签:node,lowest,graph,Dijkstra,costs,start,算法,cost
From: https://blog.51cto.com/u_15302822/5782507

相关文章

  • 基于多目标优化算法的 LCOE电力成本的敏感性分析(Matlab代码实现)
    ......
  • 算法与数据结构——二叉树遍历应用
    题目:  代码:#include<iostream>#include<stdlib.h>usingnamespacestd;typedefstructTreeNode{chardata;structTreeNode*lchild;struct......
  • 非视距 TDOA 算法复现
    定位算法复现,非视距环境下TDOA定位算法论文名字:RobustConvexApproximationMethodsforTDOA-BasedLocalizationunderNLOSConditionsmatalab使用CVX实现完全OK,......
  • 机器学习—决策树—分类与回归树(CART)算法
    1CART算法CART全称叫ClassificationandRegressionTree,即分类与回归树。CART假设决策树是二叉树,内部结点特征的取值只有“是”和“否”,左分支是取值为“是”的分支,有分......
  • A* 自动寻路算法-JavaScript
    效果图代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"......
  • 排序算法
    1、归并排序归并是把两个或两个以上有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的,然后把有序子序列合并为整体有序序列。注意:在递归中......
  • 每日算法:驼峰转换,判断连续字符
    每日算法今日是:1、将字符串转换为驼峰格式2、判断字符串中是否有连续重复的字符将字符串转换成驼峰格式//css中经常有类似background-image这种通过-连接的字......
  • python | 算法-拓扑排序
    写在前面:我自己用python练习算法与数据结构的典型算法汇总在这里:汇总-算法与数据结构-python版,欢迎翻阅!1️⃣参考链接:https://github.com/algorithmzuo/algorithmbasic......
  • 通俗易懂谈强化学习之Q-Learning算法实战
     Datawhale干货 作者:知乎KingJames,伦敦国王大学​前言:​​上篇​​介绍了什么是强化学习,应大家需求,本篇实战讲解强化学习,所有的实战代码可以自行下载运行。本篇使用强化......
  • [图像算法] Linemod算法研究 (一)
    Linemod算法研究(一)开始研究传统图像处理算法,近期不再做任何deeplearning相关内容,请暂时不要咨询我deeplearning相关的东西。。。先了解一下大致工作流程:ref:Grad......