【问题标题】:AI testing framework人工智能测试框架
【发布时间】:2009-09-05 12:22:30
【问题描述】:

我正在为我用 C# 创建的一个简单游戏开发一个 AI 播放器。我将创建一个机器人种群,并在几代人中进化它们。

我想知道是否有任何框架可以用于此类测试/开发。理想情况下,我想要一些我可以插入任何/某种类型的游戏的东西,然后说,好吧,让一群 X 人在 Y 代人身上运行它,并为我绘制结果图表。

我正在考虑如何创建一些可以为我执行此操作的东西,并允许我稍后将其重用于不同的 AI 项目,我所能想到的就是拥有某种核心代码和一些接口契约游戏和 AI 将使用,以便服务器可以编写脚本。

你的想法是什么,有没有人有这种事情的实际经验?

【问题讨论】:

  • 我认为你应该专门化你的需求,因为现在,你期望从这样的框架中自动知道游戏规则是什么,如何操纵机器人,如何判断你的机器人性能,也许你应该开始从一开始,并有一些通用界面,可以做图表,但机器人本身(或一些游戏内机制)应该是评判,跟踪性能,额外数据(某种日志,机器人的想法和原因 - 很好用于调试奇怪的、意外的行为)
  • 我同意...我希望我可以有一个核心应用程序来管理图表和回合等。并且需要实现一个界面来控制游戏和人工智能机器人。想要某种方式拥有一个 AI 项目游戏项目和测试框架项目。

标签: c# testing frameworks artificial-intelligence


【解决方案1】:

称为遗传算法框架。任何口味都可以通过 google 获得。

【讨论】:

  • 你好,谢谢你的名字。你知道你会推荐什么吗?再次感谢。
  • 我在该领域没有足够的经验来建议任何具体的解决方案
  • 还是谢谢你...你给了我一个研究方向。
【解决方案2】:

我没有使用 AI 的经验,但我个人会从标准的单元测试框架开始。您可以根据需要使用帮助方法扩展您的测试类(甚至扩展许多框架)。

翻到 Osherove 的 The Art of Unit Testing 中的附录,我会从 NUnit 开始,如果不符合我的需求,请尝试 MbUnit 或 xUnit。

我在上面附和 Ravadre 的 cmets。

编辑:我重读了您的原始帖子,但我不确定我的回答是否足够。虽然我高度提倡在开发过程中进行单元测试(或者更好的是,TDD),但您似乎正在寻找一种方法来判断哪些机器人最成功。这超越了单元测试和(可以说)超越了集成测试。我的(未经测试的)怀疑是,从头开始为您的代码编写一个可以完全按照您想要的方式编写的工具并不是特别困难 - 运行多次迭代/排列并绘制结果图表。测试框架会给你通过/失败的结果,但这不是你想要的。如果您为您的机器人和游戏创建界面,您可以轻松地将它们插入。

【讨论】:

  • 嗨,威尔,我完全同意单元测试,这是必须的。我的想法不同的地方(正如你提到的)是我想做很多测试,例如一个机器人可能会玩 1000 场比赛,他们会绘制结果(例如得分)。在机器人都玩了 1000 场比赛后,我会使用某种体能测试来对它们进行排名。然后进化它们并进行另一轮游戏。
猜你喜欢
  • 1970-01-01
  • 2011-02-08
  • 2022-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
相关资源
最近更新 更多