📄 遗传算法.txt
字号:
通常,代表可行解的染色体采用一系列放入二进制位作为编码。在运行开始时,首先创建一个染
色体的群体,每个染色体都是一组随机的二进制位。二进制位(即染色体)的长度在整个群体中都是一样
的。
每个染色体编码成为由0和1组成的字符串,而它们通过译码就能表示当前问题的一个解。这可能
是一个很差的解,也可能是一个十分完美的解,但每一个单个的染色体都代表了一个可行解。初始群体通
常都是很糟的,当一个初始的群体已经被创建好了后(不妨假设共有100个成员)即可开始一面一系列工
作了。
不断循环,直到寻找出一个解:
1、检查每个染色体,看它解决问题的性能怎样,并相应地为它分配一个适应性分数。
2、从当前群体中选出2个成员。选出的概率正比于染色体的适应性,适应性分愈高,被选中的概
率也愈大。常用的方法就是赌轮选择法(roulette wheel selection)。
3、按照预先设定的杂交率(crossover rate),从每个选中染色体的一个随机确定的点上进行
杂交(crossover)。
4、按照预定的变异率(mutation rate),通过对被选染色体的位的循环,把相应的位实行翻转
(flip)。
5、重复步骤2,3,4,直到100个成员的新群体被创建出来。
结束循环
算法由步骤1到步骤5的一次循环称为一个世代(generation)。这里把整个的循环称为一个时代
(epoch)。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -