MATLAB的迪杰斯特拉算法求7个起始点到15个终点的最短路径!

求教高人:如何用MATLAB实现地杰斯特拉算法求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!!)起始点和终点中间还有其他顶点咱是要求出这7个起始... 求教高人:如何用MATLAB实现地杰斯特拉算法 求7个起始点到15个终点的最短路径!(其他算法也行,但弗洛伊德算法除外!!)
起始点和终点中间还有其他顶点 咱是要求出这7个起始点和15个终点每对定点之间的最短路径,然后再挑!(各终点间也有路径,也就是可从起点途径一个终点到另一个终点)
展开
 我来答
Asiwindy
2010-08-27 · 超过18用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:18万
展开全部
你对图论的知识有了解吧~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)<dist(v)),
dist(v)=dist(u)+W(u,v);parent(v)=u;
end;end;end
if parent(t)~=0,path=t;d=dist(t);%回溯最短路径
while t~=s,p=parent(t);path=[p path];t=p;end;
end;
希望对你有用
Sievers分析仪
2025-07-02 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
MeChess
2010-08-27 · TA获得超过1538个赞
知道小有建树答主
回答量:448
采纳率:100%
帮助的人:616万

参考资料: http://zhidao.baidu.com/question/177028260.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Moon_1st
2010-08-30
知道答主
回答量:14
采纳率:0%
帮助的人:10.6万
展开全部
分别执行7次dijkstra。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式