遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。它是借鉴了生物进化学中的一些现象而发展起来的,这些现象包括遗传,突变,自然选择以及杂交等。
遗传算法的思想
遗传算法是模拟生物学种的进化论,物种朝着有利于自己的方向发展,这在遗传算法中表现为朝着最优化的方向发展。在进化过程中,遗传算法模拟基因的行为,首先选择有优势的基因,并对基因进行配对,然后等位基因进行交换,并有一定的概率进行基因变异,这就导致了下一代基因的产生,产生新的个体。
编码和解码
遗传算法的编码有两种,二进制编码和浮点数编码。将一个二进制串(长度为n)转化为区间[a,b]里对应是实数值:
(1)将一个二进制串代表的二进制转化为10进制数
( b 0 ⋯ b n − 2 b n − 1 ) 2 = ( Σ i = 0 n − 1 b i ⋅ 2 i ) 10 = x t (b_0\cdots b_{n-2}b_{n-1})_2=(\Sigma_{i=0}^{n-1}b_i\cdot 2^i)_{10}=x^t (b0⋯bn−2bn−1)2