Nam*_*ame 13 artificial-intelligence genetic-programming genetic-algorithm evolutionary-algorithm crossover
我正在写一个遗传编程(GP)系统(在C中,但这是一个小细节).我已经阅读了很多文献(Koza,Poli,Langdon,Banzhaf,Brameier等),但有一些我从未见过的实现细节.例如:
我使用稳定状态而不是代际方法,主要是使用计算机的所有内存,而不是为临时人口预留一半.
Q1.在GP中,与GA相反,当您执行交叉时,您选择两个父母,但是您创建了一个或两个孩子,或者您是自由选择吗?
Q2.在稳定的GP中,与世代系统相反,人口中的哪些成员通过交叉创建的孩子取而代之?这是我没有见过的.是两个父母,还是其他两个随机选择的成员?我可以理解,如果是后者,并且您可以使用负面锦标赛选择来选择要替换的成员,但是这不会产生过早收敛吗?(在交叉事件发生后,人口中包含两个原始父母和两个父母的子女,另外两个随机成员被移除.精英主义是固有的.)
Q3.是否有专注于GP的网络论坛或邮件列表?奇怪的是我没有找到一个.雅虎的GP小组几乎专门用于公告,Poli/Langdon Field Guide论坛几乎是无声的,而对于像gamedev.net这样的通用/游戏编程网站的GP讨论非常基础.
感谢您的任何帮助,您可以提供!
首先,放松一下.
GP中没有"正确"的方法.GP比艺术更具艺术性.尝试很多方案,选择最有效的方案.
Q1:1,2或许多.你选.
Q2:替换,1,2,全部.或尝试一些精英主义.
问题3:您可能找不到讨论这些问题的论坛b/c没有正确/最佳答案.抱歉.
PS.在我的研究中,交叉从未真正表现得很好......