mdsk.net
当前位置:首页 >> 怎么用mAtlAB求几个点连起来的最短路径 >>

怎么用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');endvisited(1:n)=0; dist(1:n)=inf;parent(1:n)=0;dist(s)=0;d=inf;for i=1:(n-1),%求出每个节点与起始点的关系 ix=(visited==0);

你对图论的知识有了解吧~W是关联矩阵,s和t分别是起始点和终止节点的序号.返回的d为最短的加权路径长度,p为最优路径节点的序号向量.注意,这里W矩阵为0的点权值已经自动设为无穷大了.请参考《高等应用数学问题的 MATLAB一书

1、最短路问题 两个指定顶点之间的最短路径. 例如,给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间,找一条最短铁路线. 以各城镇为图G的顶点,两城镇间的直通铁路为图G相应两顶点间的边,得图G.对G的每一边e

贴一个算法,你弄懂了,修改下就可以了function [p,v]=dijkstra(map,u1,u2)%求网络最短路径的dijkstra算法%用法:% 首先输入矩阵: % map=[起点1 终点1 边长1;起点2 终点2 边长2;;起点n 终点n 边长n]% 和u1,u2% 注意:这里map为

据Drew所知最短路经算法现在重要的应用有计算机网络路由算法,机器人探路,交通路线导航,人工智能,游戏设计等等.美国火星探测器核心的寻路算法就是采用的D*(DStar)算法.最短路经计算分静态最短路计算和动态最短路计算.静态路

d1=A-repmat(B(:,1),[1 4]); %A到B1的向量d1=sqrt(sum(d1.^2,1)); %计算距离d2=A-repmat(B(:,2),[1 4]); %A到B2的向量d2=sqrt(sum(d1.^2,1)); %计算距离d3=A-repmat(B(:,3),[1 4]); %A到B2的向量d3=sqrt(sum(d3.^2,1)); %计算距离

用模拟退火程序,给个邮箱吧

x=[X1-X2,Y1-Y2]norm(x)

给你一个具体的例子来说明如何使用graphshortestpath函数求最优路线: W = [.41 .99 .51 .32 .15 .45 .38 .32 .36 .29 .21]; %距离DG = sparse([6 1 2 2 3 4 4 5 5 6 1],[2 6 3 5 4 1 6 3 4 3 5],W);%节点 h = view(biograph(DG,[],'ShowWeights','on'));%绘制路线图 [dist,path] = graphshortestpath(DG,1,6) % dist最短距离;path最短路线; 运行结果

Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低. Dijkstra算法

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com