为什么强化学习很少在寻路中使用?


12

最古老的最短路径图理论算法A *及其后续改进(例如,层次标注A *)显然是游戏开发中寻路的首选技术。

相反,在我看来,RL是在游戏空间中移动角色的更自然的范例。

但是我还不知道有一个游戏开发人员已经实现了基于强化学习的寻路引擎。(我不能由此推断出RL在寻路中的应用为0,只是相对于A *和朋友而言,它很小。)

不管是什么原因,这并不是因为这些开发人员没有意识到RL,事实证明RL在游戏引擎的其他位置经常使用。

这个问题不是在寻路中对RL提出意见的借口。实际上,我假设对A *等人的默认偏好。对RL的理解是正确的-但这种偏爱对我来说并不明显,我对此感到非常好奇,尤其是对于任何尝试使用RL进行寻路的人。


1
“不是因为这些开发人员没有意识到RL”,确定吗?这似乎是一个很大的假设。
四分

在寻路过程中是否愿意分享一些有关RL的链接或论文?
falstro 2011年

3
给定A *(和相关算法)的各种最优性/界限证明,您认为RL为寻路带来了什么?

1
相关(在不同的问题发现这个):ai-blog.net/archives/000178.html
四联

Answers:


14

我想这是因为,由于除了玩具问题之外,您将无法获得任何有用的政策概括,而且奖励功能看起来像是A *启发式算法,因此使用RL的前景似乎很像过度构建,效率低下的方式来获得与A *最好的结果相同的方法,但可能不会那么好。

这可能对RL不公平,如果是这样,我很想听听为什么,但是我并没有真正看到任何迹象表明这一点。

我们中的许多人还记得在广泛采用A *之前,游戏中的寻路是什么样的,他们并不渴望对玩家造成类似于当年的任何事情,也不希望遭受这样做的市场后果。


1
为奖励功能的陈述+1。而且,不,我相信这是一个公平的特征。RL可以很好地做到这一点,但是我不希望在那方面有严格的寻路。(请注意,我故意不在此讨论中进行运动计划。RL已成功应用于此类问题)。
Throwback1986

5

在不了解RL的情况下,我将尝试通过其他问题回答您的问题:

使用RL,您是否可以确定是否可以从B点到达A点?

RL是否可以保证可重复/一致/可测试的导航行为?

内存和CPU运行时间要求与A *相比如何?同样,与导航网格相比,您可以预先计算多少?

在动态碰撞的环境中,RL如何公平?

与操纵行为相比,正确理解和实施RL困难得多吗?

RL有没有好的中间件提供商?

也许这些问题可以帮助您找到答案。


乍一看,与RL相比,A *的实现似乎更便宜,处理更快,占用的内存更少,更可预测。但是,RL可能会产生更实际的结果。
Jari Komppa

4
相反,RL代理在其最初的学习阶段往往会产生令人费解的虚幻结果。具有一些小的转向行为的A *看起来自然得多。

好吧,最终会得出更实际的结果=)
Jari Komppa

RL本质上是预先计算完美的寻路行为。它比A *更快,更简单,但占用更多内存。当您尝试降低内存需求时,它变得复杂和/或不一致。
唐·雷巴

5

RL是“更自然的范例”的建议使我感到困惑。我看不到强化学习如何像图搜索一样清晰或准确地映射到问题域。通常,您不希望座席学习-您假设他们已经知道路线。相反,您希望他们选择并使用最直接的可用路线,而图搜索则以接近最佳的方式简化了这一过程。如果您要离线使用RL来计算到达任何给定目的地的任何给定节点的最佳方向,那最终将带来与A *大致相同的结果,除了需要更多的内存*,并且还要求开发人员非常小心确保在训练过程中充分探索了所有节点。由于事先知道该图遵循欧几里得距离规则,因此该训练将产生一个我们用毕达哥拉斯方程已经可以很好地近似的值。(当然,并非在所有可能使用图搜索和/或强化学习的情况下都是如此。)

(关于内存问题:如果您在地图上有1000个可能的量化位置,则为1000个节点加上1000 * M个边(其中M是可从任何其他节点到达的平均节点数。)加上启发式方法就足够了要操作强化*,至少按照我所设想的方式,要进行强化学习,您还需要为1000 * M条边中的每条边添加1000条条目,以在1000条中的任意一条边上获得奖励价值可能的目的地很多数据-并且它的每一位都必须相当准确,以避免出现循环,绕道或死角。


3

寻路是一个相对“解决”的问题,而RL不是。

使用A *,开发人员可以快速创建启发式方法,并随着时间的推移对其进行改进。RL(我在这里指的是RL,我在说的是Q-Learning),它需要时间来计算最佳的学习率和折扣系数(值得花时间在游戏的其他方面)。


1

这实际上取决于游戏的类型。如果游戏中的所有内容都是静态的,则使用A *搜索更为有效。但是,如果有其他人类玩家在同一区域内移动,则可以确保A *搜索失败。*搜索不了解其他玩家的前进方向。另一方面,RL可以对其他玩家的行为进行建模,并找到一条更好的路径来考虑其他玩家的动作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.