首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单赛车游戏中的机器学习

简单赛车游戏中的机器学习
EN

Stack Overflow用户
提问于 2013-05-15 16:23:40
回答 3查看 1.9K关注 0票数 3

我的任务是创建一个简单的,2D,从上面看到赛车游戏。这个游戏唯一的目标是在尽可能的时间内达到最好的结果。玩家可以驾驶汽车,也可以加速或减速。如果运动员离开赛道,比赛就结束了。

这是简单的一点,但游戏也有一个人工智能。人工智能的目标是学习在轨道上的“最优”跟踪,基于人类玩家过去的轨迹。

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

  • 作为轨道拓扑函数的球员追踪
  • 运动员的速度作为场地位置的函数

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

什么学习方法可以用来产生一个有效的轨道。我的目标不是打败人类的球员,而只是到达赛道的尽头。:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-16 10:55:38

我主要是在这里集思广益,但是:

据我所知,你的处境是这样的:

  • 你必须从头到尾
  • 你不必一次又一次地做这件事,获得越来越好的“圈”时间。
  • 你必须融入任何一种学习算法(是否有规范,允许哪些学习算法/智能算法?)
  • 你知道地图,包括开始和完成(?)
  • 地图是基于网格的,也可以很容易地表示为网格(?)

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

  • 定义一些简单的特征(向量),描述当前(或邻近)位置是(例如,距离终点的角度,距轨道边缘的距离)。
  • 定义一个美好的特征(例如,距离完成的距离)
  • 在每一步中,做一个决定,你将移动哪个方向(左,右,向前,向后)

因此,您有一组输入特性和决策问题。

  • 您可以定义一个模糊控制系统,为您提供最佳的方向。(规则是,如果我靠近边界,然后离开,如果我要去终点,离边界足够远,那就向前走。)
  • 更简单的是,您可以构造一个决策树。
  • 您可以构造选择下一步的支持向量机或神经网络。

(这些并不是具体的实现思想,这取决于您选择的是什么)

选择在很大程度上取决于您所使用的工具(Matlab、C++、Python等)以及您熟悉的学习算法。我建议选择一个你知道的最好的,并尝试适合的模式。

票数 2
EN

Stack Overflow用户

发布于 2013-05-15 16:25:45

也许你可以试试神经网络?

“在大多数情况下,神经网络是在学习阶段改变其结构的自适应系统。神经网络用于模拟输入和输出之间复杂的关系或在数据中查找模式。”

network

票数 1
EN

Stack Overflow用户

发布于 2013-05-16 06:45:57

我认为更重要的是要弄清楚如何表示您的环境和“可能的”行动,在这种情况下,模型只是一个东西来联系他们。

在我看来,你可以尝试诸如“从左/右路缘到你的车的距离”,“当前的汽车速度”和“汽车与道路方向的角度差异”等等。这些将是您的模型输入。

然后将它们与可用的汽车动作、“左转”/“右转”/“加速/向下”、“游戏继续/结束”或其他什么动作联系起来。这些将是您的模型输出。

如果你要用神经网络,我想出两种方法来训练你的模型。1.您可以玩您的游戏,并使您的程序记录输入时,任何时候,一个动作是适用于汽车。2.建立随机驾驶汽车的算法,对训练数据进行采样,并选择有效的训练模型。

我不熟悉强化学习,但我仍然认为这是相关的,你也可以潜入其中,试一试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16570273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档