先进控制技术智能控制与智先进控制技术智能控制与智能系统
(遗传算法作业)
任课老师:学生姓名:学号:专业:导师:
f第1页
简介:简介:本文给出了一种遗传算法来求取两组函数的最大值。本遗传算法主要采用选择、交叉和变异三种方式实现。在定义域内随机选取50组自变量作为初始种群,进行交叉、变异、选择复制后得到相应的最大函数值。在交叉和变异时,考虑到了可能由于交叉和变异可能使自变量超出其限定范围,故在程序中采取了一定算法防止其发生以免使结果错误,在选择复制过程中,为避免适应值为负,或复制个体数超出种群数等情况的发生,进行了一些必要处理,避免发生错误或算法发散。
一、任务
利用遗传算法求下列函数的最大适应值及其位置:(1)f1xysi
xsi
yxy
x52y52x52y52(2)f2xy09×exp099996×exp1020其中xy∈1010,精确到00001。要求:1种群大小为50;2交换位数为:
,其中
为个体基因数;2
3变异位数为4(固定不变);4交换的个数分别取:Nc20,28,36,44;5变异的个数分别取:Nm1,5,10,15;
二、求解分析及相关处理求解分析及相关处理
1个体编码基因数的确定
任务要求求解精度为小数点后4位,区间长度为10(10)20,所以将区间1010分为20×1042×105等份;又因为1310722172×105≤218262144,所以单变量编码的二进制串长至少需要18位,我们取单个个体基因数为18,在进行遗传算法的各个环节时,等效将两个变量的编码串接起来当做一个个体进行
f第2页
处理,则处理时个体基因数为
36,每次交换位数为
2数据处理
18。2
因为xy∈1010,精度为00001,为方便在MATLAB中对数据进行操作,避免小数和负数的问题,进行适当的数据处理,如(xy10)×10000,将自变量范围其转换到0,200000,再对个体进行编码。
3随机种群的产生
任务要求在20001个个体中随机产生50个个体作为初始种群,进行遗传算法的各个求解过程,运用matlab工具中的ra
d函数,在01之间产生符合随机分布的50个个体,进行数学运算和精度处理后转换到1010区间。
4随机交叉、变异个体的产生
在进行交叉、变异前将初始种群中的个体进行随机排序,交叉、变异时按从前到后的顺序对要求交叉、变异数目的个数的个体进行处理,等效随机选择过程。
5随机交叉、变异基因位的产生
分别产生长度为36(将两个变量串接后的基因位串数)的由若干0和1组成的数组,r