进化算法概念:以达尔文的进化思想为基础,通过模拟生物进化过程与机制的求解问题的自组织、自适应的人工智能技术。生物进化是通过繁殖、变异、竞争和选择实现的;而进化算法则主要通过选择、重组和变异这三种操作实现优化问题的求解。代码:
http://wenku.baidu.com/view/dadb76601ed9ad51f01df2f1 .html
1. pop=initpop(popsize,chromlength);
随机生成一个
popsize*chromlength
的矩阵。
对于给出的目标函数,计算目标函数值:
2.
[objvalue]=calobjvalue(pop);
3.
fitvalue=calfitvalue(objvalue);
4. [bestindividual,bestfit]=best(pop,fitvalue);
5. 针对4步骤找到的最优个体,根据步骤2算出最佳个体的目标函数值。
6. [newpop1]=selection(pop,fitvalue);
%选择算子
7. [newpop2]=crossover(newpop1,pc);
%交叉算子
8. [newpop3]=mutation(newpop2,pm);
%变异算子
9. 产生新种群。
循环2-9步500次,找到最优解。得到如下图的曲线,