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

网站建设公司营业执照中法电商网站建设

网站建设公司营业执照,中法电商网站建设,网站制作在哪找,公众号运营目录 1 Dijkstra算法 2 Dijkstra算法的步骤 3 Dijkstra算法python实现 4 Dijkstra算法应用示例详解 1 Dijkstra算法 Dijkstra算法#xff08;迪杰斯特拉算法#xff09;是一种用于在加权图中查找从一个起始节点到所有其他节点的最短路径的算法。该算法最初由荷兰计算机科…目录 1 Dijkstra算法 2 Dijkstra算法的步骤 3 Dijkstra算法python实现 4 Dijkstra算法应用示例详解 1 Dijkstra算法 Dijkstra算法迪杰斯特拉算法是一种用于在加权图中查找从一个起始节点到所有其他节点的最短路径的算法。该算法最初由荷兰计算机科学家Edsger W. Dijkstra于1956年提出。Dijkstra算法适用于带有非负权重的有向图或无向图。 特点和限制 Dijkstra算法仅适用于非负权重的图因为它依赖于贪婪策略来选择当前最短路径。它可以找到从起始节点到所有其他节点的最短路径因此适用于单源最短路径问题。Dijkstra算法不会处理负权边如果图中存在负权边应该使用其他算法如Bellman-Ford算法。算法的时间复杂度取决于数据结构的选择一般情况下是O(V^2)或O(Vlog(V))其中V是节点数。如果使用优先队列来优化时间复杂度可以减小到O(Elog(V))其中E是边数。 Dijkstra算法在许多领域广泛应用包括路线规划、网络路由、资源分配和许多其他需要找到最短路径的应用。 2 Dijkstra算法的步骤 创建一个空的最短路径字典其中每个节点的距离设置为无穷大起始节点的距离设置为0。 创建一个空的已访问节点集合。 从未访问的节点中选择距离起始节点最近的节点标记为已访问。 对于已访问节点的所有邻居计算通过已访问节点到达它们的距离并更新最短路径字典。 重复步骤3和4直到所有节点都被访问。 3 Dijkstra算法python实现 以下是Python中使用Dijkstra算法实现的示例代码用于查找从起始节点到其他节点的最短路径 import heapqdef dijkstra(graph, start):# 创建一个距离字典用于存储每个节点到起始节点的距离distances {node: float(inf) for node in graph}distances[start] 0# 创建一个优先队列以便选择下一个节点priority_queue [(0, start)]while priority_queue:current_distance, current_node heapq.heappop(priority_queue)# 如果当前距离大于已知距离跳过if current_distance distances[current_node]:continue# 遍历当前节点的邻居for neighbor, weight in graph[current_node].items():distance current_distance weight# 如果发现更短的路径更新距离字典和优先队列if distance distances[neighbor]:distances[neighbor] distanceheapq.heappush(priority_queue, (distance, neighbor))return distances# 创建一个示例图 graph {A: {B: 2, D: 1},B: {A: 2, C: 3, E: 2},C: {},D: {E: 1},E: {} }# 起始节点 start_node A# 调用Dijkstra算法函数 shortest_distances dijkstra(graph, start_node)# 打印最短路径和距离 for node, distance in shortest_distances.items():print(fShortest distance from {start_node} to {node} is {distance})运行  这段代码定义了一个 dijkstra 函数用于执行Dijkstra算法。它接受一个图的表示和起始节点作为参数并返回一个包含从起始节点到其他节点的最短路径的字典。然后我们创建一个示例图并使用Dijkstra算法找到从节点 A 到其他节点的最短路径。         请注意你可以根据你的需求更改示例图和起始节点以便应用Dijkstra算法到你的具体问题中。 4 Dijkstra算法应用示例详解 假设我们有以下有向图 在这个示意图中有向图包括节点 A、B、C、D 和 E以及它们之间的带权重的边。边的数字表示权重或距离。我们的目标是找到从节点 A 到其他节点的最短路径。 Dijkstra算法的执行步骤 初始化开始时我们选择节点 A 作为起始节点并将其距离设置为 0。同时将其他节点的距离初始化为无穷大表示尚未知道到达它们的最短路径。 选择下一个节点首先我们选择节点 A 作为当前节点。它是起始节点距离已知。 更新距离我们计算从节点 A 到其邻居节点 B 和 C 的距离并将这些距离记录下来。当前已知的最短距离是从 A 到 B 的距离为 4从 A 到 C 的距离为 2。 选择下一个节点现在我们选择距离最短的节点 C 作为当前节点。 更新距离我们计算从 A 经过 C 到达其邻居节点 B 和 D 的距离并将这些距离记录下来。距离从 A 经过 C 到 B 的距离变为 4 5 9从 A 经过 C 到 D 的距离变为 2 5 7。 选择下一个节点然后我们选择距离最短的节点 B 作为当前节点。 更新距离我们计算从 A 经过 B 到达其邻居节点 D 的距离并将这个距离记录下来。距离从 A 经过 B 到 D 的距离变为 4 5 3 12。 选择下一个节点最后我们选择距离最短的节点 D 作为当前节点。 更新距离我们计算从 A 经过 D 到达其邻居节点 E 的距离并将这个距离记录下来。距离从 A 经过 D 到 E 的距离变为 4 5 3 7 19。 完成所有节点都已被访问算法结束。 以上最短路径从节点 A 到其他节点的距离如下  A到A是 0A到B是 9A到C是 2A到D是 12A到E是 19 这个示意图展示了Dijkstra算法是如何逐步找到最短路径并在每一步中选择距离最短的节点。算法的关键思想是贪婪地选择当前最短路径以逐步构建最短路径树。 以下是Python代码示例演示如何使用Dijkstra算法找到从节点 A 到其他节点的最短路径 import networkx as nx import matplotlib.pyplot as plt# 创建一个有向图 G nx.DiGraph()# 添加节点 nodes [A, B, C, D, E] G.add_nodes_from(nodes)# 添加边和权重 edges [(A, B, 4), (A, C, 2), (B, C, 5), (B, D, 10), (C, D, 3), (D, E, 7), (E, B, 8)] G.add_weighted_edges_from(edges)# 定义起点 start_node A# 运行Dijkstra算法 shortest_paths nx.single_source_dijkstra(G, sourcestart_node)# 提取最短路径信息 shortest_distances, shortest_path_predecessors shortest_paths# 修正labels的格式 labels {(edge[0], edge[1]): edge[2] for edge in G.edges(dataweight)}# 可视化图 pos nx.spring_layout(G, seed42) # 布局算法使图看起来更美观plt.figure(figsize(10, 6)) nx.draw(G, pos, with_labelsTrue, node_size800, node_colorlightblue, font_size12, font_weightbold) nx.draw_networkx_edge_labels(G, pos, edge_labelslabels, font_size10)# 绘制最短路径 for node in nodes:if node ! start_node:path nx.shortest_path(G, sourcestart_node, targetnode)path_edges [(path[i], path[i 1]) for i in range(len(path) - 1)]nx.draw_networkx_edges(G, pos, edgelistpath_edges, edge_colorred, width2)plt.title(Dijkstra Algorithm - Shortest Paths) plt.show()# 打印最短路径和距离 for node, distance in shortest_distances.items():if node ! start_node:path nx.shortest_path(G, sourcestart_node, targetnode)print(fShortest path from {start_node} to {node}: {path}, Distance: {distance})
http://www.zqtcl.cn/news/751624/

相关文章:

  • 中国建设注册管理中心网站首页大连地区建设网站
  • 广州致峰网站建设藁城网络推广
  • 怎么做免费个人网站wordpress dux 5.3
  • 手机触屏版网站网站功能介绍
  • 商场设计案例青岛百度快速排名优化
  • 制作网站要步骤湖北省建设厅网站上岗证查询
  • 网站建设制作公司都选万维科技制作网站需要注意什么
  • jsp小型网站开发wordpress微博插件
  • app充值网站开发怎么去做网站
  • 合肥建站网站模板word上下页纸张方向
  • 大学跳蚤市场网站建设哈尔滨网站建设
  • 网站开发合同中的知识产权条款怎么给公司建网站
  • 网站代维护wordpress 主题中心
  • 中铁广州建设有限公司网站临安做企业网站的公司
  • 国内可访问的海外网站和应用重庆好玩还是成都好玩
  • 定制开发小程序天津做网站优化的公司
  • 公司网站首页怎么做在线二级域名子域名查询
  • 淮南网站优化公司国内什么网站用asp.net
  • 做数据网站带网站的图片素材
  • 大方县住房城乡建设局网站wordpress 连接flickr
  • 国家建设部网站倪虹邢台新闻最新事件
  • 杭州网站 建设广州金将令做网站怎么样
  • 苏州科建设交通学院网站地方网站类型
  • 怎样做投资理财网站城乡建设部网站第35号令
  • 南昌集团网站建设wordpress去掉rss订阅
  • 郑州做网站的外包公司有哪些宁波 电商平台网站建设
  • 网站平台开发多少钱wordpress文章展示
  • 汕尾市企业网站seo点击软件建设一个网站的步骤有哪些
  • 备案上个人网站和企业网站的区别实名认证域名可以做电影网站吗
  • 顾氏网站建设有限公司怎么样memcache安装wordpress