请问怎样确定遗传算法的参数也就是怎样确定种群大小,交叉率,变异率等.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 06:16:33
请问怎样确定遗传算法的参数也就是怎样确定种群大小,交叉率,变异率等.

请问怎样确定遗传算法的参数也就是怎样确定种群大小,交叉率,变异率等.
请问怎样确定遗传算法的参数
也就是怎样确定种群大小,交叉率,变异率等.

请问怎样确定遗传算法的参数也就是怎样确定种群大小,交叉率,变异率等.
不是概率问题吗/

遗传算法的参数设计对于不同的实际问题都不同
目前还没有完整的理论来参考
种群大小越大 收敛效果越好 但计算量也会增大
在空间复杂度(内存大小)和计算速度允许的情况下 尽量大一些 不过如果问题的解空间不大或者是变化的话 则要另加考虑(解空间不大就没必要把种群定得很大了)
交叉率。。。一般都是全部参与交叉(染色体都会交叉嘛) 只是交叉方式的设计问题,有单点,多点,随机等...

全部展开

遗传算法的参数设计对于不同的实际问题都不同
目前还没有完整的理论来参考
种群大小越大 收敛效果越好 但计算量也会增大
在空间复杂度(内存大小)和计算速度允许的情况下 尽量大一些 不过如果问题的解空间不大或者是变化的话 则要另加考虑(解空间不大就没必要把种群定得很大了)
交叉率。。。一般都是全部参与交叉(染色体都会交叉嘛) 只是交叉方式的设计问题,有单点,多点,随机等等 另外还要考虑交叉后解的可行性 对于具体问题,可以各种方法都试一下(这方面的理论实在是很弱)
变异率不要设高,一般在%5以下,变异是为了避免把个体局限在较优的局部解空间内(模拟退火算法就有这个问题,所以经常会结合遗传算法)
总结一下,这个算法的理论支持目前还较弱,但是很实用,反正算得快,多算几遍,参数多改改,一般和近似解都很接近

收起

种群大小一般可取80~320;
交叉率一般取0.7~0.9;
变异率0.05~0.15就可以了,一般比较小的时候稳定,也容易找到最佳值,但是有时候找不到最佳,可以取大一点尝试一下!这就是我用遗传的经验,希望能帮上你!