打败贪婪的算法

时间:2010-10-28 21:28:15

标签: algorithm assembly

对于课程,我们在网格上有一个网格和一组正方形,我们需要检测并前往。我们从(0,0)开始。我们一次扫描网格的微小区域(出于我们的数据结构的原因,它是强制性的),当我们检测到我们需要旅行的方格时,然后我们旅行。网格上有32个位置,但我们只需要移动其中的16个,并且尽可能快(我们正在与其他人竞争)。

Dijkstra的算法将找到从我们当前位置到下一个位置的最短路径。然而,这是次优的,因为我们的下一个位置可能距离之后的位置非常远。如果我们能够在扫描时以某种方式计算出位置密度,然后选择去一个非常密集的地方并在该区域内的所有位置旅行,那将更有益。

是否有最适合这种情况的算法?我知道贪婪的启发式不是最优的。 A *和Dijkstra是我们最初想到的,但我们希望有一个完全不同的解决方案。

不幸的是,PS正在装配中完成。

1 个答案:

答案 0 :(得分:3)

找到密集的点块(例如,您必须访问的位置)称为cluster analysis。请参阅几类算法的链接。

汇编语言是尝试高级算法的一种非常痛苦的方法。你的教授是个虐待狂吗?