GATBX遗传算法工具箱函数及实例讲解

本文详细介绍了遗传算法的基本原理及其在解决轨道交通与常规公交运营协调模型问题上的应用流程。通过设置区域描述器、选择适应度函数等步骤,实现问题的有效求解。同时,提供了运用Matlab遗传算法工具箱的实例,包括参数设置、适应度函数编写以及遗传算法参数的优化策略。最后,通过具体求解模型展示了遗传算法在实际问题解决中的高效性和灵活性。

基本原理:

遗传算法是一种典型的启发式算法,属于非数值算法范畴。它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化进行不断演化,直到满足期望的终止条件。

运算流程:

Step 1:对遗传算法的运行参数进行赋值。参数包括种群规模、变量个数、交叉概率、变异概

率以及遗传运算的终止进化代数。

Step 2:建立区域描述器。根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。

Step 3:在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。

Step 4:执行比例选择算子进行选择操作。

Step 5:按交叉概率对交叉算子执行交叉操作。

Step 6:按变异概率执行离散变异操作。

Step 7:计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。

Step 8:判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果。

运用遗传算法工具箱:

运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库。目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学开发的遗传算法工具箱GATBX、GAOT以及Math Works公司推出的GADS。实际上,GADS就是大家所看到的Matlab中自带的工具箱。我在网上看到有问为什么遗传算法函数不能调用的问题,其实,主要就是因为用的工具箱不同。因为,有些人用的是GATBX带有的函数,但MATLAB自带的遗传算法工具箱是GADS,GADS当然没有GATBX里的函数,因此运行程序时会报错,当你用MATLAB来编写遗传算法代码时,要根据你所安装的工具箱来编写代码。

以GATBX为例,运用GATBX时,要将GATBX解压到Matlab下的toolbox文件夹里,同时,set path将GATBX文件夹加入到路径当中。

例子:

这块内容主要包括两方面工作:1、将模型用程序写出来(.M文件),即目标函数,若目标函数非负,即可直接将目标函数作为适应度函数。2、设置遗传算法的运行参数。包括:种群规模、变量个数、区域描述器、交叉概率、变异概率以及遗传运算的终止进化代数等等。

求解模型:   f(x)=x*sin(10*pi*x)+2.0,x的范围在【-1,2】

根据上面的求解模型,可以写出模型的.M文件如下,即适应度函数

function z=shang(x)
z=x.*sin(10*pi*x)+2.0;

然后写入遗传算法的参数:

figure(1);
fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);   %画出函数曲线
NIND=40;        %个体数目(Number of individuals)
MAXGEN=25;      %最大遗传代数(Maximum number of generations)
PRECI=20;       %变量的二进制位数(Precision of variables)
GGAP=0.9;       %代沟(Generation gap)
trace=zeros(2, MAXGEN);                        %寻优结果的初始值
FieldD=[20;-1;2;1;0;1;1];                      %区域描述器(Build field descriptor)
Chrom=crtbp(NIND, PRECI);                      %初始种群
gen=0;                                         %代计数器
variable=bs2rv(Chrom, FieldD);                 %计算初始种群的十进制转换
ObjV=shang(variable);        %计算目标函数值
while gen<MAXGEN
   FitnV=ranking(-ObjV);                                  %分配适应度值(Assign fitness values)         
   SelCh=select('sus', Chrom, FitnV, GGAP);               %选择
   SelCh=recombin('xovsp', SelCh, 0.7);                   %重组
   SelCh=mut(SelCh);                                      %变异
   variable=bs2rv(SelCh, FieldD);                         %子代个体的十进制转换
   ObjVSel=shang(variable);             %计算子代的目标函数值
   [Chrom ObjV]=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); %重插入子代的新种群
   variable=bs2rv(Chrom, FieldD);
   gen=gen+1;                                             %代计数器增加
   %输出最优解及其序号,并在目标函数图像中标出,Y为最优解,I为种群的序号
   [Y, I]=max(ObjV);hold on;
   plot(variable(I), Y, 'bo');
   trace(1, gen)=max(ObjV);                               %遗传算法性能跟踪
   trace(2, gen)=sum(ObjV)/length(ObjV);
end
variable=bs2rv(Chrom, FieldD);                            %最优个体的十进制转换
hold on, grid;
plot(variable,ObjV,'b*');
figure(2);
plot(trace(1,:));
hold on;
plot(trace(2,:),'-.');grid
legend('解的变化','种群均值的变化')

MATLAB工具箱介绍-GATBX遗传算法工具箱.txt 序号工具箱备注数学、统计与优化1Symbolic Math Toolbox符号数学工具箱2Partial Differential Euqation Toolbox偏微分方程工具箱3Statistics Toolbox统计学工具箱4Curve Fitting Toolbox曲线拟合工具箱5Optimization Toolbox优化工具箱6Global Optimization Toolbox全局优化工具箱7Neural Network Toolbox神经网络工具箱8Model-Based Calibration Toolbox基于模型矫正工具箱信号处理与通信9Signal Processing Toolbox信号处理工具箱10DSP System ToolboxDSP[size= 0]系统工具箱11Communications System Toolbox通信系统工具箱12Wavelet Toolbox小波工具箱13Fixed-Point Toolbox定点运算工具箱14RF Toolbox射频工具箱15Phased Array System Toolbox相控阵系统工具箱控制系统设计与分析16Control system Toolbox控制系统工具箱17System Indentification Toolbox系统辨识工具箱18Fuzzy Logic Toolbox模糊逻辑工具箱19Robust Control Toolbox鲁棒控制工具箱20Model Predictive Control Toolbox模型预测控制工具箱21Aerospace Toolbox航空航天工具箱图像处理与计算机视觉22Image Processing Toolbox图像处理工具箱23Computer Vision System Toolbox计算机视觉工具箱24Image Acquisition Toolbox图像采集工具箱25Mapping Toolbox地图工具箱测试与测量26Data Acquisition Toolbox数据采集工具箱27Instrument Control Toolbox仪表控制工具箱28Image Acquisition Toolbox图像采集工具箱29OPC ToolboxOPC[size= 0]开发工具30Vehicle Network Toolbox车载网络工具箱计算金融31Financial Toolbox金融工具箱32Econometrics Toolbox计算经济学工具箱33Datafeed Toolbox数据输入工具箱34Fixed-Income Toolbox固定收益工具箱35Financial Derivatives Toolbox衍生金融工具箱计算生物33Bioinformatics Toolbox生物信息工具箱34SimBiology生物学工具箱并行计算35Parallel Computing Toolbox并行计算工具箱36MATLAB Distributed Computing ServerMATLAB[size= 0]分布式计算服务器数据库访问与报告37Database Toolbox数据库工具箱38MATLAB Report Generator MATLAB[size= 0]报告生成MATLAB[size= 0]代码生成39MATLAB CoderMATLAB[size= 0]代码生成40Filter Design HDL Coder[size= 0]滤波器设计HDL[size= 0]代码生成MATLAB[size= 0]应用发布41MATLAB CompilerMATLAB[size= 0]编译器 混合编程42MATLAB Builder NEfor Microsoft.Net Framework43MATLAB Builder JAfor Java Language44MATLAB Builder EXfor Microsoft Excel45Spreadsheet Link EXfor Microsoft Excel Simulink模块 序号工具箱备注信号处理与通信1DSP System ToolboxDSP[size= 0]系统工具箱2Communications System Toolbox通信系统工具箱3Computer Vision System Toolbox 计算机视觉工具箱4SimRFRF [size= 0]模块集功能控制系统设计与分析5Simulink Control DesignSimulink [size= 0]控制器设计6Simulink Design Optimization Simulink [size= 0]设计优化7Aerospace Blockset 航空航天模块物理建模8Simscape物理模型仿真模块组9SimMechanics机构动态仿真模块组10SimDriveline传动系统系统仿真模块组11SimHydraulics液压仿真模块组12SimRFRF[size= 0]仿真模块组13SimElectronics电子仿真模块组14SimPowerSystems动力系统仿真模块组基于事件的建模15Stateflow16SimEvents快速原型和硬件再回路仿真17xPC Target18xPC Target Embedded Option19Real-Time Windows Target仿真绘图与报告20Simulink 3D Animation21Gauges Blockset22Simulink Report Generator验证、确认和测试23Simulink Verfication and Validation24Simulink Design Verifier25System Test26EDA Simulator Link27Simulink Code Inspector定点建模28Simulink Fixed Point代码生成29Simulink Coder30Embedded Coder31Simulink HDL Coder32Simulink PLC Coder33Do Qualification Kitfor DO-17834IEC Certification Kitfor ISO 26262 and IEC 61508
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值