第2关:遗传算法 - 函数最优解计算
任务描述
- 本关任务:使用 python 实现遗传算法,并求目标函数最优解。
相关知识
为了完成本关任务,你需要掌握:1.遗传算法,2.使用 python 实现遗传算法。遗传算法
基因和染色体
在遗传算法中,我们首先需要将要解决的问题映射成一个数学问题,也就是所谓的数学建模,那么这个问题的一个可行解即被称为一条染色体或个体。
如:3x+4y+5z<100
[1,2,3],[2,3,4],[3,2,1]均为这个函数的可行解,这些可行解在遗传算法中均被称为染色体,每一个元素就被称为染色体上的一个基因。
染色体编码与解码
遗传算法的运算对象是表示染色体的符号串,所以必须把变量 x,y,z 编码为一种符号串。常见的编码方式如用无符号二进制整数来表示。解码即将二进制整数转换回最初的表现型。
编码: 5 --> 0101。
解码: 0101 --> 5。
初始群体的产生
遗传算法是对群体进行的进化操作,需要给其准备一些表示起始搜索点的初始群体数据。假如群体规模的大小取为 4,即群体由 4 个染色体组成,每个染色体可通过随机方法产生。
如: 011101