算术优化算法(AOA)
1) 算法简介
-
算术优化算法(Arithmetic Optimization Algorithm, AOA)是一种根据算术操作符的分布特性实现全局寻优的元启发式优化算法。
-
乘除运算提高位置更新的全局分散性
-
加减运算提高位置更新在局部区域的精确性
-
-
于2021年由Abualigah等人提出
-
具有收敛速度快,精度高等特点
算术优化算法(Arithmetic Optimization Algorithm, AOA)是一种根据算术操作符的分布特性实现全局寻优的元启发式优化算法。
乘除运算提高位置更新的全局分散性
加减运算提高位置更新在局部区域的精确性
于2021年由Abualigah等人提出
具有收敛速度快,精度高等特点
主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,将我们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量。实际上是一种降维的方法。
p个随机变量$X_1,…,X_p$,其线性组合构成一个可能的主成分:$c_1X_1+\cdots+c_pX_p$(说白了就是一个旋转平移的变换)。如果能使$Var(c_1X_1+\cdots+c_pX_p)$达到最大,则能最大程度的保留信息。通常还要加限制:$c_12+\cdots+c_p2=1$,在此约束下求最优解。易见这个解是一个p维单位向量(这样可以构成一个旋转矩阵)。
这样找到一个解的话就获得了一个主成分。然而一个主成分不足以代表原有的p个变量,因此还需要寻找更多个。这些主成分不应该有重叠的信息,统计上的描述就是让两两主成分的协方差为零,几何上就是两两主成分的方向正交。
出于将认识的对象按照一些特征进行分类的必要,聚类分析(cluster analyses)作为一种定量方法,将从数据分析的角度,给出一个更准确、细致的分类工具。
因为要对对象在数量的角度进行分类,所以要引入相似性的概念。相似的东西会被归为一类,这是自然的思想。如果对于一群有待分类的样本点需用$p$个变量描述,则每个样本点可以看成是$R^p$空间中的一个点。因此,很自然地想到可以用距离来度量样本点间的相似程度。
栈和队列是限定插入和删除只能在表的“端点”进行的线性表。
栈:其特点可以概括为“后进先出”。生活中比如手电筒的电池、手枪的弹匣等都可以视作“栈”,插入从尾部,删除也从尾部。(从一端插入和删除)
队列:特点为“先进先出”,比如排队时最前面的人是最早来到这个队列也将最先离开队伍,插入从队尾插入,删除从队头删除。(从两端)
由于这两类结构分别所具有的这些特性在某些问题求解过程中也出现,故算法中也应利用“栈和队列”。
将固体加温至充分高,再让其缓慢降温。升温时,固体内部的粒子随升温变为无序且活跃的状态,内能增大;降温时,粒子趋于惰性有序,在每个温度都达到平衡的状态,最后在常温时达到基态,内能降为最小。
这个降温的过程也就是退火。受此物理背景的启发,结合统计的知识,模拟退火算法的思想逐渐产生。
固体退火的物理过程和统计性质:
加温:随温度升高,粒子能量增高,与平衡位置的距离增大;
等温:温度升至熔化温度,固体的规则性质被打破,成为液体,粒子可以自由运动和重新排序,消除系统中原先存在的非均匀状态;
冷却:随着温度的下降,粒子能量减弱,运动减小,粒子最终进入平衡状态,固化为具有最小能量的晶体。
链表与数组、向量不同之处在于,其元素的地址可以任意而不要求连续。元素之间通过指针相互联系。虽然其仍要求各元素在逻辑上具线性次序,但对物理地址未作任何限制,也即“动态存储”策略。
1 | void Algorithm01(){ |
一共进行了三步,这是一个$\mathcal{O}(1)$的算法.