遗传算法原理:(自编算法)
仿照达尔文的那句话“物竞天择,适者生存”
学习代码:寻优算法(1)-------遗传算法(GA)附Matlab代码(copy可用)-CSDN博客
-
种群初始化:不能对问题空间参数直接处理,需通过特定的编码如实数编码、位串编码、结构式编码等,把问题的可行解转换成遗传空间的染色体或个体
-
适应度评估:判断种群个体好坏,通常用目标函数变换得到
-
选择:选择更适合生存者,淘汰劣势者。适应度越高越容易被选中,选择操作方式常见的有轮盘赌法、锦标赛法等
-
交叉:下一代获得父母的基因片段,以得到更加优良的基因。
-
变异:光靠父母的基因不一定能够生存下来,环境等影响会造成基因的变异,使得其能跳出父母基因的限制,得到更适合生存的基因。
-
经过这样一轮轮的选择,优良的基因(自变量)就被选择出来了。
GEN是当前代数;M是种群规模,i代表种群数量
初始化种群:initpop.m
%初始化种群大小
%输入变量:
%popsize:种群大小
%chromlength:染色体长度-->>转化的二进制长度
%输出变量:
%pop:种群
function pop=initpop(popsize,chromlength)
pop = round(ran