第一章 谢菲尔德大学的MATLAB遗传算法
遗传算法是一种进化算法,其基本原理是仿效生物界中的“物竞天择,适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中的染色体的信息,最终生成符合优化目标的染色体。
在遗传算法中,染色体对应的是数据或数组,通常是由以为的串结构数据来表示,串上各个位置对应基因的取值。基因组成的串就是染色体,或者称为基因型个体。一定数量的个体组成了群体。群体中个体的数目称为群体大小,也称为群体规模。而各个个体对环境的适应程度叫做适应度。
1.创建种群函数——crtbp
调用格式:
①[Chrom,Lind,BaseV]=crtbp(Nind,Lind)创建一个Nind X Lind的随机二进制矩阵,Nind为种群的个体数目,Lind为个体长度。返回种群编码Chrom,个体长度Lind,个体基因位的进制数。
②[Chrom,Lind,BaseV]=crtbp(Nind,Base)创建一个Nind行,size(Base,2)列的随机矩阵,Base决定每个个体基因位的编码进制数。返回种群编码Chrom,个体长度Lind,个体基因位的进制数。
③[Chrom,Lind,BaseV]=crtbp(Nind,Lind,Base)
举例:[Chrom,Lind,BaseV]=crtbp(3,5)
Chrom=[0 1 1 0 0;1 1 1 0 1; 0 0 1 0 1;] Lind=5 BaseV=[2 2 2 2 2 ]
[Chrom,Lind,BaseV]=crtbp