C# 从理想到现实。Dijkstra物流公司
我有一个运输公司的程序,由Dijkstra计算最佳路线。城市作为顶点,路线作为边。找到边的权重。我用线把地图上的城市连接起来并测量它。然后我接受它作为边缘的重量。但在现实生活中,道路并不笔直。那我该怎么修呢C# 从理想到现实。Dijkstra物流公司,c#,graph,dijkstra,logistics,C#,Graph,Dijkstra,Logistics,我有一个运输公司的程序,由Dijkstra计算最佳路线。城市作为顶点,路线作为边。找到边的权重。我用线把地图上的城市连接起来并测量它。然后我接受它作为边缘的重量。但在现实生活中,道路并不笔直。那我该怎么修呢 在我的项目中,我必须通过创建软件来解决物流问题。谁能告诉我该解决什么问题吗?正如你们已经发现的,这个问题并不像看上去那个样简单。 首先,只连接主要城市是个坏主意,因为它们可能没有直接与高速公路相连(如果不是美国或其他地方) 这是您当前的想法: 我的建议是尝试以各种方式获取每个小城市,并将其
在我的项目中,我必须通过创建软件来解决物流问题。谁能告诉我该解决什么问题吗?正如你们已经发现的,这个问题并不像看上去那个样简单。 首先,只连接主要城市是个坏主意,因为它们可能没有直接与高速公路相连(如果不是美国或其他地方) 这是您当前的想法: 我的建议是尝试以各种方式获取每个小城市,并将其添加为Dijkstra的顶点: 现在,我们可以看到现实世界中究竟存在哪种方式。从我们的图表来看,我们可能认为使用底部路径应该更有效。但如果我们发现了这一点: 现在我们可以很容易地得出结论,上面的路径实际上要好得多,因为你可以达到底部路径速度的两倍。 这是非常精确的分类吗?不,不是。 我们可能需要考虑每条道路上的流量,并动态更改边的权重。但这对于您的基本实现来说可能太多了 最后我要做的是想一想,我几乎可以独自或在几乎没有帮助的情况下收集哪些数据。 因此,我绝对可以:
- 以某种方式废弃一些关于从A点到达B点的实际方式的数据;好的推荐信是或李>
- 沿途聚集小城市,从A点到B点寻找现实世界的道路李>
- 试着找出限速在哪里(如果有数据库的话)
谷歌地图
或必应地图
中,让它们为你提供最好的道路。
他们都有你需要的任何道路的真实数据。
你不可能像他们那样收集那么多的数据。
如果你觉得这是你能做到的,那么你的一切都在盘中
如果不是,我会选择混合方式——从任何maps API获取一些重要数据,然后将其用于我的
Dijkstra
算法,然后使用这些数据编写一个简单的算法,用于根据可能的修改器(速度限制、API提供的流量等)测量每条边的实际重量.正确执行此操作的唯一方法是从现实数据库中获取每条道路的路径。真正的道路是曲线,曲线是由许多由边连接的顶点构成的。:)