【路径规划】基于Dijkstra算法及Floyd算法的通信与网络路径规划(Matlab代码实现)

简介: 【路径规划】基于Dijkstra算法及Floyd算法的通信与网络路径规划(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥

🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者

⛳ 座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

Dijkstra算法是解决**单源最短路径**问题的**贪心算法**,它先求出长度最短的一条路径,再参照该最短路径求出长度次短的一条路径, 直到求出从源点到其他各个顶点的最短路径。


基本思想:


首先假定源点为u,顶点集合V被划分为两部分:集合 S 和 V-S。 初始时S中仅含有源点u,其中S中的顶点到源点的最短路径已经确定。


集合S 和V-S中所包含的顶点到源点的最短路径的长度待定,称从源点出发只经过S中的点到达V-S中的点的路径为特殊路径,


并用dist[]记录当前每个顶点对应的最短特殊路径长度。


Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。


📚2 运行结果


ea7d76e6ba892d9b64374fdc49eb6390.png


97f2bd837baa97400a5fbd3c33504049.png


。。。。。。


ba4c44cba353f3af6875a539c69683b8.png


509b157ac324f74c0719cda95ddcdf9b.png


部分代码:

%标出顶点(蓝色)
for i=1:n
%text(i+0.1,point(2,i),['V',num2str(i)],'Color','b');
%hold on;
plot(i,point(2,i),'.','Color','b','MarkerSize',20);
hold on;
end
%标出起点(红色)
%text(v+0.1,point(2,v),['V',num2str(v)],'Color','r');
plot(v,point(2,v),'.','Color','r','MarkerSize',20);
%连线
for i=1:n
L=1;
while(fullPath(i,L)~=0 && fullPath(i,L+1)~=0 && dist(i)~= inf)
%路径前后两点的X坐标
X_vector=[point(1,fullPath(i,L)),point(1,fullPath(i,L+1))];
%路径前后两点的Y坐标
Y_vector=[point(2,fullPath(i,L)),point(2,fullPath(i,L+1))];
%绘制路线
plot(X_vector,Y_vector);
hold on;
%标出路线对应的长度(不标自己到自己的)
if fullPath(i,L) ~= fullPath(i,L+1)
text(mean(X_vector),mean(Y_vector),num2str(netGraph(fullPath(i,L),fullPath(i,L+1))),'Color','m')
end
hold on;
L=L+1;
end
%标出距离
text(point(1,i)+0.1,point(2,i)+0.2,['V',num2str(i),'/',num2str(dist(i))]);
axis([0,n+1,0,10*n]);
hold on;
end
end


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]黄翼虎,于亚楠.基于改进Dijkstra算法的防冲突最短路径规划研究[J].计算机与现代化,2022(08):20-24.

[2]唐爽权,张博峰,穆森,陈子希,冯浩铭,徐境.基于Floyd算法的最优路径规划问题[J].科学技术创新,2021(24):16-17.


🌈4 Matlab代码实现


相关文章
|
29天前
|
机器学习/深度学习 存储 算法
神经网络分类算法原理详解
神经网络分类算法原理详解
51 0
|
18天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
32 0
|
4天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
11天前
|
算法 定位技术 Windows
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
16 4
|
14天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
286 9
|
14天前
|
机器学习/深度学习 数据采集 算法
|
17天前
|
机器学习/深度学习 自然语言处理 算法
|
19天前
|
安全 网络安全 SDN
虚拟网络设备的真正使命:实现有控制的通信
虚拟网络设备确实提供了强大的网络隔离能力🛡️,但这种隔离本身并不是最终目的。实际上,更重要的是通过这种隔离能力实现有控制的通信🎛️,以满足特定的业务需求、安全要求和性能标准。换句话说,网络隔离是手段,而有控制的通信才是目的🎯。
虚拟网络设备的真正使命:实现有控制的通信
|
20天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
30天前
|
存储 运维 安全
云擎技术:通信网络单元定级备案指南
简介: 通信网络单元定级备案是指相关基础电信企业、增值电信企业要对本单位管理、运行的公用通信网和互联网及其各类信息系统进行单元划分,按照《通信网络安全防护管理办法》(工业和信息化部令第11号)的规定开展定级工作,并在工业和信息化部“通信网络安全防护管理系统”报送各单元的定级信息。
33 2

热门文章

最新文章