在100x100的区域里用边长为4.3的正六边形铺满,每个中心点为一个节点,从(40,50)出发,每经过9个节点后必须返回至起点。求最优路径!
说明为什么路径最短!
求最优路径!求图解或MATLAB程序!
答案:2 悬赏:80 手机版
解决时间 2021-02-01 01:40
- 提问者网友:最爱你的唇
- 2021-01-31 15:02
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-01-31 16:16
没看明白:
1、对于路径的要求是什么?比如终点?
2、【每经过9个节点后必须返回至起点】,看起来是只能封闭在一个小的范围内,那么所谓的“最优”路径是什么概念?
3、“100x100的区域”和“边长4.3”这两个条件又起到了什么作用?
1、对于路径的要求是什么?比如终点?
2、【每经过9个节点后必须返回至起点】,看起来是只能封闭在一个小的范围内,那么所谓的“最优”路径是什么概念?
3、“100x100的区域”和“边长4.3”这两个条件又起到了什么作用?
全部回答
- 1楼网友:酒者煙囻
- 2021-01-31 16:45
你对图论的知识有了解吧~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)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯