2013-05-15 64 views
2

我的任务是从上面的赛车游戏创建一个简单的2D视图。这场比赛的唯一目标是尽可能及时地获得最佳成绩。玩家可以驾驶汽车并加速或减速。如果玩家离开赛道,游戏结束。机器学习在简单的赛车游戏

正是在这一点上简单,但游戏也有一个AI。人工智能的目标是根据人类玩家过去的踪迹,学习轨道上的“最佳”追踪。

我考虑的一些功能,这些都可以作为训练集:

  • 玩家的跟踪的轨道
  • 玩家作为函数的速度的拓扑功能的轨道

当然,其它的功能或信息的位置可能是有用的。

什么学习方法可用于生成有效的轨道。我的目标不是要击败人类的球员,而是要走到赛道的尽头。 :)

+1

为什么学习时,你可以直接计算从开始到目标的最短路径? –

+0

不,我必须在这个任务中使用机器学习。 :( – WonderCsabo

+0

我的答案有什么问题吗?是否对您不适用? – Daniel

回答

2

我大多只是集思广益这里,但:

据我所知,你的情况是这样的:你必须从开始去完成

  • 你没有

    • 要重复地做到这一点,并实现更好,更好的“圈”时间
    • 你必须纳入任何一种学习算法(有什么规范学习算法/智能算法允许?)
    • 你知道地图,包括开始和完成(?)
    • 地图是基于网格或可以很容易地表示为一个网格(?)

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

    • 定义描述您当前(或相邻)位置的一些简单特征(矢量)是(例如从完成角度,距离轨迹边缘的距离)
    • 定义一个优点特征(例如完成距离)
    • 在每一步中,做出决定,您将移动哪个方向(左,右,前,后)

    因此,您有一组输入功能和一个决策问题。

    • 您可以定义一个模糊控制系统,为您提供最佳方向。 (规则如果我接近边界然后移走,如果我前往完成和远离边界,那么向前移动)
    • 更简单,你可以构建决策树
    • 你可以构造一个SVM或神经网络是选择下一步

    (这些都不是具体的执行思路,那要看你选择什么)

    选择您使用什么工具(MATLAB,C++,Python的严重依赖等等)以及您熟悉的学习算法。我建议选择一个你认识最好的人,然后尝试去适应这个模型。

  • +0

    谢谢!对不起,我的巨大延迟接受你的答案。我用Java实现了这一点,并构建了一个决策树。 – WonderCsabo

    1

    也许你可以尝试一个神经网络?

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

    http://en.wikipedia.org/wiki/Artificial_neural_network

    +0

    是的,我想到神经网络,但我只有基本知识我不知道怎么可以构建这样一个网络,我希望得到更具体的答案:) – WonderCsabo

    +1

    好的,这是什么:把曲目分成几个“部分”,每个部分是一个转弯,直线等等。运行一堆人体测试,存储每个部分的结果。当你有这些数据时,从每个领域挑选最好的并使用它。他们很可能不会完美融合,但这不应该太难解决。仅供参考,这不是机器学习,但你说你需要使用机器学习,也使用人类运行。那是两件独立的事情。你需要使用哪些? – Daniel

    +0

    @WonderCsabo ANN将不会是第一次在赛车游戏中使用。科林麦克雷集会2使用它。这里有一些你可能会觉得有用的链接。 HTTP://togelius.blogspot。ca/2007/08/how-better-ai-can-make-racing-games.html http://www.ai-junkie.com/misc/hannan/hannan.html http://www.generation5.org/内容/ 2001/hannan.asp – Pedrom

    0

    我想弄清楚如何代表你的环境和这种情况“可能”的行动是更重要的,该模型只是将它们连接的事情。

    在我看来,你可以试试“道路的左/右边缘距离你的车”,“当前车速”和“道路方向之间的角度差异”等特征。这些将是您的模型输入。

    这时旁边是他们关系到汽车的使用行为,“左转” /“向右转” /“加速/减速”,“游戏继续下去/过”或别的东西。这些将是您的模型输出。

    如果你要使用NN,我拿出来让你的模型中训练的方法有两种。 1.您可以玩您的游戏,并在您的赛车适用动作时随时记录您的程序输入。 2.制作一个算法,随机驱动汽车采样训练数据,并选择有效的训练模型。

    我不熟悉的强化学习,但我仍然认为这是相关的,您还可以下潜到这一点,有一个尝试。

    +0

    增强学习是我在阅读问题时想到的第一件事。 – Emile