我有一个遗传算法,个人由2000位组成,我尝试优化4个变量.是否有任何(相对直接的优先)经验法则来设置人口规模,世代数和变异概率等参数?
简单地说:不,没有简单的方法来选择这些数字.一切都取决于您的域名和所需的结果.
种群大小可以通过实验相对快速地确定:尝试100,1000,10K,100K和100万.哪一个给你一个更好的结果 - 顺其自然.
世代数是最难确定的.通常在处理开始时改进最佳结果的天空火箭,然后减速几乎停止.通常,这是停止并获取最佳结果或更改某些参数(如突变率)的时间.因此,您需要决定结果何时足够好:通常是花费的时间和改进率之间的平衡.
在我的实验过程中并经科学文献证实,在处理开始时,建议将突变率降至最低(如0.01%).一旦您的改进速度减慢,引入更多突变以探索更广泛的解决方案.有一次,我把突变率提高到了荒谬的程度,比如50%.这有助于扰乱系统的稳定状态,但系统恢复到稳定状态非常快,最终结果并没有比"核弹"之前更好.我得出的结论是,最高变异(在我的领域中)应该不超过5%,并且只有当改善率几乎为零时.
希望这可以帮助你一点点,但你要求的并不是微不足道的,人们分别就每个主题撰写论文.我还建议阅读有关这些主题的几篇文章 - 这将对您有所帮助.