PACMAN:吃掉所有点的短路径

我正在尝试解决PACMAN问题,寻找一条短路径(不是最短的,但足够好),能够在一个大迷宫中吃掉所有点。我看到很多人讨论TSP、Dijsktra、BFS、A*。我认为这不是TSP,因为我不需要回到起点,而且我可以重复经过节点。另外,我认为Dijsktra、BFS和A*不会有帮助,因为我不是在寻找最短路径,即使是那样,它们也无法在合理的时间内给出答案。

谁能给我一些提示吗?这是什么类型的问题?这算是一种TSP吗?有什么算法可以高效地解决这个问题?我很感激任何关于实现的提示。


回答:

你是说你在参加一个比赛,要在30秒内在大迷宫中找到最短路径吗?

去年我为了好玩也做过这个(我的大学课程没有参加比赛)。经过几周的研究,我能够在30秒内找到迷宫的精确解。

我使用的启发式方法实际上是一种精确的启发式方法。我编写了大量代码,使用基于图分解和动态规划的更高效算法来找到最短路径长度,然后将结果反馈给A*作为‘启发式’值。

关键是要认识到,虽然图很大(273个节点),但它的雕刻宽度很低(5),这意味着可以使用固定参数可解算法高效地解决它。

希望这些关键词能让你走上正确的轨道。

更新: 我写了一篇博客文章解释了解决方案

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注