能够在随机生成的2D城市中导航的人工智能

我正在开发一款iOS游戏(使用UIView),游戏中有一个随机生成的2D城市。我需要一种攻击性的人工智能,能够智能地规划路径找到玩家(避免与建筑物碰撞)。有人能指导我应该使用哪种算法来实现这个功能吗?

更新:我决定使用A*算法。我会在地图上创建一个网格,测试每个网格交点,如果该点位于建筑物内,我会使该点失效。攻击性的人工智能玩家将从当前位置移动到一个有效的网格点,该点更接近其目标(在其位置的特定半径内)。


回答:

您需要寻找一类称为路径查找算法的算法。有许多方法可以使用。

这里的经典算法是Dijkstra算法A*搜索,它们可以引导一个对象从一个位置到另一个位置沿着最优路径。这些算法通过将2D世界建模为,然后在该图中找到从对象的起始位置到目标位置的最短路径。这些算法在人工智能和路径查找中被广泛使用,我强烈建议您花时间阅读更多关于它们的资料。如果您愿意,可以在线找到一个关于A*搜索的详细教程

如果您有许多不同的对象需要移动到目标而不互相干扰,您可能需要研究势场,它为多个对象接近目标提供了一个简单而灵活的框架。这种方法被伯克利“Overmind”星际争霸人工智能使用,并且经常用于机器人运动规划。从直觉上讲,这种方法的工作原理是为每个位置分配一个“势”值,然后让对象从高势移动到低势,直到它们到达目标。这种方法在实现上可能有点棘手,但一旦成功,通常会导致灵活、可定制且智能行为的人工智能。

希望这对您有帮助!

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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