我正在编写一个遗传编程(GP)系统(在C中,但这是一个小细节)。我读过文献(Koza,Poli,Langdon,Banzhaf,Brameier等)的lot,但有一些实现细节我从未见过。例如:在遗传编程中实现交叉
我使用的是稳定状态人口而不是代际方法,主要是使用计算机的所有内存,而不是为临时人口保留一半。
Q1。在GP中,与GA相比,当你进行交叉时,你选择了两个父母,但你是否创建了一个或两个孩子,还是你有自由选择? Q2302。在稳态GP中,与分代系统相反,通过交叉替换创建的孩子是什么人?这是我没有见过的。这是两个父母,还是两个随机选择的成员?我可以理解,如果是后者,并且你可能使用否定比赛选择来选择要替换的成员,但是这不会造成早熟收敛吗? (交叉事件后,人口包含两个原始父母加上这些父母的两个孩子,另外两个随机成员被删除,精英主义是固有的。)
Q3。有关于GP的Web论坛或邮件列表吗?奇怪的是我没有找到一个。雅虎的GP团队几乎专门用于公告,Poli/Langdon实地指南论坛几乎没有声音,而GP就像gamedev.net这样的一般/游戏编程网站进行的讨论非常基础。
感谢您提供任何帮助!
我强烈建议看一下[Metaheuristics基础](http://cs.gmu.edu/~sean/book/metaheuristics/)。它是免费的(如果你填写表格),它包含了广泛的元启发式技术概述,包括遗传编程,交叉算子,稳态模型等。 – zegkljan 2014-09-23 11:32:19