一种改进的双链量子遗传算法及其应用

简介:

虽然该方法仍属传统遗传算法, 但激发了量子计算原理与遗传算法相结合的研究;Han等人[7]采用量子位编码和量子门更新染色体,提出了遗传量子算法和并行量子遗传算法, 并成功求解了组合优化问题;Yang Jun-an等人[8]在遗传算法中引入多宇宙概念,提出了多宇宙并行量子遗传算法;Wang Ling等人[9]将QGA与SGA融合,提出基于量子计算的混合量子遗传算法;李士勇等人[10]将量子染色体中两条概率幅链均看成描述最优解的基因链,提出了双链量子遗传算法(double chains quantum genetic algorithm,DCQGA),借助量子位相位的周期性,该算法在一定程度上能提高优化性能。本文在文献[10]研究工作的基础上,通过改变量子位概率幅的周期、旋转角度以及变异策略,提出了一种改进的双链量子遗传算法(improved DCQGA,IDCQGA)。该方法可使搜索过程在概率幅的多个三角函数周期上同时进行,改善了原算法的种群多样性、适应性和稳定性,从而进一步提高了算法的搜索能力。

  1 IDCQGA基本原理

  1.1 连续优化问题描述

  若将n维连续空间优化问题的解看做n维空间中的点或向量,则连续优化问题可表述为

  min f(x)=f(x1,x2,…,xn)s.t. ai≤xi≤bi;i=1,2,…,n(1)

  若将约束条件看做n维连续空间中的有界闭集Ω,将Ω中每个点都看做优化问题的近似解,可定义如下评价函数来反映近似解的优劣程度:

  fit(x)=Cmax-f(x)(2)

  其中,Cmax可以是一个合适的输入值,或者是到目前为止优化过程中f(x)的最大值。

  1.2 双链量子遗传算法

  在量子计算中,最小的信息单位用量子位表示。量子位又称量子比特,一个量子比特的状态可表示为

  |φ〉=α|0〉+β|1〉(3)

  其中α和β满足下列归一化条件:

  |α|2+|β|2=1(4)

  把满足式(3)(4)的一对复数α和β称为一个量子比特的概率幅,因此量子比特也可以用概率幅表示为[α,β]T。

  在DCQGA中,直接采用概率幅作为编码。考虑到式(4)的约束性,编码方案如下:

  pi=cos(ti1)sin(ti1)cos(ti2)sin(ti2) …cos(tin)sin(tin)(5)

  其中:tij=2π×rnd,rnd为(0,1)间的随机数,i=1,2,…,m;j=1,2,…,n。m是种群规模,n是量子位数。在DCQGA中,将每一量子位的概率幅看做是上下两个并列的基因,每条染色体包含两条并列的基因链,而每条基因链代表一个优化解。因此,每次迭代两个解同步更新,在种群规模不变的情况下能扩展对搜索空间的遍历性,加速优化进程。
 

 DCQGA使用量子旋转门更新量子染色体的概率幅,其转角步长公式为

  Δθ=-sgn(A)×Δθ0×‖fit max-fit min‖‖fit(X)-fit min‖ (6)

  其中:Δθ0为转角步长初值;fit(X)为评价函数fit在点X的梯度;fti max和fit min分别定义为

  fit max=[max{fit(X1)X11,…,

  fit(Xm)X1m},…,max{fit(X1)Xn1,…,fit(Xm)Xnm}](7)

  fit min=[min{fit(X1)X11,…,fit(Xm)X1m},…,

  min{fit(X1)Xn1,…,fit(Xm)Xnm}](8)

  DCQGA的变异策略为利用量子非门,兑换量子位的两个概率幅,从而使双链同时变异。

  1.3 改进的双链量子遗传算法

  本文针对上述DCQGA提出了三点改进策略。

  1)量子染色体编码方式的改进

  在IDCQGA中,本文在量子位概率幅的三角函数描述中引入一个大于等于1的调整因子,将原来的2π周期改进为多周期描述方式。引进这一参数的直接目的是提高算法收敛的概率。改进后的编码方式为

  pi=cos(cti1)sin(cti1)cos(cti2)som(cti2) …cos(ctin)sin(ctin)(9)

  其中c≥1。

  这种编码方式为每个量子位的相位附带一个大于1的常数因子,从而拓展了概率幅函数的周期。该算法是对DCQGA的推广,当c=1时,即还原为原来算法。假设在优化过程中最优解的某一变量对应的概率幅值为-0.5,以c=2为例,由图1可知,原算法(c=1)有两个相位解:q1=7π/6,q2=11π/6;新算法(c=2)有四个相位解:p1=7π/12,p2=11π/12,p3=19π/12,p4=23π/12。因此,提高了获得最优解的概率。

  2)量子旋转门转角步长函数的改进

  式(6)存在如下不足:若fit(X)=fit min,则‖fit(X)-fit min‖=0,Δθ=∞,从而引起算法震荡。鉴于此,本文提出如下转角步长函数:

  Δθ=-sgn(A)Δθ0 exp-f(X)-f minf max-f min(10)

  上式既能保持与式(5)功能的一致性,也有效克服了原有的缺陷,提高了算法的适应性和稳定性。

  3)基于量子非门的变异策略的改进

  量子非门的作用是使量子位的两个概率幅兑换,这种变异的本质是一种量子比特相位的旋转。设某一量子位幅角为θ,则旋转后的幅角为π/2-θ,幅角正向旋转了π/2-2θ。经分析,实际上这种旋转幅度中的π/2是没有必要的,完全可以替换为其他角度。在IDCQGA中,本文提出了基于单比特量子Hadamard的变异策略,该门在单量子比特上的作用效果为

  12111-1cos(θij)sin(θij)=

  cos(π4-θij)sin(π4-θij)=cos(θij+π4-2θij)sin(θij+π4-2θij)(11)

  其中:i∈{1,2,…,m},j∈{1,2,…,n}。由式(11)可以看出,这种变异策略也是一种旋转。对于第i条染色体上的第j个量子位,转角大小为Δθij=π/4-2θij,增强了种群的多样性。

  2 对比实验

  为验证IDCQGA中改进措施的有效性,考虑如下两个典型函数的极值优化问题,并与DCQGA对比。

  1)BR-Branin 函数

  f(x,y)=x-5.14π2y2+5πy-62+101-18πcos y+10(12)

  其中:x∈[0,15];y∈[-5,10]。

  优化目标为求取函数极小值,式(12)的全局极小值为0.3979,共有两个全局极小值点(-3.142,12.276)和(3.142,2.275),一个与全局极小值点很接近的局部极小值点为(9.425,2.425),局部极小值为0.400 4,其空间分布特征如图2所示。当优化结果误差小于0.000 4时认为算法收敛。

 

 2)RA-Rastrigin函数

  f(x,y)=x2+y2-cos(18x)-cos(18y)(13)

  其中:x,y∈[-1,1]。

  优化目标为求取函数极小值,式(13)全局极小值点为(0,0),全局极小值为-2.000,在可行域内大约有50个局部极小值点,其空间分布特征如图3所示。当优化结果误差小于0.005时认为算法收敛。

  3)Generalized Rosenbrock’s 函数

  f3(X)=∑29i=1[100(xi+1-x2i)2+(1-xi)2](14)

  其中:xi∈[-30,30]。

  优化目标为求取函数极小值,式(14)全局极小值点为(1,1,…,1),全局极小值为0。当优化结果小于0.005时认为算法收敛。

  对于上述函数,分别用IDCQGA和DCQGA优化50次,然后统计每种算法的最优结果、平均结果、收敛次数、平均步数、平均时间作为对比评价指标。三种算法的种群规模均取50,最大优化代数均取500,变异概率均取0.05,转角步长初值均取0.01π。性能对比结果如表1所示。

  表1 IDCQGA、DCQGA算法的性能对比

  函数算法最好结果平均结果收敛次数平均步数平均时间/s

  BR-BraninIDCQGADCQGA0.397 90.397 90.399 10.399 6494655.040 066.440 00.030 30.037 7

  RA-RastriginIDCQGADCQGA-2.000 0-2.000 0-1.994 9-1.993 7484559.220 072.560 00.029 70.031 1

  GeneralizedRosenbrockIDCQGADCQGA0.000 00.000 00.025 30.038 64339138.230 0163.870 00.058 60.059 9

  对比实验结果表明,IDCQGA的优化性能优于DCQGA,从而表明本文提出的改进策略是有效可行的。

  3 结束语

  量子遗传算法是量子计算与遗传算法相结合的产物,目前作为一个新兴的研究方向,受到国内外学者广泛关注。本文针对目前双链量子遗传算法存在的问题,通过实施三种改进策略建立了一种新型的双链量子遗传算法,有效克服了原算法存在的不足,进一步提高了算法的搜索能力。仿真实验结果验证了本文提出的改进算法的有效性。


原文发布时间为:2011-03-03
本文作者:cqc
本文来源:博客园,如需转载请联系原作者。

目录
相关文章
|
2月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
57 3
|
2天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
29 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的优化算法及其应用
【10月更文挑战第8天】 本文将探讨深度学习中常用的优化算法,包括梯度下降法、Adam和RMSProp等,介绍这些算法的基本原理与应用场景。通过实例分析,帮助读者更好地理解和应用这些优化算法,提高深度学习模型的训练效率与性能。
216 63
|
2天前
|
存储 缓存 算法
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
29 0
|
28天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
27天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
44 1
|
27天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
61 1
|
1月前
|
缓存 算法 网络协议
OSPF的路由计算算法:原理与应用
OSPF的路由计算算法:原理与应用
50 4
|
1月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。
|
1月前
|
存储 算法 网络协议
OSPF的SPF算法介绍:原理、实现与应用
OSPF的SPF算法介绍:原理、实现与应用
84 3