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

标签 c++ genetic-algorithm

<分区>

我可以自由支配我在学校的期末作业中所做的事情,关于修改一个简单的 direct-x 游戏,该游戏目前只是让相机跟随一些过山车的轨道。我对遗传算法产生了兴趣,并想借此机会应用并学习一些相关知识。但是,我想不出在这种情况下可以应用的任何方法。我可以使用哪些选项?

最佳答案

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

  1. 您首先需要将所需的解决方案分解成组件或设计变量
  2. 获得“变量”后,您需要考虑用它们制定一个目标函数。通常,您会以所需解决方案最小化它的方式对其进行编码。
  3. 然后您需要确定要在您的遗传算法中使用的编码方案实数编码遗传算法在您拥有连续搜索空间的情况下更有用。

这些是第一件事。拥有它们后,您需要决定交叉和变异策略。然后最后你必须决定,你是想在你的问题中使用现有的 GA 代码,使用一些库还是自己编写代码。

一个更具描述性的问题将帮助我添加更多内容。您希望使用哪种语言工作?

编辑:我自己没用过,PARDISEO是一个基于 C++ 模板的库,其中包括遗传算法等。此外,您可以在 http://www.iitk.ac.in/kangal/codes.shtml 查看 Real Coded GA 的 C 版本。

来自您的(OP)评论:

Literally, all it does is load an xml file with some track coordinates, build the rails, and have teh camera follow these tracks like you were on a rollercoaster. All that in about 100 thousand lines of code

我认为您希望将轨道坐标视为可能的设计变量,并查看它们的哪些组合可以为您提供优化(在成本、更好的视野、舒适度等方面),然后查看您的数学关系可以获得最好的一套。然后你就可以应用 GA 了。 :)

关于c++ - 我如何将遗传算法应用于跟随过山车轨道的简单游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1779362/

相关文章:

C++ 重载 : [Error] no match for 'operator=' (operand types are 'String' and 'String' )

c++ - 如何找到一个mac地址?

c# - asp.net mvc 在 ActionResult 中多次循环后什么都不做

algorithm - 遗传算法-子集和问题

c++ - 删除一行中一个字符前的所有空格

调用可变参数函数模板时的 C++11 不明确重载

arrays - Swift:在数组中追加项目的算法

java - 如何规范健身分数?

cryptography - 什么是保护分区? (引用基因编程和密码学)

android - 如何提高android中的OpenCV人脸检测性能?