《遗传算法实验一优秀课件》由会员分享,可在线阅读,更多相关《遗传算法实验一优秀课件(38页珍藏版)》请在金锄头文库上搜索。
1、4.1 遗传算法工具箱的安装遗传算法工具箱的安装第一步:将文件夹gatbx拷贝至Matlab的工具箱目录下或硬盘任一目录中; 12第二步:启动Matlab,并设置路径3单击Add Floder按钮或Add With Subfloder按钮弹出对话框4找到遗传算法工具箱放置的位置,单击确找到遗传算法工具箱放置的位置,单击确定铵钮。定铵钮。5单击Save按钮6单击Close按钮74.2 创建种群创建种群、创建基向量crtbase8、创建基向量、创建基向量crtbase调用格式调用格式 basev=crtbase(lind,base)功能功能 利用基本字符集利用基本字符集base产生由向量产生由向量
2、lind的元素确定字符的元素确定字符长度的串,以说明染色体中基因座的等位基因数量。长度的串,以说明染色体中基因座的等位基因数量。例例1:在命令窗口中输入:在命令窗口中输入 basev=crtbase(4 6,5 8);basev = 5 5 5 5 8 8 8 8 8 8910、创建二进制初始种群、创建二进制初始种群crtbp调用格式:chrom,lind,basev=crtbp(nind,lind);chrom,lind,basev=crtbp(nind, basev);chrom,lind,basev=crtbp(nind,lind,basev);功能:创建一个以二进制编码的种群,nind
3、指定种群规模,lind确定染色体的长度。返回一个长度为lind的染色体结构,染色体的等位基因的基本字符由基本向量basev确定。用于产生一个数量为nind的种群,染色体的长度为lind,染色体等位基因的基本字符由基本向量basev确定。11chrom,lind,basev=crtbp(nind,lind);例2:在命令窗口中输入 Chrom,lind,basev=crtbp(3,5)Chrom = 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1lind = 5basev = 2 2 2 2 21213chrom,lind,basev=crtbp(nind, basev);例4:在命
4、令窗口中输入 basev=crtbase(4 6,5 8)basev = 5 5 5 5 8 8 8 8 8 8再输入以下命令 chrom,lind,basev=crtbp(6,basev)14chrom,lind,basev=crtbp(nind, basev);chrom = 3 4 1 0 7 1 3 0 0 3 2 2 4 1 4 4 6 4 6 1 2 4 3 3 3 6 5 0 7 5 3 0 0 1 4 4 3 3 7 2 3 4 0 2 2 5 4 2 6 7 3 1 4 0 3 1 6 6 3 5lind = 10basev = 5 5 5 5 8 8 8 8 8 81516
5、、创建实值初始种群、创建实值初始种群crtrp调用格式chrom=crtrp(nind,FieldDR)功能 创建一个大小为nindnvar的随机实值矩阵,其中nind指定了种群的规模,nvar确定了每个个体的变量个数,FieldDR是一个大小nvar的矩阵,包含每个个体变量的边界,第一行为上界,第二行为下界。u需要注意的是在利用chrom=crtrp(nind,FieldDR)之前先定义变量的边界。17例例3:在命令窗口中输入:在命令窗口中输入 FieldDR=-2 0 4 1 -3;3 4 5 6 7FieldDR = -2 0 4 1 -3 3 4 5 6 7再输入以下命令 chrom=
6、crtrp(3,FieldDR)chrom = 0.2571 1.2507 4.6831 4.0620 -2.8365 -1.7805 0.0515 4.0928 4.0427 -1.0993 -1.8641 1.5359 4.0353 1.0788 2.869218194.3 区域描述器区域描述器20区域描述器区域描述器FieldD的结构如下:的结构如下: 21区域描述器区域描述器FieldD中各参量的含义中各参量的含义22区域描述器区域描述器FieldD中各参量的含义中各参量的含义23二进制串到实值的转换函数二进制串到实值的转换函数bs2rv l调用格式 Phen=bs2rv(Chrom,
7、FieldD)l功能 根据区域描述器FieldD将二进制串矩阵Chrom转换为实值矩阵,返回矩阵Phen包含对应的种群表现型。24例:在命令窗口中输入例:在命令窗口中输入 Chrom=crtbp(4,8) %创建一个初始种群,种群规模为4,编码长度为8Chrom = 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 12526建立区域描述器建立区域描述器 FieldD=8;-1;10;1;0;1;1FieldD = 8 % 子串长度为8 -1 % 每个子串的下边界为-1 10 % 每个子串的上边界为10 1% 用标准的二
8、进制编码 0% 每个子串使用算术刻度 1% 每个变量的范围包含下边界 1% 每个变量的范围包含上边界2728将二进制串转化为实值将二进制串转化为实值 Phen=bs2rv(chrom,FieldD)Phen = 6.5490 3.7882 7.5843 1.15692930重新建立区域描述器重新建立区域描述器 FieldD=8;1;10;1;1;0;0FieldD = 8% 子串长度为8 1% 每个子串的下边界为1 10 % 每个子串的上边界为10 1% 用标准的二进制编码 1% 每个子串使用对数刻度 0% 每个变量的范围不包含下边界 0% 每个变量的范围不包含上边界3132重新译码重新译码 Phen=bs2rv(chrom,FieldD)Phen = 4.8398 2.7277 6.0008 1.57923334多变量区域描述器多变量区域描述器 FieldD=5 7;-1 1;10 5;1 1;0 0;1 0;0 1FieldD = 5 7 -1 1 10 5 1 1 0 0 1 0 0 13536译码译码 Phen=BS2RV(Chrom,FieldD)Phen = 6.2188 1.1875 3.4688 1.3125 7.2500 4.9375 1.0625 2.25003738