-
许多求解全局优化问题方法可分
- 确定型 目标函数有为数不多的极值点时,确定型表现出较高计算效率。但也暴露算法复杂,对目标函数性质要求高,可靠性差等特点
- 非确定型/启发算法 如随机搜索、蒙特卡罗、模拟退火
-
仿生类算法
- 仿生过程算法 模拟退火 粒子群算法 蚁群算法
- 仿生结构算法 神经网络 遗传算法
模拟退火算法
原理解释
- 模拟退火算法得益于材料的统计力学的研究成果。统计力学表明材料中粒子的不同结构对应于粒子的不同能量水平。在高温条件下,粒子的能量较高,可以自由运动和重新排列。在低温条件下,粒子能量较低。如果从高温开始,非常缓慢地降温(这个过程被称为退火),粒子就可以在每个温度下达到热平衡。当系统完全被冷却时,最终形成处于低能状态的晶体
- 如果用粒子的能量定义材料的状态,Metropolis 算法用一个简单的数学模型描述了退火过程。假设材料在状态i 之下的能量为 E(i) ,那么材料在温度T 时从状态i 进入状态 j 就遵循如下规律:
(1)如果 E( j) ≤ E(i) ,接受该状态被转换。
(2)如果 E( j) > E(i) ,则状态转换以如下概率被接受:
其中 K 是物理学中的波尔兹曼常数,T 是材料温度。
- 在某一个特定温度下,进行了充分的转换之后,材料将达到热平衡。这时材料处于状态i 的概率满足波尔兹曼分布:
其中 x 表示材料当前状态的随机变量, S 表示状态空间集合。
其中| S | 表示集合 S 中状态的数量。这表明所有状态在高温下具有相同的概率。而当温度下降时,
上式表明当温度降至很低时,材料会以很大概率进入最小能量状态。
数模中的应用 - 假定我们要解决的问题是一个寻找最小值的优化问题。将物理学中模拟退火的思想应用于优化问题就可以得到模拟退火寻优方法。
遗传算法
遗传算法(Genetic Algorithms,简称 GA)是一种基于自然选择原理和自然遗传机制的搜索(寻优)算法,它是模拟自然界中的生命进化机制,在人工系统中实现特定目标的优化。
遗传算法的实质是通过群体搜索技术,根据适者生存的原则逐代进化,最终得到最优解或准最优解
它必须做以下操作:初始群体的产生、求每一个体的适应度、根据适者生存的原则选择优良个体、被选出的优良个体两两配对,通过随机交叉其染色体的基因并随机变异某些染色体的基因后生成下一代群体,按此方法使群体逐代进化,直到满足进化终止条件。
实现方法如下:
(1) 根据具体问题确定可行解域,确定一种编码方法,能用数值串或字符串表示
可行解域的每一解。
(2) 对每一解应有一个度量好坏的依据,它用一函数表示,叫做适应度函数。
(3) 确定进化参数群体规模 M 、交叉概率
p
c
p_c
pc 、变异概率
p
m
p_m
pm、进化终止条件。
遗传算法的五个基本要素:参数编码、初始群体设定、适应度函数的设计、遗传操作设计、控制参数设定
编码:将可行解抽象成基因
解码:将基因还原成可行解
禁忌搜索算法
建议参考学习https://blog.csdn.net/qq_44186838/article/details/109270374
- 组合优化算法的一种,局部算法的扩展。采样禁忌技术(禁止重复前面的工作)
- 涉及概念:禁忌表(Tabu List,TL)、禁忌对象(Tabu Object,TO)、禁忌期限(Tabu Tenure,TT)、渴望准则(Aspiration Criteria,AC)
- 基本流程:
- 禁忌搜索算法在初始化的时候,在搜索空间随机生成一个初始解 i,禁忌表H置空,当前解i记为历史最优解 s,然后进入迭代的搜索过程。在每一次迭代中,都从当前的解i出发,在当前禁忌表H的限制下,构造出解i的邻域A,然后从A中选出适应值最好的解 j 来替换解 i,同时更新禁忌表H。在解 j 替换解 i 之后,如果解 i 的质量得到改善,那么历史最优的解 s 将被解 i 替换;否则,s 保持不变,即使解 i 虽然暂时变差了,但是由于扩大了搜索空间,仍有利于跳出局部最优。得到了新的当前解 i 之后,算法返回迭代的开始继续进行,直到找到最优解或者运行了一定的迭代次数等终止条件的时候结束算法。
蒙特卡罗/Monte Carlo方法(随机性模拟算法/统计试验法)
-
通过计算机仿真来解决问题的算法,同时可以通过模拟可以自己检验模型正确性
-
求解原函数较为复杂的情况
解释例子:求圆周率
将一个圆用正方形包裹,向其整个正方形中投点,算内部圆面积与正方形面积之比,用于估算圆周率 -
做蒙特卡罗,求解积分的一般形式是
-
f(x) 表示被积函数,另一个表示概率密度
群智能优化算法
蚁群算法(ant colony optimization,ACO)
- 又称蚂蚁算法,具有分布计算、信息正反馈和启发式搜索的特征,本质上是启发式全局优化算法
原理
蚂蚁运动过程中,在路径上留下信息素(有挥发性),用以指导运动方向。信息素浓度与路径长度成反比。蚂蚁选择信息素浓度高的路径,信息素在路径上的积累形成信息正反馈,最终找到最优寻食路径。
步骤
- 参数初始化
- 蚁群规模m 一般为目标数1.5倍
- 信息素重要程度因子α 取[0,5] 浓度的重要程度
- 启发函数重要程度因子β 取[0,5] 信息素在指导路径搜索的重要程度
- 信息素挥发因子 p 取[0.2,0.5]
- 信息素释放总量/信息素常数Q [10,1000]蚂蚁循环一周在路径上的信息素
- 最大迭代次数 取[100,500] 建议200
- 创建解空间
- 更新信息素
- 根据更新的方法不同可分以下三种
- 蚁周模型 完成一次路径循环后,蚂蚁才释放信息素
- 蚁量模型
- 蚁密模型
- 终止判断 达到迭代次数时即更新 迭代:m只蚂蚁都走完m个搜索路径。将所有路径进行比较,选择长度最短的路径,更新信息素
随机将蚂蚁放于不同的出发点,对每个蚂蚁计算其下个访问城市的概率,用轮盘赌法进行选择移动。直到访问完毕。
第i只蚂蚁到j个目标城市的概率。 Pij=Tijα/Dijβ
Tij表示第i个目标到j个目标直接的信息素
Dij表示第i个目标到j个目标直接的距离
计算各蚂蚁经过的路径长度Lk,找出最优解
更新信息素 新信息素=(1-p)*原信息素+新增信息素
t时刻蚂蚁在路径上留下的信息素=Q/L
评价
- 优点:
- 求解性能上有较强鲁棒性和搜索较好解的能力
- 是基于种群的进化算法,易于并行实现
- 容易与多种启发算法结合
- 缺点:
- 收敛速度慢
- 参数设置很重要
- 循环次数少容易陷入局部循环
粒子群(Particle Swarm Optimization,PSO)
- 基于鸟类觅食提出的算法,由于没有遗传算法的交叉、变异、更容易实现
一群鸟儿在寻找食物。算法基础:信息的社会共享 - 已知
- 这块区域里只有一个食物源
- 所有的鸟都不知道食物在哪
- 他们能感受到当前位置离食物多远
步骤
-
参数初始化
- 鸟群看作粒子群,D维的目标搜索空间中,有N个例子组成一个群体
- 第i个粒子表示为一个D维向量 Xi
- 第i个粒子的飞行速度也为一个D维向量 Vi
- 第i个粒子的最好位置记为 P b e s t P_{best} Pbest
- 整个粒子群搜索到的最好位置记为 b b e s t b_{best} bbest
-
个体极值与全局最优
-
更新鸟群速度和位置
-
循环终止
改进方向
- 增加惯性权重
- 自适应权重-增加收缩因子
- 权重线性递减-随机权重策略
人工鱼群
- 通过三大系统(感知、行为、参数)模仿鱼群觅食、聚群及追尾行为,从而实现全局 最优