【发布时间】:2016-08-31 13:36:06
【问题描述】:
我想选择我必须通过的起点、终点和顶点,算法应该找到路由的最短路径。我有一个存储 Routes Id|Name|StoreA|StoreB|Kilometers 的表,其中 StoreA 和 StoreB 是 Store 表中的 FK。我仅以一种方式保存数据。 示例:在表 Routes 1|Lidl-Kaufland|1|2|157 中,而不是返回,因为距离相同。我不确定我是使用 QuickGraph 库中的 BidirectionalGraph 还是 UndirectedGraph。
例如这个路网:1:http://i.stack.imgur.com/mxcWe.png 首先我选择这 4 个顶点,然后我选择开始和结束一个。 我使用 QuickGraph 3.6,这里最大的问题是我应该使用什么图,是否有适合我目的的算法?谢谢大家,我希望我解释了一切必要的回答我。
【问题讨论】:
-
冒着听起来令人讨厌的风险,您的问题是这样的:(en.wikipedia.org/wiki/Travelling_salesman_problem)?如果是这种情况,您可能会遇到一些性能问题,但如果搜索该问题的名称,您可能会更快地找到答案。
-
非常感谢!如果你能帮助我,我会更高兴,再次感谢你!!!
-
您的问题与 对称 TSP 非常相似(您的边缘成本在任何一个方向上都是相同的),但有一个复杂性。传统的TSP要求旅行者返回原点。这简化了问题,因为每个顶点都有到达和离开。如果顶点数量有限(permutation 来使用蛮力解决问题。对于较大的问题,请尝试分支定界方法。对于更大的问题,很难找到真正的最优解,因此请尝试启发式方法。
标签: c# asp.net-mvc algorithm graph-algorithm quickgraph