【优化】智能优化算法(Matlab端)

本文介绍了三种在Matlab平台上实现的智能优化算法:免疫算法受生物免疫系统启发,通过抗体亲和度搜索最优解;蚁群算法模拟蚂蚁行为,利用信息素引导路径选择;粒子群算法借鉴鸟群觅食,通过群体协作寻觅最优解。每种算法详细阐述了步骤和原理。
摘要由CSDN通过智能技术生成

 系列博客:

理论:【优化】智能优化算法(Matlab端)-CSDN博客

代码:【优化】智能优化算法(Matlab端)-CSDN博客

为了解决参数优化问题,学习以下三种智能优化算法:

1.免疫算法

2.蚁群优化算法

3.粒子群算法

1.免疫算法

(受生物免疫系统的启发而推出的一种新型的智能搜索算法,采用群体搜索策略,通过迭代计算,最终以较大的概率得到问题的最优解)

  • 待优化问题——免疫应答中的抗原
  • 可行解——抗体
  • 可行解质量 ——免疫细胞与抗原的亲和度

相对于其他算法,免疫算法利用自身产生多样性和维持机制的特点,保证了种群的多样性,克服了一般寻优过程(特别是多峰值的寻优过程)的不可避免的“早熟”问题,可以求得全局最优解。

 算法步骤:

(1)首先进行抗原识别,即理解待优化的问题,对问题进行可行性分析,提取先验知识,构造出合适的亲和度函数,并制定各种约束条件。
(2)然后初始化抗体群,通过编码把问题的可行解表示成解空间中的抗体,在解的空间内随机产生一个初始种群。
(3)对种群中的每一个可行解进行亲和度评价。(记忆单元的更新:将与抗原亲和性高的抗体加入到记忆单元,并用新加入的抗体取代与其亲和性最高的原有抗体(抗体和抗体的亲和性计算))
(4)判断是否满足算法终止条件;如果满足条件则终止算法寻优过程,输出计算结果;否则继续寻优运算。
(5)计算抗体浓度和激励度。(促进和抑制抗体的产生:计算每个抗体的期望值,抑制期望值低于阈值的抗体;可以知道与抗原间具有的亲和力越高,该抗体的克隆数目越高,其变异率也越低)
(6)进行免疫处理,包括免疫选择、克隆、变异和克隆抑制。
    免疫选择:根据种群中抗体的亲和度和浓度计算结果选择优质抗体,使其活化;
    克隆:对活化的抗体进行克隆复制,得到若干副本;
    变异:对克隆得到的副本进行变异操作,使其发生亲和度突变;
    克隆抑制:对变异结果进行再选择,抑制亲和度低的抗体,保留亲和度高的变异结果。
(7)种群刷新,以随机生成的新抗体替代种群中激励度较低的抗体,形成新一代抗体,转步骤(3)。

2.蚁群算法 

模拟自然界中蚂蚁集体寻径行为而提出的一种基于种群的启发式搜索算法。蚂蚁的集体行为构成信息素的正反馈过程,蚁群会找出最优路径。

(蚂蚁在运动过程中,能够在它所经过的路径上留下信息素进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此来指导自己的运动方向。初始阶段,环境中没有信息素的遗留,蚂蚁寻找事物完全是随机选择路径,随后寻找该事物源的过程中就会受到先前蚂蚁所残留的信息素的影响,其表现为蚂蚁在选择路径时趋向于选择信息素浓度高的路径。同时,信息素是一种挥发性化学物,会随着时间的推移而慢慢地消逝。如果每只蚂蚁在单位距离留下的信息素相同,那对于较短路径上残留的信息素就相对较高,这被后来的蚂蚁选择的概率就将大,从而导致这条短路径上走的蚂蚁就越多。而经过的蚂蚁越多,该路径上残留的信息素就将更多)

算法步骤:

(1)初始化参数:开始时每条边的信息素量都相等
(2)将各蚂蚁放置各顶点,禁忌表为对应的顶点。
(3)蚂蚁个体根据状态转移概率计算转移概率选择下一个顶点,更新禁忌表,再计算概率,再选择顶点,再更新禁忌表,直至遍历所有顶点1次。
(4)计算该只蚂蚁留在各边的信息素量,该蚂蚁死去。
(5)重复(3)~(4),直至所有蚂蚁都周游完毕。
(6)计算各边的信息素增量和信息素量。
(7)记录本次迭代的路径,更新当前的最优路径,清空禁忌表。
(8)判断是否达到预定的迭代步数,或者是否出现停滞现象。若是,算法结束,输出当前最优路径;否则,转(2),进行下一次迭代。

 3.粒子群算法

(源于对鸟群觅食行为的研究)

  • 每个粒子可视为N维搜索空间中的一个搜索个体,粒子的当前位置即为对应优化问题的一个候选解,粒子的飞行过程即为该个体的搜索过程。
  • 粒子的飞行速度可根据粒子历史最优位置和种群历史最优位置进行动态调整。粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。
  • 每个粒子单独搜寻的最优解叫做个体极值,粒子群中最优的个体极值作为当前全局最优解。

不断迭代,更新速度和位置。最终得到满足终止条件的最优解。

(一群鸟在区域中随机搜寻食物,在这个区域里只有一块食物,所有的鸟知道自己当前位置离食物多远,那么搜索的最简单有效的策略就是搜索目前离食物最近的鸟的周围区域。)

算法步骤:

(1)初始化粒子群,包括群体规模N,每个粒子的位置xi和速度vi
(2)计算每个粒子的适应度fit[i]
(3)对每个粒子,用它的适应度值fit[i]和个体极值pbest(i)比较。如果fit[i]小于pbest(i),则用fit[i]替换掉pbest(i)
(4)对每个粒子,用它的适应度值fit[i]和全局极值gbest(i)比较。如果fit[i]小于gbest(i),则用fit[i]替换掉gbest(i)
(5)迭代更新粒子的位置xi和速度vi
(6)进行边界条件处理
(7)判断算法终止条件是否满足:若是,则结束算法并输出优化结果;否则返回(2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值