遗传算法实验三
%为父种群定义目标值
>> ObjVCh=[21;22;23;24;25;26] ObjVCh = 21 22 23 24 25 26
%为子种群定义目标值
>> ObjVSel=[31;32] ObjVSel = 31 32
%用所有子代代替最不适应的父个体
>> Chrom=reins(Chrom, SelCh, 1, 1, ObjVCh) Chrom = -72.6963 39.3898 -12.0766 -8.6237 -4.2055 0.6807 0.7279 0.9595 -3.1761 -1.2959 1.7689 -0.4571 0.6816 2.0274 2.7411 -0.4953 -97.6487 -30.0862 9.6866 -1.2310 -72.6963 39.3898 -12.0766 -8.6237
各个选项的含义
Chrom=reins(Chrom,
SelCh, SUBPOP)
Chrom——父代种群; SelCh——子代种群; SUBPOP——指明Chrom与SelCh中子种群的数 量,如果省略或为NaN,则假设SUBPOP=1, 在Chrom与SelCh中每个子种群的大小必须相 等。
各个选项的含义
%从父代个体中按轮盘赌选择3个个体
>> NewChrIx=rws(FitnV,3) NewChrIx = 4 6 4
3、随机遍历抽样——sus(低级函数)
调用格式:
NewChrIx=sus(FitnV, Nsel) 功能: 在当前种群中使用随机遍历抽样选择Nsel个个体。 各个选项的含义如下: FitnV——当前群体中各个个体的适应度列向量, 可通过函数ranking和scaling得到; Nsel——选择个体的数量; NewChrIx——被选择个体的索引值.
%新种群的目标函数值
ObjVCh = 21 22 23 24 25 31
%重插入子代到种群
>> Chrom=reins(Chrom, SelCh, 2) Chrom = -72.6963 39.3898 -12.0766 -8.6237 -72.6963 39.3898 -12.0766 -8.6237 -3.1761 -1.2959 1.7689 -0.4571 0.6816 2.0274 2.7411 -0.4953 -97.6487 -30.0862 9.6866 -1.2310 -72.6963 39.3898 -12.0766 -8.6237
%定义变量边界
>> FieldDR1=[-10,-5,-3,-1;10,5,3,1] FieldDR1 = -10 -5 -3 -1 10 5 3 1
%生成初始种群
>> Chrom=crtrp(6,FieldDR1) Chrom = -1.7274 0.6574 1.2038 0.3297 3.1043 2.1654 2.8963 -0.2693 6.7517 0.1131 1.8398 -0.7199 -2.5678 2.7640 1.2214 0.1335 -1.4949 -0.1065 -0.0902 0.6460 1.8933 -3.1410 -2.3123 0.3479
SelCh=select(SEL_F, Chrom, FitnV, GGAP) GGAP——是一可选参数,指出了代沟,部分种群被 复制,缺省值为1;GGAP也可大于1,允许子代数 多于父代数量; SUBPOP——指明Chrom中子种群的数量,如果省略 或为NaN,则假设SUBPOP=1,在Chrom中每个 子种群的大小必须相等。
%定义各个体目标值
>> ObjV=[22;25;40;38;26;60] ObjV = 22 25 40 38 26 60
%计算各个体适应度
>> FitnV=scaling(ObjV) delta = 24.8333 a= 1.4161 b= -14.6331 FitnV = 16.5213 20.7696 42.0112 39.1790 22.1857 70.3333
各个选项的含义如下:
SelCh=select(SEL_F,
Chrom, FitnV) Chrom——父代种群; SelCh——子代种群; FitnV——是一列向量,包含了Chrom各个个体的 适应值; SEL_F——是一字符串,包含一低级选择函数名, 如rws,sus,reins;
各个选项的含义如下:
%定义变量边界
例2:在命令窗口中输入 >> FieldDR1=[-10,-5,-3,-1;10,5,3,1] FieldDR1 = -10 -5 -3 -1 10 5 3 1
%生成初始种群
>> Chrom=crtrp(6,FieldDR1) Chrom = -7.6051 -3.3970 2.2223 0.4698 -9.2374 3.7286 -2.9404 0.3746 -0.8280 -2.6212 -2.1779 -0.3078 7.3973 1.4583 1.9125 -0.6679 8.6847 4.6689 -0.4190 -0.6888 -4.7110 1.6493 2.3419 -0.6178
Chrom=reins(Chrom,
SelCh, SUBPOP, InsOpt) InsOpt——是一个最多含有两个参数的任选向量。其 中InsOpt(1)是标量,指明子代代替父代的选择方法。 0为均匀选择,子代代替父代使用均匀随机选择; 1为 基于适应度的选择,子代代替最小适应的个体;如果 省略或为NaN,则InsOpt(1)=0。InsOpt(2)是[0,1]间 的标量,表示子种群中重插入的子代个体在整个子种 群中所占的比率;如果省略或为NaN,则 InsOpt(2)=1.InsOpt省略,则取缺省值.
%定义子种群的变量边界
>> FieldDR2=[-100,-50,-30,-20;100,50,30,20] FieldDR2 = -100 -50 -30 -20 100 50 30 20
%创建含有2个个体的子种群
>> SelCh=crtrp(2,FieldDR2) SelCh = -72.6963 39.3898 -12.0766 -8.6237 -97.6487 -30.0862 9.择——rws(低级函数)
调用格式: NewChrIx=rws(FitnV, Nsel) 功能: 在当前种群中按它们的适应度FitnV选择Nsel个个体繁殖。 各个选项的含义如下: FitnV——当前群体中各个个体的适应度列向量,可通过 函数ranking和scaling得到; Nsel——选择个体的数量; NewChrIx——被选择个体的索引值.
%定义各个体目标值
>> ObjV=[22;25;40;38;26;60] ObjV = 22 25 40 38 26 60
%计算各个体适应度
>> FitnV=scaling(ObjV) delta = 24.8333 a= 1.4161 b= -14.6331 FitnV = 16.5213 20.7696 42.0112 39.1790 22.1857 70.3333
%父代种群的个体目标值
>> ObjV=[22;25;40;38;26;60] ObjV = 22 25 40 38 26 60
%父代种群的个体适应值
>> FitnV=ranking(ObjV) FitnV = 2.0000 1.6000 0.4000 0.8000 1.2000 0
§4.5选择函数
1、重插入子代到种群——reins(低级函数)
调用格式: ①Chrom=reins(Chrom, SelCh) ②Chrom=reins(Chrom, SelCh, SUBPOP) ③Chrom=reins(Chrom, SelCh, SUBPOP, InsOpt) ④[Chrom, ObjVCh]=reins(Chrom, SelCh, SUBPOP, InsOpt, ObjVCh, ObjVSel) 功能: 完成将子代插入到当前种群,用子代代替父 代并返回结果种群。
%从父代个体中随机抽样选择4个个体
>> NewChrIx=sus(FitnV,4) NewChrIx = 4 6 6 3
4、从种群中选择个体——select(高级函数)
调用格式:
①SelCh=select(SEL_F, Chrom, FitnV) ②SelCh=select(SEL_F, Chrom, FitnV, GGAP) ③SelCh=select(SEL_F, Chrom, FitnV, GGAP, SUBPOP) 功能: 从种群Chrom中选择优良个体,并将选择的个体 返回到新种群SelCh中。
%插入所有子代到种群中
>> Chrom=reins(Chrom, SelCh) Chrom = -72.6963 39.3898 -12.0766 -8.6237 -4.2055 0.6807 0.7279 0.9595 -3.1761 -1.2959 1.7689 -0.4571 0.6816 2.0274 2.7411 -0.4953 4.5423 0.4657 0.1355 0.7515 -97.6487 -30.0862 9.6866 -1.2310
各个选项的含义
[Chrom,
ObjVCh]=reins(Chrom, SelCh, SUBPOP, InsOpt, ObjVCh, ObjVSel) ObjVCh——是一可选列向量,包含Chrom中个体 的目标值,对基于适应度的重插入,ObjVCh是 必需的. ObjVSel——是一可选列向量,包含SelCh中个体 的目标值.如果子代的数量大于重插入种群中的 子代数量,则ObjVCh是必需的,子代将按它们 的适应度选择插入.