1、遗传算法的作用
遗传算法主要思想就是利用达尔文优胜劣汰的原则,选择好的保留,不好的淘汰,最终目的找到最优解。
2、遗传算法的求解
因为是利用达尔文的思想来解题,顺着遗传规律,设定一个有20头猪的自然环境(有公有母),在一个规定的环境中生存、进化。
生物在不断的繁衍进化,这20头猪都会繁衍进化吗?不一定吧,总会有特别绅士的,所以假设80%的猪释放了天性,繁衍了另外一代的猪。此时猪就会发生进化,进化的过程是基因变异的过程,但也不是每头猪都会变异,变异的概率是很小的,假设为0.01。这个环境中只能容纳20头猪,注定要淘汰一批猪,淘汰有淘汰的规则,不能揪几头猪就说是笨猪,不要了,要设定淘汰的机制。这个机制就与我们求解的方程、问题有关,通过计算得到他们的适应值,谁适应谁存活。依次不断繁衍,最终就会得到会飞的猪。
说明:20代表种群大小,80%代表交叉概率,1%代表突变概率,迭代次数,结果精确度为初始变量,其数值大小视情而定,完全依赖于经验。
根据上面的分析了解了遗传算法的流程,但是具体要怎么做呢?怎么模仿这个过程呢?举例说明,求解方程f(x)=-2x2+5x-10,0<x<4最大值。
1)20头猪怎么表示?用一串二进制数表示基因(个体)
以题为例,确定基因长度(二进制串长度),设精确度为10-3,则有211<(4-0)103<212,则需要12位二进制数表示,随机产生20个12位的二进制数。
2)交配的过程怎么表示?单点交叉
交配过程就是基因重组的过程,方法有很多,以单点交叉法为例,随机选择两条基因交配,然后随机产生交叉位置,在交叉点以后所有二进制数交换,得到新的基因。
父母基因 |
交叉位置 |
子代基因 |
1 0 |
6 |
0 0 |