【问题标题】:Improve a puzzle game AI using machine learning使用机器学习改进益智游戏 AI
【发布时间】:2014-11-28 14:05:20
【问题描述】:

我提出这个问题的动机是我发现了一个在图形数据集上使用机器学习的有趣问题。有关于这个主题的论文。例如,“从有向图上的标记和未标记数据中学习”(Zhou, Huang, Scholkopf)。但是,我没有人工智能或机器学习方面的背景,所以在从事任何科学工作之前,我想为更广泛的受众编写一个较小的程序。

几年前,我编写了一款名为 Solumns 的游戏。它是经典 Sega 游戏 Columns 的邪恶变体。受bastet 的启发,它会暴力破解对玩家不利的颜色组合。很难。

我想改进它的 AI。我认为游戏空间(彩色块网格、列位置、列颜色)比属性列表更适合图形结构。如果是这样的话,那么这个问题和我的研究问题很相似。

我正在考虑使用以下高级计划来解决此问题:

  1. 我在想如果 AI 对手可以根据比移动后棋盘上现有方格数更多的数据为可能的移动分配适合度评级,这将是有用的。我正在考虑使用分类器。在移动和所有过去的移动中进行训练,使用游戏其余部分的过程作为衡量成功的标准。
  2. 我也在考虑开发一个可以击败标准 AI 对手的玩家机器人。这在为 1 生成数据时可能很有用。
  3. 使用玩家机器人的游戏样本来构建击败战略玩家的 AI。也许也可以将此数据用于 1。
  4. 编写一个有趣的 AI,在适当的时候将 1、3 和原始 AI 的可能组合委托给我,我将通过实验来确定它以找到启发式胡扯因素。

为了构建玩家机器人,我想我可以使用蛮力来计算样本空间。然后使用机器学习技术(例如用于构建随机森林的技术)来创建某种决策者。

打造人工智能对手是我最困惑的地方。

具体问题:

  • 评级移动听起来像是人们对国际象棋所做的那种事情,虽然我承认我的方法可能是无知的,但文学中有很多关于这方面的内容,我可以从中学习。问题是,玩家机器人和 AI 对手是否应该创建数据样本?听起来我对不同的样本集感到困惑,这听起来像是训练不佳的秘诀。我应该只玩一堆游戏吗?
  • 我应该考虑使用哪种算法来针对当前 AI 训练玩家机器人?
  • 我应该考虑使用哪种算法来训练 AI 对手对抗玩家机器人?

额外信息:

  • 我故意不问这种策略是否适合编写游戏 AI。当然,您也许可以更简单地编写出色的 AI(毕竟它已经难以玩了)。我想通过做一些有趣的事情来了解机器学习。
  • 原始游戏是用球拍和 C 混合编写的。出于各种原因,我将其移植到 jruby,可能是通过扩展或 RPC 调用到另一种更快的语言。我对这里现有的特定语言解决方案不太感兴趣。我想发展这方面的技能,并且不怕自己实现算法。

您可以获取original game here的来源

【问题讨论】:

  • 在这里问不是个好问题。它太宽泛了。你能把你的问题分解成更具体的子问题吗?这样就更有可能得到答案。
  • 应该做。谢谢你。我正在做更多的工作,并会回来提供细节。

标签: graph machine-learning artificial-intelligence 2d-games


【解决方案1】:

我不会在这里学习机器学习。看看玩游戏的 AI。

你有一个有两个不对称玩家的对抗游戏(比如围棋):

  • 放置棋子的用户,
  • 以及选择棋子的计算机(而不是偶然选择棋子)。

我可能会从蒙特卡洛树搜索开始。

【讨论】:

  • 是的 - 我已经转向对称方法来简化样本生成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 2017-02-17
  • 2011-12-24
  • 1970-01-01
  • 2011-12-22
相关资源
最近更新 更多