机器学习在简单赛车游戏中的应用

我的任务是创建一个简单的、2D、俯视视角的赛车游戏。游戏的唯一目标是尽可能在最短的时间内取得最佳成绩。玩家可以控制赛车的方向,并可以加速或减速。如果玩家驶出赛道,游戏就结束了。

目前游戏看似简单,但它还包含了一个AI。AI的目标是根据人类玩家过去的轨迹,学习在赛道上“最优”的行驶路线。

我正在考虑一些功能,这些可以用作训练集:

  • 玩家轨迹作为赛道拓扑结构的函数
  • 玩家速度作为赛道位置的函数

当然,其他功能或信息也可能有用。

我可以使用哪些学习方法来生成有效的赛道?我的目标不是击败人类玩家,而是仅仅到达赛道的终点。:)


回答:

我主要是在这里进行头脑风暴,但:

据我理解,你的情况大致如下:

  • 你需要从起点到达终点
  • 你不需要反复进行并取得越来越好的“圈速”
  • 你需要整合任何类型的学习算法(是否有关于允许使用哪些学习算法/智能算法的具体规定?)
  • 你知道地图,包括起点和终点(?)
  • 地图是基于网格的,或者可以轻松表示为网格(?)

在这种情况下,一个非常简单的模型如下:

  • 定义一些简单的特征(向量)来描述你当前(或邻近)的位置(例如,距离终点的角度,距离赛道边缘的距离)
  • 定义一个优良特征(例如,距离终点)
  • 在每一步,做出决定,你将朝哪个方向移动(左、右、前、后)

所以你有一组输入特征和一个决策问题。

  • 你可以定义一个模糊控制系统,为你提供最佳方向。(例如,如果我靠近边界,则远离;如果我正朝向终点且离边界足够远,则向前移动)
  • 更简单的是,你可以构建一个决策树
  • 你可以构建一个支持向量机或神经网络来选择下一步

(这些不是具体的实现建议,这取决于你选择什么)

选择在很大程度上取决于你使用的工具(Matlab、C++、Python等)以及你熟悉的学习算法。我建议选择你最了解的算法,并尝试适应该模型。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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