【发布时间】:2013-03-18 14:49:34
【问题描述】:
想象一下,我有一个 6x6 的正方形,由 36 个顶点组成(即每行 6 个顶点,每列 6 个顶点),看起来像这样:
• • • • • •
• • • • • •
• • • • • •
• • • • • •
• • • • • •
• • • • • •
每个顶点都与 1、2、3 或 4 个附近的顶点相连 - 所以我们基本上得到了一个包含顶点和边的图。 我的问题如下:我希望机器人穿过边缘的“迷宫”,直到找到放置在某个顶点上的某个对象。一旦找到该对象,它就应该返回其起点,使用最快的方式返回。
现在,我不太确定如何实现这一点,所以我的问题是:在 C 中保存有关这些顶点和边的信息的最佳结构是什么? (邻接矩阵对我来说似乎效率低下,因为 36x36 非常大)。而且,使用这些信息,我怎样才能找到最快的方式回到起点?
【问题讨论】:
-
36x36不是大。 -
看看en.wikipedia.org/wiki/A*。跟随线索,完成你的搜索,最终你会偶然发现数学,也许还有一些代码。
-
这通常被称为旅行商问题。您可以在 Wikipedia 上阅读有关它和解决方案的更多信息:en.wikipedia.org/wiki/Travelling_salesman_problem
-
@Zadirion:错了,旅行推销员是一个完全不同的问题。
标签: c path adjacency-matrix