遗传算法工具箱使用实例幻灯片

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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