遗传算法:原理、应用与优化策略
1. 遗传算法基础操作
遗传算法中有两个重要的操作:重组算子和变异算子。
重组算子 :
当随机数生成器返回一个整数 $i \in [1, n]$ 时,第一条染色体的最后 $i$ 位(即 $i$ 位尾部)会被第二条染色体的最后 $i$ 位替换,反之亦然。例如,当随机整数 $i = 4$ 时:
1101 1001
0010 0111 → 1101 0111
0010 1001
可以看出,子代往往会与亲代相似,尤其是当交换的尾部较短时。当 $i = n - 1$ 时,子代与亲代之间的差异最大。在许多应用中,重组算子只应用于一定比例的个体。比如,若选择了 50 对进行交配,且用户设置的重组概率为 80%,则只有 40 对会进行重组,其余 10 对将直接复制到下一代。
变异算子 :
变异的任务是破坏遗传的遗传信息。实际操作中,通过翻转一小部分位来实现,即将位的值从 0 变为 1 或反之。变异频率是用户设置的参数。假设该参数要求平均有 $p = 0.001$ 的位受到影响,相应的程序模块会为每个位从区间 $[1, 1000]$ 生成一个随机整数。若该整数等于 1,则改变该位的值,否则保持不变。变异频率过高或过低都不合适,若频率接近 50%,遗传算法将退化为随机数生成器。变异算子与交叉算子的目的不同,单点交叉只是交换现有子串,不创造新信息,而变异引入了群体中先前不存在的新元素。
超级会员免费看
订阅专栏 解锁全文
23万+

被折叠的 条评论
为什么被折叠?



