转:johnson算法的现实意义

简介: Johnson算法是一种用于解决边数与节点数之间关系为O(n^2)的带权图的最短路径问题的算法。它是一种结合了Dijkstra算法和Bellman-Ford算法的技术,通过使用一个负权重的环检测器来消除负权重的影响。这种算法的时间复杂度为O(n^2+m log n)。

Johnson算法是一种用于解决边数与节点数之间关系为O(n^2)的带权图的最短路径问题的算法。它是一种结合了Dijkstra算法和Bellman-Ford算法的技术,通过使用一个负权重的环检测器来消除负权重的影响。这种算法的时间复杂度为O(n^2+m log n)。

Johnson算法是一种用于解决多源最短路径问题的算法。它通过将图中的边权转换为虚拟起点的边权来解决问题。

Johnson算法的一个明显缺点是,在边权取负值之后,有负权边的图上不能使用该算法。这是因为负权边会导致最长路径不存在。另外,Johnson算法的时间复杂度为O(n^2 log(n) + m log(n)),其中n为顶点数,m为边数。相比于其他多源最短路径算法,Johnson算法的时间复杂度较高。还有一点就是Johnson算法需要先对图做一个Bellman-Ford或者Dijkstra来判断负环,并且需要多次使用堆优化的Dijkstra算法,所以空间复杂度也比较大。

例如,假设有一个图,其中包含5个节点(A、B、C、D、E)和7条边(A-B、B-C、C-D、D-E、A-D、B-E、C-E)。现在,如果要求从A、B、C三个起点到E终点的最短路径,可以使用Johnson算法。

首先,将虚拟起点S加入图中,并将S到A、B、C的边权设为0。然后,使用Bellman-Ford算法求S到其他各点的最短路径。接着,将图中所有边权加上S到该边的两个端点的最短路径长度。最后,使用Dijkstra算法求A、B、C到E的最短路径。

在这个例子中,Johnson算法将会得到A到E、B到E、C到E的最短路径分别为 [A,D,E], [B,E]。
image.png

本文转载自:https://www.teamdoc.cn/archives/2937

目录
相关文章
|
机器学习/深度学习 运维 算法
转:如何利用johnson算法实现企业上网行为监管
讨论如何用Johnson算法来监管企业上网行为,听起来有点儿像在为上网行为安排“时间表”,就像一个网络版的时间管理大师一样。大家都知道,Johnson算法是解决作业调度问题的高手,能让作业们排队有序,就像乖乖等着上舞台表演一样。虽然在作业调度领域它可是大红大紫,但要把它拉进企业上网监管的大舞台上,可能需要一点儿变脸技巧。
45 0
|
存储 算法
最短路Johnson算法
最短路Johnson算法
93 0
|
5天前
|
算法
基于模糊控制算法的倒立摆控制系统matlab仿真
本项目构建了一个基于模糊控制算法的倒立摆控制系统,利用MATLAB 2022a实现了从不稳定到稳定状态的转变,并输出了相应的动画和收敛过程。模糊控制器通过对小车位置与摆的角度误差及其变化量进行模糊化处理,依据预设的模糊规则库进行模糊推理并最终去模糊化为精确的控制量,成功地使倒立摆维持在直立位置。该方法无需精确数学模型,适用于处理系统的非线性和不确定性。
基于模糊控制算法的倒立摆控制系统matlab仿真
|
5天前
|
机器学习/深度学习 算法 定位技术
MATLAB - 遗传算法(GA)求解旅行商问题(TSP)
MATLAB - 遗传算法(GA)求解旅行商问题(TSP)
9 3
|
6天前
|
算法
基于多路径路由的全局感知网络流量分配优化算法matlab仿真
本文提出一种全局感知网络流量分配优化算法,针对现代网络中多路径路由的需求,旨在均衡分配流量、减轻拥塞并提升吞吐量。算法基于网络模型G(N, M),包含N节点与M连接,并考虑K种不同优先级的流量。通过迭代调整每种流量在各路径上的分配比例,依据带宽利用率um=Σ(xm,k * dk) / cm来优化网络性能,确保高优先级流量的有效传输同时最大化利用网络资源。算法设定收敛条件以避免陷入局部最优解。
|
1月前
|
传感器 算法
基于无线传感器网络的MCKP-MMF算法matlab仿真
MCKP-MMF算法是一种启发式流量估计方法,用于寻找无线传感器网络的局部最优解。它从最小配置开始,逐步优化部分解,调整访问点的状态。算法处理访问点的动态影响半径,根据带宽需求调整,以避免拥塞。在MATLAB 2022a中进行了仿真,显示了访问点半径请求变化和代价函数随时间的演变。算法分两阶段:慢启动阶段识别瓶颈并重设半径,随后进入周期性调整阶段,追求最大最小公平性。
基于无线传感器网络的MCKP-MMF算法matlab仿真
|
16天前
|
算法 5G vr&ar
基于1bitDAC的MU-MIMO的非线性预编码算法matlab性能仿真
在现代无线通信中,1-bit DAC的非线性预编码技术应用于MU-MIMO系统,旨在降低成本与能耗。本文采用MATLAB 2022a版本,深入探讨此技术,并通过算法运行效果图展示性能。核心代码支持中文注释与操作指导。理论部分包括信号量化、符号最大化准则,并对比ZF、WF、MRT及ADMM等算法,揭示了在1-bit量化条件下如何优化预编码以提升系统性能。

热门文章

最新文章