Dijkstra算法使单机multileg行程编码

9的观点(30天)
嗨,大家好,我是一个新鲜的纽比实际上在这个论坛和Matlab。
我在找解决问题我听说Dijkstra算法使单机是可分解的,但我不确定是否真正的解决方案。
我的问题如下:
  1. 我有一个列表764 ocurrencies(变量:代码、County_name经度、纬度);
  2. 另一个矩阵与32个节点两两之间的距离
  3. 两两之间的测地距离的奇异出发地/目的地(764)和节点
我需要执行计算那让我找到的所有两两之间的最小距离764 ocurrencies路过的两个32最近的节点
我正在努力很长久的时间,如果我可以概念化,在我看来,我寻找一个好的解决方案,可以让我来管理所有新500 k +和我认为Dijkstra算法使单机是一个很好的解决方案,但是我找不到正确的方法的代码。
希望有人可以帮助,谢谢

接受的答案

Yongjian冯
Yongjian冯 2021年11月27日
迪杰斯特拉算法的seudo-code实际上给你实现。只需要翻译seudo-code到matlab。你的意思是“正确的方式”呢?
3评论
大卫。斯帕诺
大卫。斯帕诺 2021年11月29日
编辑:大卫。斯帕诺 2021年11月29日
嗨Yongjian !
我一看弗洛伊德的算法你建议我星期六,我认为这也不是我在寻找什么。
片刻思考我的问题:
我得到了一个矩阵与8列。前两个是原点的坐标点(经度、纬度),第二个是一对coordianate最近的火车站,火车站最近的第三对那些到目标点,最后两人的目标点。
的出现都是成对的起点和终点((n * (n - 1) / 2))与n = 764,我已经在一个excel工作表。
挑战的目标是在以下方式计算距离
起源,Dep站+ Dep Stat Arr统计+ Arr Stat Dest。
了统计Arr统计=火车线公里(我已经计算过对于每一个成对的火车站,32)
当Dep统计= Arr统计那么“火车线”= 1
最后比较和选择这个multileg路线和测地线之间的最小距离。
我想写下的代码为:
%定义一个最优的路线使用火车点或点Dst的腿
每一个我起源
DepSt leg1 = geodist(起源)
leg2 =每个jTrainStation
如果Kj = Kj
然后Kj + Kj = 1
其他的kj + kj =“长度”
结束
结束
每一个我目的地
leg3 = geodist (ArrST目的地)
结束
multileg = leg1 + leg2 + leg3
结束
%定义一个名为optimalroute的变量
optrt = min (geodist (o d), multileg (o d))
现在,我意识到这种sintax永远不会运行,但这是另一种方式来定义我应对的问题,但我也知道我真的不擅长编码。
谢谢,你冷给我任何建议。
D。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!