当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 采用MATLAB的遗传算法,利用强大的数学计算能力和遗传工具箱,在全局搜索空间内寻找极值点,能够有效地对多元多峰值函数进行优化,避免了利用传统优化方法在多元多峰值函数优化过程中陷入局部极值点的优化误区。同时简要介绍了遗传算法的特点、流程和优化工具箱,通过实际编程优化,说明基于MATLAB的遗传算法是一种具有良好的全局寻优的优化工具。
关键词: 遗传算法;全局寻优;多元多峰值函数优化

多元多峰值函数[1-2]在定义域内有多个局部极值点,许多传统的优化方法都是单点搜索,这种点对点的搜索方法,对于多元多峰值函数的搜索空间常常会陷入局部的某个单峰的极值点。相反,遗传算法同时对群体中多个个体进行并行处理[3],即同时对搜索空间中的多个解进行评估,在搜索过程中能以很大的概率找到全局最优。遗传算法提供了一种求解非线性、多模型、多目标等复杂系统优化问题的通用框架,它不依赖问题领域的具体性,已广泛应用于众多工程领域,用以解决多变量、多目标、多峰值等约束的优化问题。
1 遗传算法
1.1 遗传算法的优点
(1)遗传算法采用不确定性规则,强调利用概率转换规则[4]来引导搜索过程;
(2)遗传算法随机产生多个初始点,通过选择、交叉和变异三种遗传操作产生下一代种群;
(3)遗传算法具有较高的搜索能力和极强的鲁棒性;
(4)遗传算法采用概率的变迁规则来指导其搜索方向[5],对一个被编码的参数空间进行高效搜索;
(5)遗传算法是一个多学科相结合与渗透的产物,其研究方向极其广泛。
1.2 遗传算法运算流程
完整的遗传算法的运算流程可以用图1来描述。可以看出,使用上述三种遗传算子(选择、交叉和变异)的遗传算法的主要运算过程如下:

(1)编码:遗传算法在进行搜索之前先将解空间的解数据表示成遗传空间的基因型串结构数据,这些串结构数据的不同组合就构成了不同的点。
(2)初始群体的生成:随机产生N个初始串结构数据,每个串结构数据成为一个个体,N个个体构成一个群体。设置进化代数计算器t(t>0)和最大进化代数T。
(3)适应度值评价检测:根据具体问题,计算群体P(t)中各个个体的适应度。
(4)对群体中的个体施加遗传操作:将选择、交叉和变异三种遗传算子作用于群体,实现群体内个体结构的重组处理。
(5)终止条件判断:若t≤T,则t←t+1,转到步骤(2);若t>T,则以进化过程中所得到的具有最大适应度的个体作为最优解输出,终止运算。
2 基于MATLAB遗传工具箱的多元多峰值优化
遗传算法工具箱使用MATLAB矩阵函数为实现广泛领域的遗传算法建立了一套通用工具,这个遗传算法工具是用M文件写成的命令行形式的函数,是完成遗传算法大部分重要功能的程序集合[6-8]。
MATLAB遗传工具箱主要参数含义:
(1)“@fitnessfcn”:计算适应度函数值的M文件的函数句柄;
(2)“nvars”:适应度函数中独立变量的个数;
(3)“x”:最终值的到达点;
(4)“fval”:适应度函数在x点的值;
(5)“reason”:算法停止的原因(可选项);
(6)“output”:包含关于算法在每一代性能的结构体(可选项);
(7)“population”:最后种群(可选项);
(8)“option”:一个包含遗传算法选项参数的结构体(可选项)。
如果不设置选项函数,则遗传算法使用其本身自带的缺省选项值。该参数结构体的自带默认值分别为:种群规模为20,最大代数为100,选择概率为0.8,交叉概率为0.5,变异概率为0.2。也可通过gaoptimset函数改变默认值,以达到使用者的需求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

数值计算方法是一种用于解决数学问题的方法,涉及到数值近似、数值逼近、数值积分、数值微分等等。算法设计是数值计算方法的核心,它包括了数值方法的数学原理和计算机实现的算法,能够有效地解决各种数学问题。

关键字: matlab 算法设计 数值积分

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。

关键字: python 函数 对象编程

仿真的基本思想是利用物理的或数学的模型来类比模仿现实过程,以寻求过程和规律。它的基础是相似现象,相似性一般表现为两类

关键字: matlab 程序仿真 仿真模式

本文利用Matlab GUI设计通过串口进行数据发送和接收的界面,并利用内置于Matlab的串口通信API实现串口数据发送与接收功能。

关键字: matlab GUI 串口通信

信号处理工程师在开发工作的所有阶段都使用 MATLAB® 和 Simulink® — 从分析信号和探索算法,到评估设计实现的权衡,最终构建实时信号处理系统。

关键字: matlab 通信系统

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

关键字: matlab 程序设计 计算机视觉

表示机器的浮点运算误差限,在Matlab仿真实验开发中,eps的精度达到2.2204*10^-6,当运算的误差精度下于这个数值的时候,可以认为误差为零。

关键字: matlab 控制系统 Matlab仿真

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

关键字: matlab 工具箱 信号处理

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

Matlab是matrix laboratory的组合,意为矩阵实验室,软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

关键字: matlab 编程语言 数值分析
关闭
关闭