基于单纯形法改进的混沌控制算法

来源:期刊VIP网所属分类:期刊常识发布时间:2022-07-18浏览:

  来源:广西科技大学学报 2022年3期

  作者:夏雨; 汤峰; 余颖烨

  摘 要:混沌控制(chaos control,CC)算法在求解结构可靠度问题中具有优越的稳健性,但由于其对步长的严格限制,导致计算速度较慢。单纯形法是一种不将梯度方向作为寻优方向的算法,该算法初始计算速度较快,能够迅速逼近至极限状态面附近,此后计算速度明显下降,且计算结果误差较大。为此,提出一种基于单纯形法改进的混沌控制算法。首先,通过增广乘子法将可靠度计算中的非线性等式约束问题转化为非约束问题;然后,通过单纯形法进行初始迭代计算;最后,使用CC算法进行收敛计算。算例结果表明:本文算法能够有效解决高非线性功能函数可靠度求解问题,且兼具两种算法的优点,与混沌控制算法相比,提高了计算效率。

  关键词:结構可靠度;混沌控制算法;单纯形法;可靠度计算;计算效率

  0 引言

  建筑结构的安全性与稳定性对人类社会影响巨大,如何对其进行合理评价至关重要。Freudenthal[1]在《结构安全度》一文中提出了结构可靠度的相关概念;为了得到结构可靠度指标,Cornell等[2-4]提出了一次可靠度理论,并对其不断完善。然而当结构功能函数的非线性程度较大时,经典一次可靠度计算方法往往会出现迭代振荡、结果不准确的情况。为了解决上述问题,众多学者展开了更进一步的研究。Liu[5]首先考虑引入merit函数作为评价函数,但是该函数并不能保证算法的迭代方向为下降方向;Zhang等[6]考虑引入Armijo准则进行迭代步长的调控;杨迪雄[7]基于混沌控制理论中的稳定转换法,通过引入步长调控因子提出了混沌控制(chaos control,CC)算法,但由于该方法对步长的严格限制,致使算法计算速度相对较慢;Meng等[8]针对CC算法中存在的问题,结合“之”字型迭代路径,提出了修正混沌控制(modified chaos control,MCC)方法。目前学术界对于Armijo准则的研究也有了不少的成果[9],而李彬等[10-11]则将Armijo准则引入到混沌控制算法中,使得计算速度进一步加快,并且进行了逆可靠度求解方法的尝试。与此类似,亢战等[12]提出的修正迭代算法中也提及了步长调控因子的控制作用,在文中将其定义为修正系数,并给出了修正系数的具体计算方法。

  除此之外,贡金鑫[13]还对迭代点在极限状态面上的负梯度方向进行了深入研究讨论,提出了有限步长法,并推理出HL-RF算法只是有限步长法的一个特例,该方法的初始步长会影响算法的收敛性。吴狄等[14]提出了自动变步长的搜索方法,但是收敛速度较慢。王林军等[15]使用外罚函数法进行可靠度计算,但是由于该方法将其中一个变量用剩余变量进行表示,算法鲁棒性不好,不够稳定,应用受限。高翔等[16]则将模拟退火法与增广乘子法应用到可靠度计算中,虽然避免了一次二阶矩方法中梯度的求解问题,但是却增加了迭代步骤。许家赫等[17]将自适应性PSO算法与fmincon函数结合用于寻优计算,拓展了可靠度指标的计算方法。就目前而言,FOSM方法在结构可靠度分析方面的理论研究已经比较成熟,但是在实际的工程可靠度分析中却鲜有使用,主要原因是:如果结构的功能函数非线性程度过高,那么将会导致求解过程复杂化,致使整个计算过程效率低下,误差也比较大,所以如何实现快速、准确求解是当前有待解决的一个 问题。

  针对上述问题,本文提出一种基于单纯形法改进的CC算法。首先,通过增广乘子法将可靠度计算中的非线性等式约束问题转化为非约束问题;然后,通过单纯形法进行初始迭代计算;最后,使用CC算法进行收敛计算,通过数值算例验证了本文方法的计算准确性与效率。

  1 可靠度理论

  Cornell[2]提出将结构构件的均值与标准差的比值作为该构件的可靠度指标,并以此建立了一次二阶矩方法,但是该方法在实际应用中存在一定的缺陷。Hasofer和Lind重新定义了结构可靠度指标的概念,确保了可靠度指标在同一构件不同极限状态函数下的唯一性,对可靠度理论进行了完善与修正。在数学上,可靠度指标[β]可以定义为如下非线性约束优化问题:

  [minβ=d(X*)=i=1nx*i2] , (1)

  [s. t. G(X)=g(x1, x2, …, xn)=0] . (2)

  式中:[x]是标准正态空间下的随机变量,[G(X)]为结构的功能函数,[β] 是结构可靠度指标。结构可靠度的几何意义是标准正态空间下,结构功能函数上一点到原点的最短距离。对于不服从正态分布的随机变量,可以使用JC法将其当量正态化。该方法的前提条件是验算点[x*i] 处[X'i]和[Xi] 的累积分布函数和概率密度函数分别对应相等,由此可以得到正态化之后的变量均值与标准差:

  [ux′i=x*i-Φ-1[FXi(x*i)]σx′i] , (3)

  [σx′i=?{Φ-1[FXi(x*i)]}fXi(x*i)] . (4)

  式中:[Φ(?)] 为标准正态的分布函数,而[?(?)] 为标准正态分布的概率密度函数,[ux′i] 是随机变量当量正态化后的均值,[σx′i] 是随机变量当量正态化后的标准差。在得到当量正态化后的变量均值与标准差之后便可以进行可靠度计算。

  2 CC算法与单纯形法计算原理

  2.1 CC算法

  在可靠度计算方法中,经典HL-RF算法由于其概念清晰、计算简便等优点,被广泛用于结构可靠度求解,其核心思想是将结构功能函数在第k个迭代点进行一阶泰勒展开,并使功能函数在第k+1个迭代点的函数值满足[g(uk+1)=0] ,可得:

  [g(uk)+?g(uk)T(uk+1-uk)=0] . (5)

  令第k+1次迭代点到标准正态空间下原点的距离为[βk+1] ,并取[uk] 点处梯度负方向的单位向量作为迭代选取方向,得:

  [uk+1=-βk+1?g(uk)?g(uk)] . (6)

  结合式(5),可得:

  [βk+1=g(uk)-?g(uk)Tuk?g(uk)] . (7)

  式(6)与式(7)合称为HL-RF算法,其在解决低非线性功能函数可靠度求解问题时计算效率很高,能够在迭代过程中逐渐靠近收敛点。但是在解决高非线性功能函数时,往往会出现迭代振荡,甚至不收敛的情况。

  为了提高HL-RF算法的收敛性,杨迪雄[7]采用混沌控制学理论对其进行改进,提出了CC算法。该算法引入混沌控制因子对迭代过程中的振荡情况进行了控制,表达式变为:

  [uk+1=uk+λC[F(uk)-uk]] , (8)

  [F(uk)=[?g(uk)]Tuk-g(uk)?g(uk)2?g(uk)] . (9)

  式中:[C]代表n×n维对合矩阵,一般情况下取单位矩阵,[λ]是一个常数,代表混沌控制因子。通過上式可以发现,CC算法相较于经典HL-RF算法而言,补充了迭代步长控制计算步骤。先通过HL-RF算法求解出[F(uk)]点,然后以本次迭代点[uk]为基点,将[uk]到[F(uk)]点的方向作为迭代方向,并在该迭代方向上选取一定的步长。如果[λ=0] ,则[uk+1=uk],无法进行迭代计算;如果[λ=1],则可得[uk+1=F(uk)],此时的迭代公式就变成了经典HL-RF算法,所以[λ]的取值为0 ~ 1。为了保证收敛性,[λ]的取值一般设置为较小的常数,导致CC算法的步长较小,收敛速度较慢。如果能使CC算法初始计算点尽可能靠近MPP点,就可以减少计算量,加快算法整体收敛速度。

  2.2 单纯形法

  单纯形法是一种不将函数梯度信息作为下降方向的算法。该算法在计算初始阶段,收敛速度较快,具有一定的计算优势,但是在贴近极限状态面之后,计算速度反而开始下降,且单纯形法是一种

  用于计算无约束问题的算法,根据式(1)、式(2)可知,结构可靠度的计算属于有约束问题。通过增广乘子法可以将有约束的可靠度计算问题转变为无约束优化模型[Mρ]。

  [Mρ(X, r, ρ)=i=1n(Xi-μiσi)2+]

  [r2j=1n[gj(Xi)]2+j=1nρjgj(Xi] [)]. (10)

  式中:[ρ=[ρ1, ρ2, …, ρm]] 为拉格朗日乘子,[r]为罚函数的惩罚因子,[r2j=1n[gj(Xi)]2] 为乘子项,[j=1nρjgj(Xi)] 为惩罚项。

  通过增广乘子算法对功能函数与可靠度指标计算公式进行结合,使得单纯形法可以用于可靠度问题的求解。该算法的基本思想是:根据未知变量的个数,选择n+1个不同的点构成正单纯形,分别计算正单纯形的n+1个顶点函数值,对比优劣,找到函数值最大的点及函数下降方向,据此来搜索新的点代替最大值点,依次更迭。在迭代点未接近极限状态面时,[Mρ]优化模型中的惩罚项发挥主要作用,迫使算法向极限状态面逼近;而当迭代点逼近至极限状态面附近,惩罚项与乘子项趋近于0,此时可靠度指标的计算公式便可以发挥主要作用,使点通过迭代逐步逼近到最有可能失效点附近,并求得可靠度指标,该算法的迭代示意图如图1所示。

  图1中,由x3、[x1]与x2 3个点共同组成一个单纯形,3个点分别为单纯形的3个顶点。x3为极差点,xc为反射基点,xD为反射点,xR为延伸点,xp为收缩点。

  根据单纯形法的基本思想,该理论只适合无约束函数的计算,而增广乘子法可以将约束优化问题转化为无约束优化问题,这样单纯形法就可以进行可靠度求解。计算步骤如下所示:

  Step 1 将[Mρ]作为目标函数,选取均值点[x11=(x111, x112, …, x11n)T]作为初始点,并将其视为初始单纯形的一个顶点,采用式(11)计算正单纯形剩余顶点的坐标[19]:

  [x12=x11+(d1, d2, d2, …, d2)T,x13=x11+(d2, d1,d2,…, d2)T,x14=x11+(d2, d2, d1,…, d2)T, ? x1n+1=x11+(d2, d2, d2, …, d1)T.] (11)

  其中,[d1=sn2(n+1+n-1)],[d2=sn2]

  [(n+1-1)],[s]为初始正单纯形的边长。

  Step 2 计算[n+1]个正单纯形顶点的函数值,并找出其中的最好点[(][x1][)]与最差点[(][x3][)],然后计算除最差点外剩余点的中心点xc,以此作为基点。

  推荐阅读:计算机算法方面能选择哪些sci期刊

《基于单纯形法改进的混沌控制算法》内容如果没能解决您的问题,可免费咨询在线学术顾问获取解答。

本文由期刊VIP网编辑首发,您身边的高端学术顾问

文章名称: 基于单纯形法改进的混沌控制算法

文章地址: http://www.qikanvip.com/write/62638.html