MATLAB的迪杰斯特拉算法求7个起始点到15个终点的最短路径!如何用MATLAB实现地杰斯特拉算法 求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!)起始点和终点中间还有
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/20 12:49:18
![MATLAB的迪杰斯特拉算法求7个起始点到15个终点的最短路径!如何用MATLAB实现地杰斯特拉算法 求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!)起始点和终点中间还有](/uploads/image/z/5584642-34-2.jpg?t=MATLAB%E7%9A%84%E8%BF%AA%E6%9D%B0%E6%96%AF%E7%89%B9%E6%8B%89%E7%AE%97%E6%B3%95%E6%B1%827%E4%B8%AA%E8%B5%B7%E5%A7%8B%E7%82%B9%E5%88%B015%E4%B8%AA%E7%BB%88%E7%82%B9%E7%9A%84%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84%21%E5%A6%82%E4%BD%95%E7%94%A8MATLAB%E5%AE%9E%E7%8E%B0%E5%9C%B0%E6%9D%B0%E6%96%AF%E7%89%B9%E6%8B%89%E7%AE%97%E6%B3%95+%E6%B1%827%E4%B8%AA%E8%B5%B7%E5%A7%8B%E7%82%B9%E5%88%B015%E4%B8%AA%E7%BB%88%E7%82%B9%E7%9A%84%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84%21%EF%BC%88%E5%85%B6%E4%BB%96%E7%AE%97%E6%B3%95%E4%B9%9F%E8%A1%8C%2C%E4%BD%86%E5%BC%97%E6%B4%9B%E4%BC%8A%E5%BE%B7%E7%AE%97%E6%B3%95%E9%99%A4%E5%A4%96%21%EF%BC%89%E8%B5%B7%E5%A7%8B%E7%82%B9%E5%92%8C%E7%BB%88%E7%82%B9%E4%B8%AD%E9%97%B4%E8%BF%98%E6%9C%89)
MATLAB的迪杰斯特拉算法求7个起始点到15个终点的最短路径!如何用MATLAB实现地杰斯特拉算法 求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!)起始点和终点中间还有
MATLAB的迪杰斯特拉算法求7个起始点到15个终点的最短路径!
如何用MATLAB实现地杰斯特拉算法 求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!)
起始点和终点中间还有其他顶点 咱是要求出这7个起始点和15个终点每对定点之间的最短路径,然后再挑!(各终点间也有路径,也就是可从起点途径一个终点到另一个终点)
MATLAB的迪杰斯特拉算法求7个起始点到15个终点的最短路径!如何用MATLAB实现地杰斯特拉算法 求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!)起始点和终点中间还有
你对图论的知识有了解吧~W是关联矩阵,s和t分别是起始点和终止节点的序号.返回的d为最短的加权路径长度,p为最优路径节点的序号向量.注意,这里W矩阵为0的点权值已经自动设为无穷大了.请参考《高等应用数学问题的 MATLAB一书》.我吧程序赋给你.
你做一个M函数用吧.
function [d,path]=dijkstra(W,s,t)
[n,m]=size(W);ix=(W==0);W(ix)=inf;
if n~=m,error('Square W required');end
visited(1:n)=0; dist(1:n)=inf;parent(1:n)=0;dist(s)=0;d=inf;
for i=1:(n-1),%求出每个节点与起始点的关系
ix=(visited==0);vec(1:n)=inf;vec(ix)=dist(ix);
[a,u]=min(vec);visited(u)=1;
for v=1:n,if (W(u,v)+dist(u)