基于量子位Bloch坐标编码自适应的基于进正改进正余弦算法
文章目录
- 基于量子位Bloch坐标编码自适应的改进正余弦算法
- 1.正余弦算法
- 2.改进正余弦算法
- 2.1 群体初始位置的Bloch坐标编码方案.
- 2.2 引入惯性权重
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.python代码
摘要:提出了一种基于量子位Bloch坐标编码自适应的改进后正弦余弦算法(ASCA),利用量子位Bloch坐标编码进行种群初始化,量位并利用惯性权重对算法进行改进。标编
1.正余弦算法
基础正余弦算法的码自码具体原理参考,我的适应算法博客:https://blog.csdn.net/u011835903/article/details/107762654
2.改进正余弦算法
2.1 群体初始位置的Bloch坐标编码方案.
直接采用量子位的 Bloch 坐标作为编码. 设 p i p_i pi 为群体中第 i i i 个候选解,其编码方案如下:
p i = ∣ cos φ i 1 sin θ i 1 ⋯ cos φ i n sin θ i n sin φ i 1 sin θ i 1 ⋯ sin φ i n sin θ i n cos θ i 1 ⋯ cos θ i n ∣ (10) p_i=\left|\begin{ array}{ l|l|l|} \cos \varphi_{ i 1} \sin \theta_{ i 1} & \cdots & \cos \varphi_{ i n} \sin \theta_{ i n} \\ \sin \varphi_{ i 1} \sin \theta_{ i 1} & \cdots & \sin \varphi_{ i n} \sin \theta_{ i n} \\ \cos \theta_{ i 1} & \cdots & \cos \theta_{ i n} \end{ array}\right|\tag{ 10} pi=∣ ∣cosφi1sinθi1sinφi1sinθi1cosθi1⋯⋯⋯cosφinsinθinsinφinsinθincosθin∣ ∣(10)
式中 : φ i j = 2 π × r , θ i j = π × r , r : \varphi_{ i j}=2 \pi \times r, \theta_{ i j}=\pi \times r, r :φij=2π×r,θij=π×r,r 为 [ 0 , 1 ] [0,1] [0,1] 区间的随机 数; i = 1 , 2 , ⋯ , N ; j = 1 , 2 , ⋯ , n ; N i=1,2, \cdots, N ; j=1,2, \cdots, n ; N i=1,2,⋯,N;j=1,2,⋯,n;N 为群体规模; n n n 为优化空间的维数.
每个攸选解同时占据空间的 3 个位置, 即同时 代表以下 3 个优化解, 分别为 X X X 解、 Y Y Y 解和 Z Z Z 解.
P i x = ( cos φ i 1 sin θ i 1 ,余弦 ⋯ , cos φ i n sin θ i 11 ) ( 11 ) P i y = ( sin φ i 1 sin θ i 1 , ⋯ , sin φ i j sin θ i r ) ( 12 ) P i z = ( cos θ i 1 , cos θ i 2 , ⋯ , cos θ i m ) ( 13 ) \begin{ gathered} P_{ i x}=\left(\cos \varphi_{ i 1} \sin \theta_{ i 1}, \cdots, \cos \varphi_{ i n} \sin \theta_{ i 11}\right) &(11)\\ P_{ i y}=\left(\sin \varphi_{ i 1} \sin \theta_{ i 1}, \cdots, \sin \varphi_{ i j} \sin \theta_{ i r}\right) &(12)\\ P_{ i z}=\left(\cos \theta_{ i 1}, \cos \theta_{ i 2}, \cdots, \cos \theta_{ i m}\right)&(13) \end{ gathered} Pix=(cosφi1sinθi1,⋯,cosφinsinθi11)Piy=(sinφi1sinθi1,⋯,sinφijsinθir)Piz=(cosθi1,cosθi2,⋯,cosθim)(11)(12)(13)
侯选解 p i p_i pi 上的第 j j j 个量子位的 Bloch 坐标记 为 [ x i j , y i j , z i j ] T \left[x_{ i j}, y_{ i j}, z_{ i j}\right]^{ \mathrm{ T}} [xij,yij,zij]T, 优化问题中每个解空间第 j j j 维的 取值范围为 [ a j , b j ] \left[a_j, b_j\right] [aj,bj], 则由单位空间 I n = [ − 1 , 1 ] n I^n=[-1,1]^n In=[−1,1]n 映射到优化问题解空间的变换公式为:
X i x j = 1 2 [ b i ( 1 + x i j ) + a j ( 1 − x i j ) ] ( 14 ) X i y j = 1 2 [ b j ( 1 + y i j ) + a j ( 1 − y i j ) ] ( 15 ) X i z j = 1 2 [ b j ( 1 + z i j ) + a j ( 1 − z i j ) ] ( 16 ) \begin{ aligned} &X_{ i x}^j=\frac{ 1}{ 2}\left[b_i\left(1+x_{ i j}\right)+a_j\left(1-x_{ i j}\right)\right] &(14)\\ &X_{ i y}^j=\frac{ 1}{ 2}\left[b_j\left(1+y_{ i j}\right)+a_j\left(1-y_{ i j}\right)\right] &(15)\\ &X_{ i z}^j=\frac{ 1}{ 2}\left[b_j\left(1+z_{ i j}\right)+a_j\left(1-z_{ i j}\right)\right]&(16) \end{ aligned} Xixj=21[bi(1+xij)+aj(1−xij)]Xiyj=21[bj(1+yij)+aj(1−yij)]Xizj=21[bj(1+zij)+aj(1−zij)](14)(15)(16)
因此,苺个候选解对应优化问题的 3 个解.在所 有的侯选解中选择 N N N 个适应度值较小的个体作为 初始群体.
此种编码方式能扩展搜索空间的遍历性, 增加 群体的多样性,进而改善群体的质量,加快算法收敛 速度.
2.2 引入惯性权重
在SCA算法中,为了增强局部开发能力,附代提高算法的基于进正收敛精度和收敛速度,引入惯性权重 w对算法进行改进,量位加入的标编惯性权重为:
w = w ′ − ( w ′ − w ′ ′ ) × ( t T max ) 1 / t (17) w=w^{ \prime}-\left(w^{ \prime}-w^{ \prime \prime}\right) \times\left(\frac{ t}{ T_{ \max }}\right)^{ 1 / t} \tag{ 17} w=w′−(w′−w′′)×(Tmaxt)1/t(17)
式中: w ′ w^{ \prime} w′ 和 w ′ ′ w^{ \prime \prime} w′′ 分别为惯性权重的最大值和最小值.
w w w 随着迭代次数的增加而递减, 使得迭代前期 有利于全局探索, 迭代后期有利于局部寻优, 由于引 进的 w w w 减小的幅度较大, 更有利于算法进行局部开 发, 提高算法的收敛精度和收敛速度.
改进后的位置更新公式如下:
X i t + 1 = { w X i t + r 1 × sin r 2 × ∣ r 3 P i t − X i i t ∣ , 0 < r i < 0.5 w X i t + r 1 × cos r 2 × ∣ r 3 P i t − X i i t ∣ , 0.5 ⩽ r 4 < 1 (18) X_i^{ t+1}=\left\{ \begin{ array}{ c} w X_i^t+r_1 \times \sin r_2 \times\left|r_3 P_i^t-X_{ i i}^t\right|, \\ 0
3.实验结果
4.参考文献
[1]魏锋涛,张洋洋,黎俊宇,史云鹏.基于动态分级策略的改进正余弦算法[J].系统工程与电子技术,2021,43(06):1596-1605.