智能控制3-智能搜索算法
一、遗传算法(GA)
1.遗传算法的优化设计
(1)染色体的编码与解码——以二进制编码为例
编码:以
位二进制串表示区间 的数值,即在区间内取间隔均匀的 个数,将 区间均匀划分成 等份,定义该编码的精度为 解码:第
个二进制串对应的十进制为 ,则对应的数值为 其他编码方式:浮点编码法、符号编码法
(2)个体适应度函数
- 适应度函数表明个体的优劣性(适应度函数值越高,个体越优)。适应度函数值必须为非负值,因此适应度函数不完全等于目标函数(目标函数一般要求极小化,即目标函数越小,适应度函数值越高,个体越优),二者之间可能存在某种变换。常见的变换方式有线性尺度变换
,乘幂尺度变换 ,指数尺度变换 。 - 求解个体适应度:对个体染色体进行解码得到个体表现型,由个体表现型计算目标函数值,由目标函数值变换得出适应度(
)。
(3)遗传算子
选择算子——以赌轮盘法(比例选择法)为例
赌轮盘法:每个个体进入下一代的概率等于它的适应度与整个种群中个体适应度和的比例。如个体
的适应度为 ,则其进入下一代的概率为 其他选择算子:随机竞争选择、最佳保留选择
交叉算子——以单点交叉为例
- 单点交叉:对于配对的两条染色体,随机选取一个交叉位置,将两染色体交叉位置右侧的部分进行互换。
- 其他交叉算子:两点交叉、多点交叉、均匀交叉
变异算子——以基本位变异为例
基本位变异:对个体染色体随机指定某一位或某几位进行变异操作,以二进制串为例,若该位为1则变异为0,若该位为0则变异为1。
其他变异算子:均匀变异
(4)指定参数:种群大小
2.遗传算法的应用
(1)函数极值优化问题

- 注意:在一代种群产生下一代种群的过程中,选择阶段要产生等大小的种群,之后再对选择产生的这个种群按概率进行交叉与变异,从而产生下一代种群。
遗传算法的一般步骤:
- 第一步:确定决策变量及各种约束条件,即确定出个体的表现型
和问题的解空间 - 第二步:建立优化模型,即确定出目标函数的类型及数学描述形式或量化方法
- 第三步:确定表示可行解的染色体编码方法,即确定出个体的基因型
及遗传算法的搜索空间 - 第四步:确定个体适应度的量化评价方法,即确定出由目标函数值
到个体适应度函数 的转换规则 - 第五步:设计遗传算子,即确定选择运算、交叉运算和变异运算等遗传算子的具体操作方法
- 第六步:确定遗传算法的有关运行参数,即
、 、 、 等参数 - 第七步:确定解码方法,即确定出由个体表现型
到个体基因型 的对应关系或转换方法
: 利用遗传算法求如下函数的最大值:
问题1:用长度为10的二进制串表示两个决策变量
,该编码方式的精度是多少?个体
解码后得到的是多少?(前10位代表 ,后10位代表 ) 问题2:写出适应度函数和目标函数
问题3:给出一组遗传算法的运行参数
问题4:若使用单点交叉遗传算子,交叉点以
表示,以下两个体交叉后的基因型是什么 问题5:若使用基本位变异,变异位点以
表示,一下个体变异后的基因型是什么 解答:
问题1:编码精度
将个体转为十进制,问题2:由于函数值域非负,且求最大值,可将其直接作为适应度函数:
,将个体适应度的倒数取为目标函数: 问题3:种群大小
,最大迭代次数 ,交叉概率 ,变异概率 问题4:交叉后
问题5:变异后
(2)旅行商问题(TSP)
问题描述:已知
个城市间的相互距离,现有一旅行商必须遍访这 个城市,并且每个城市只能访问一次,最后又必须返回出发城市。问如何安排他对这些城市的访问次序,使其旅行路线总长度最短。 TSP的编码:以巡回旅行路线所经过的各个城市的顺序排列描述旅行路线,编码采用
进制编码,即每个基因仅从1到 的整数里去一个值,个体长度为 。 适应度函数:目标函数为样本的路径长度
适应度函数取目标函数的倒数
: 和传统的优化方法相比,进化计算方法的特点是什么,结合实际的例子说明其主要机制上的创新与贡献,并分析其智能特性。
解答:
当和传统的优化方法相比,进化计算方法具有以下几个特点:
- 应用范围广泛:进化计算方法适用于各种不同类型的优化问题,包括连续型、非连续型、离散型、多目标等问题。
- 全局寻优能力强:进化计算方法通过群体智能的方式进行搜索,避免了传统优化方法容易陷入局部最优解的问题,有更好的全局寻优能力。
- 鲁棒性强:进化计算方法对初始状态的依赖较小,可以自适应地调整参数以适应不同的问题。
- 可并行化实现:进化计算方法的计算过程可以分布式地进行,因此具有很好的可并行性。
下面结合一个实际的例子来说明进化计算方法的主要机制上的创新与贡献:
遗传算法(Genetic Algorithm)是一种基于生物进化理论的进化计算方法,其主要思想是将待优化问题转换为染色体编码,利用遗传操作(如选择、交叉、变异)模拟生物进化过程,在进化的过程中不断筛选出适应度更高的个体,并不断更新种群,最终找到满足要求的最优解。
遗传算法在多个领域都有广泛应用,例如图像处理、机器学习、金融风险控制等。其中,图像处理中的边缘检测问题可以看作是一个优化问题,将图像的灰度值分布转换为染色体编码,进而使用遗传算法搜索最优的灰度值阈值,以实现精准的边缘检测。
与传统的优化方法相比,遗传算法具有以下创新和贡献:
- 采用种群的方式进行搜索,可以避免陷入局部最优解的问题,并且具有全局寻优能力。
- 通过遗传操作模拟生物进化过程,具有更好的适应度评估能力和适应度函数的构建方法。
- 可以自适应地调整参数以适应不同的问题,同时也可以并行化实现,提高了计算效率。
- 其中包含的随机性质可以增加算法的多样性,提高算法的鲁棒性。
总的来说,进化计算方法的智能特性主要体现在其具有群体智能、自适应性、可并行性和鲁棒性等方面,在解决各种复杂优化问题时展现出强大的搜索能力和求解能力。
二、粒子群优化算法(PSO)
1.粒子群算法的优化设计
(1)原理
粒子群算法是模拟鸟群觅食行为而发展起来的随机搜索算法,每只鸟都能记住它曾经飞过离食物最近的位置,同时可以知道整个鸟群中曾经飞过的离食物最近的位置。这样,经过一段时间它们就能找到食物。
(2)编码
粒子群算法中每一个可行解对应一个粒子(鸟/个体),粒子直接使用实数编码,对于
(3)适应度函数
粒子群算法的适应度函数和目标函数同遗传算法,适应度函数值越大、目标函数值越小,粒子越优。(粒子群算法适应度函数无非负要求,因为该算法无选择过程)
(4)指定参数:粒子数
2.粒子群算法的步骤

粒子群算法的一般步骤:
第一步:初始化
第二步:个体评价
第三步:更新粒子的速度和位置,并对粒子的速度和位置进行越界检查
其中分别代表第 个粒子在第 轮的位置和速度, 为0到1的随机数, 代表第 个粒子截至第 轮的个体最优(个体的历史最佳), 全局最优代表整个种群的最优解。 - 注意:为避免陷入局部最优,有时使用局部最优
代替全局最优 ,局部粒子的选取可使用环形邻域法
- 注意:为避免陷入局部最优,有时使用局部最优
第四步:比较粒子的当前适应度值和自身历史最优,如果当前适应度值优于历史最优,则更新位置,否则不更新
第五步:更新全局最优
第六步:检查结束条件,若满足,则结束寻优,否则转至第三步
三、差分进化算法(DE)

指定参数:变异因子
,交叉因子 ,群体规模 ,迭代次数 生成初始种群,对于个体
其中分别是上界和下界。 变异操作
其中为3个不同的随机个体,称 为差异化向量。如无局部优化, 可指定选为当代种群中最好的个体。 交叉操作
选择操作
: 说明遗传算法、粒子群算法和差分进化的区别。
解答:
- 算法思路:
- 遗传算法:基于自然选择和遗传学中的基本原理,通过模拟生物进化的过程进行全局优化。适合于多峰函数等非线性、非凸优化问题。
- 粒子群算法:基于鸟群捕食行为的群体智能算法,通过不同个体之间信息共享和相互影响来收敛到最优解。适合于连续空间优化问题。
- 差分进化算法:通过引入差分变异操作和基于目标向量的选择策略来实现搜索,寻找最优解。适合于高维、非线性、多峰优化问题。
- 算法流程:
- 遗传算法:将问题转化为染色体编码形式,通过选择、交叉和变异等基本遗传操作对个体进行演化迭代,直至得到最优解。
- 粒子群算法:通过初始化粒子位置和速度,根据各自的历史最优解和全局最优解进行位置更新,以达到搜索最优解的目的。
- 差分进化算法:随机生成初始种群,通过差分变异、选择等操作来产生新一代种群,并不断迭代求解最优解。
- 个体表达方式:
- 遗传算法:将问题转化为染色体编码形式,如二进制编码、格雷编码等。
- 粒子群算法:采用连续值编码,在多维连续空间内寻找最优解。
- 差分进化算法:使用实数向量或者整数向量编码表示每个个体。
- 收敛性能:
- 遗传算法:具有较好的全局搜索能力,但可能陷入局部最优解。
- 粒子群算法:具有较快的收敛速度,但可能会陷入局部最优解。
- 差分进化算法:具有较强的全局搜索和局部优化能力,且具有很好的稳定性和收敛速度。
- Title: 智能控制3-智能搜索算法
- Author: OwwO99
- Created at: 2023-09-12 23:49:36
- Updated at: 2023-09-12 23:55:03
- Link: https://redefine.ohevan.com/2023/09/12/2023-9-12-智能控制3-智能搜索算法/
- License: This work is licensed under CC BY-NC-SA 4.0.