我如何将遗传算法应用于跟随过山车轨道的简单游戏?

时间:2009-11-22 17:35:59

标签: c++ genetic-algorithm

我可以自由地控制我在学校的最后任务中做的事情,关于修改一个简单的直接x游戏,目前只有相机跟随一些过山车轨道。我对遗传算法产生了兴趣,并希望借此机会应用它并学习一些有关它们的知识。但是,在这种情况下,我无法想到任何可能应用的方法。我有哪些选择?

2 个答案:

答案 0 :(得分:4)

从您的查询中,您似乎想要使用遗传算法来获得优化过山车轨道。对于任何优化问题:

  1. 您首先需要将所需的解决方案分解为其组件或设计变量
  2. 获得“变量”之后,您需要了解如何制定目标函数。通常,您会以这样的方式对其进行编码,使您所需的解决方案最小化它。
  3. 然后您需要决定在您的遗传算法中使用编码方案实数编码遗传算法在您拥有连续搜索空间的情况下更有用。
  4. 这些是第一件事。一旦拥有它们,您需要决定Crossover和Mutation策略。最后,您必须决定是否要在问题中使用现有的GA代码,使用某些库或自己编写代码。

    更具描述性的问题将有助于我为此添加更多内容。你想找什么语言工作?

    编辑:我自己没有使用它,PARDISEO是一个基于C ++模板的库,还有许多其他东西,遗传算法。另外,您可以在http://www.iitk.ac.in/kangal/codes.shtml

    查看Real Coded GA的C版本

    来自您的(OP)评论:

      

    从字面上看,它所做的就是加载一个xml   带有一些轨迹坐标的文件,   建造铁轨,并有相机   像你一样跟踪这些曲目   过山车。大概在100左右   千行代码

    我认为您希望将轨道坐标视为可能的设计变量,看看它们的组合会给您一个优化(在成本,更好的视野,舒适度等方面......)然后看看你有什么数学关系可以获得最佳组合。然后你就可以应用GA了。 :)

答案 1 :(得分:3)

成功过山车的标准是什么?一旦你能够定量地描述,你就有了健身功能。那么你需要考虑过山车的哪些部分?这是你甚至可以分解成碎片的东西吗?如果是这样的话,那么你就拥有了你的“基因”,而个别的滚轴是一种可以针对适应度函数进行测试,或者变异或交叉的解决方案。然后你制作一群过山车,对人口的样本量进行交叉和变异,并将适应度函数应用于个体。然后,您将为下一代保留最适合的个人,并重复该过程。