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

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

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


回答:

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

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

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

希望这对您有帮助!

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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