1、遗传算法工具箱使用实例1PPT课件遗传算法运算流程:遗传算法运算流程:Step 1Step 1:对遗传算法的运行参数进行赋值。参数包括种群规模、变量个数、交叉概率、变异概率以及遗传运算的终止进化代数。Step 2Step 2:建立区域描述器。求解变量的约束条件,设置变量的取值范围。Step 3Step 3:在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。Step 4Step 4:执行比例选择算子进行选择操作。Step 5Step 5:按交叉概率对交叉算子执行交叉操作。Step 6Step 6:按变异概率执行离散变异操作。Step 7Step 7:计算Step 6
2、得到局部最优解中每个个体的适应值,并执行最优个体保存策略。Step 8Step 8:判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果。2PPT课件遗传算法工具箱的使用遗传算法工具箱的使用在MATLAB命令行窗口输入gatool,打开遗传算法工具箱:3PPT课件Solver(Solver(求解器求解器) ):用于选择需要的算法。ProblemProblem:需要解决的问题。(1)Fitness function:需要优化的目标函数,填写的格式为:funname,其中funname.m是编写目标函数的M文件,返回一个具体数值。(2)Number of variabl
3、es:目标函数输入变量的数目。4PPT课件 ConstraintsConstraints(约束)(约束):(1)Linear inequalities线性不等式约束:表示为:A*x=b,填写矩阵A和向量b的信息。(2)Linear equalities线性等式约束:表示为:Aeq*x=beq,填写矩阵Aeq和向量beq的信息。(3)Bounds:填写独立变量的取值范围。在Lower中填写变量的取值下界,Upper中填写变量的取值上界,均以向量形式表示。(4)Nonlinear constraint function非线性约束函数:编写非线性约束函数的M文件nonlcon.m,则在此处填写non
4、lcon。5PPT课件RunsolverandviewresultsRunsolverandviewresults运行求解器并观察结果运行求解器并观察结果:点击Start即可开始运行遗传算法。Current iteration中将显示当前运行的代数。Final point栏中显示最优解对应的变量的取值。6PPT课件OptionOption部分是遗传算法参数的设定部分是遗传算法参数的设定:Population种群参数设定: Population type编码方式:有浮点编码和二进制编码,默认为Double vector。 Population size种群大小:默认为20,定义每一代种群的个体数
5、量。种群规模越大,遗传算法的运行速度越慢。 Creation function创建函数:创建初始种群。7PPT课件 Initial population初始种群,如果不指定初始种群,则系统将运用创建建函数创建初始种群。 Initial scores初始得分,如果此处没有定义初始得分,则系统应用适应度函数来计算初始得分。 Initial range初始范围,用于指定初始种群中的各变量的上下限。初始范围用一个矩阵表示,该矩阵行数为2,列数为变量的个数。其中第一行描述初始种群中变量的取值下限,第二行描述初始种群中变量的取值上限。8PPT课件Fitness scaling:变换适应度函数值的函数句柄。
6、Elite count:直接保留上一代的个体的个数。 Crossover fraction:交叉的概率。 Migration中,指定迁移的方向,概率,和频率。Stopping criteria中,指定结束条件。Generations和time limit指定代数和时间的最大极限。Fitness limit指定fitness值相差小于某一阈值时就可以收敛了。 Stall generation和stall time limit指经历多少代或多久,最优值都没有出现变化时即收敛。 Plot functions与图形输出有关,plot interval指定多少代输出一次,默认为1.best fitnes
7、s和best invividual表示将最优值和相应个体输出到图像上。 Display 通过command window输出到命令窗口。有off,final,interative,diagnose 4个选择。9PPT课件初始种群的生成函数:Functionpop=initializega(num,bounds,eevalFN,eevalOps,options)输出参数:输出参数:pop:生成的初始种群输入参数:输入参数:num:种群中的个体数目bounds:代表变量的上下界的矩阵eevalFN:适应度函数eevalOps:传递给适度函数的参数options:选择编码形式(浮点编码或二进制编码)
8、precision F_or_BPrecision:变量进行二进制编码时指定的精度,F_:选择浮点编码,_B:为二进制编码核心函数:核心函数:10PPT课件遗传算法函数:Functionx,endPop,bPop,traceInfo=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)输出参数:输出参数:x:求得的最优解endPop:最终得到的种群bPop:最优种群的一个搜索轨迹traceInfo :每一代种群的最优个体和均值输入参数:输入参数:bound
9、s :代表变量上下界的矩阵evalFN:适应度函数evalOps:传递给适应度函数的参数startPop:初始种群11PPT课件opts:选择编码形式(浮点编码或二进制编码) 1e-6 1 0 1e-6:变量进行二进制编码时指定的精度,1:选择浮点编码,0:为二进制编码termFN:终止函数的名称termOps:传递给终止函数的参数,一般为需要的遗传代数 selectFN:选择函数的名称selectOps:传递给选择函数的参数 xOverFNs:交叉函数名称表,以空格分开 xOverOps:传递给交叉函数的参数表mutFNs:变异函数表 mutOps:传递给交叉函数的参数表12PPT课件【问题
10、】求f(x)=x2-7*x+2; 的最小值,其中0=x=10【分析】选择二进制编码,二进制编码长度为20,交叉概率为0.95,变异概率为0.08%编写目标函数 function y=f(x) y=x2-7*x+2; %把上述函数存储为f.m文件并放在工作目录下 使用fplot(x2-7*x+2,0,10);画出目标函数,与遗传算法求出的最优解对比,验证是否正确。012345678910-15-10-50510152025303513PPT课件14PPT课件0102030405060708090100-11-10-9-8-7-6-5-4-3-2-1GenerationFitness valueB
11、est: -10.2183 Mean: -10.2173 Best fitnessMean fitness012345678910-15-10-505101520253035 遗传算法求出最小值为: x=3.322,y=-10.217315PPT课件【问题】求f(x)= 5*x+12*sin(3*x)+8*cos(7*x);的最小值,其中0=x=9【分析】选择二进制编码,二进制编码长度为20,交叉概率为0.95,变异概率为0.08%编写目标函数 function y=f(x) y=5*x+12*sin(3*x)+8*cos(7*x); %把上述函数存储为f.m文件并放在工作目录下 使用fplo
12、t(y=5*x+12*sin(3*x)+8*cos(7*x),0,9);画出目标函数,与遗传算法求出的最优解对比,验证是否正确。0123456789-20-1001020304050607016PPT课件17PPT课件 遗传算法求出最小值为: x=1.38,y=-10.9692 根据原函数可以看出求出的最优解与实际最优解基本相等。0102030405060708090100-15-10-50510GenerationFitness valueBest: -10.9692 Mean: -10.9692 Best fitnessMean fitness0123456789-20-100102030
13、4050607018PPT课件遗传算法是一种全局优化概率算法,主要的优点有遗传算法是一种全局优化概率算法,主要的优点有 :1.遗传算法对所求解的优化问题没有太多的数学要求,由于他的进化特性,搜素过程中不需要问题的内在性质,对于任意形式的目标函数和约束,无论是线性的还是非线性的,离散的还是连续的都可处理。 2.进化算子的各态历经性使得遗传算法能够非常有效地进行概率意义的全局搜索。 3.遗传算法对于各种特殊问题可以提供极大的灵活性来混合构造领域独立的启发式,从而保证算法的有效性。遗传算法相比较于精确算法存在以下缺点:遗传算法相比较于精确算法存在以下缺点:1.需要多次迭代,需要更长的时间来获得优解。2.可能无法获得最优解,只能获得伪最优解。19PPT课件