陳素彬
(南充職業(yè)技術(shù)學(xué)院農(nóng)業(yè)科學(xué)技術(shù)系,四川 南充 637000)
?
利用量子粒子群優(yōu)化算法配平化學(xué)方程式
陳素彬
(南充職業(yè)技術(shù)學(xué)院農(nóng)業(yè)科學(xué)技術(shù)系,四川南充637000)
為了運(yùn)用現(xiàn)代信息技術(shù)解決化學(xué)反應(yīng)方程式配平的問(wèn)題,根據(jù)質(zhì)量守恒定律建立了化學(xué)方程式的通用數(shù)學(xué)模型,并將其轉(zhuǎn)換為矩陣方程;運(yùn)用改進(jìn)的量子行為粒子群優(yōu)化算法求解矩陣方程,并以MATLAB編程運(yùn)行。實(shí)驗(yàn)結(jié)果表明,該算法能高效地求得化學(xué)反應(yīng)方程式的配平系數(shù),適用于任意化學(xué)反應(yīng)方程式的配平。
化學(xué)反應(yīng)方程式;配平系數(shù);量子行為粒子群優(yōu)化算法;編程
配平化學(xué)反應(yīng)方程式的傳統(tǒng)方法包括觀(guān)察法、最小公倍數(shù)法、歸一法、奇數(shù)配偶法、待定系數(shù)法、聯(lián)合方程法、矩陣法等[1],它們有的僅能用于特定類(lèi)型的化學(xué)反應(yīng),有的計(jì)算復(fù)雜、手工求解難度大,不適合復(fù)雜的化學(xué)反應(yīng)方程式。為此,我們根據(jù)質(zhì)量守恒定律為化學(xué)反應(yīng)方程式建立一個(gè)通用數(shù)學(xué)模型[2-3],運(yùn)用改進(jìn)的群體智能優(yōu)化算法對(duì)其求解即得配平系數(shù)。在此基礎(chǔ)上,將模型及其求解過(guò)程編寫(xiě)為高級(jí)語(yǔ)言程序,從而可用計(jì)算機(jī)來(lái)高效地解決任意化學(xué)反應(yīng)方程式的配平問(wèn)題。
任意化學(xué)反應(yīng)方程式可表示為:
x1A1+x2A2+…+xmAm=y1B1+y2B2+…+ynBn
其中:A1,A2,…,Am、B1,B2,…,Bn分別為m種反應(yīng)物和n種生成物;x1,x2,…,xm、y1,y2,…,yn分別為各反應(yīng)物和生成物的配平系數(shù)。
假設(shè)反應(yīng)物和生成物共含有s種元素,并且第i(i=1,2,…,m)種反應(yīng)物中含有第k(k=1,2,…,s)種元素的原子數(shù)為aik,第j(j=1,2,…,n)種生成物中含有第k(k=1,2,…,s)種元素的原子數(shù)為bjk。于是由質(zhì)量守恒定律得出元素k的平衡方程為:
a1kx1+a2kx2+…+aikxm=b1ky1+b2ky2+…+bjkyn
將各元素平衡方程的右端左移,即得齊次線(xiàn)性方程組:
(1)
分別將反應(yīng)物與生成物中各元素的原子數(shù)表示為矩陣P1、P2,反應(yīng)物與生成物的配平系數(shù)表示為列向量X、Y,即:
X=(x1,x2,…,xm)τ,Y=(y1,y2,…,yn)τ
PC=0
(2)
對(duì)于任意化學(xué)反應(yīng)方程式,皆可通過(guò)求解式(2)中的列向量C來(lái)獲得配平系數(shù)的最簡(jiǎn)正整數(shù)值[4]。但用普通的數(shù)學(xué)方法對(duì)該式求解有一定難度、且計(jì)算過(guò)程較為繁瑣,因此我們采用改進(jìn)的量子粒子群優(yōu)化算法來(lái)求解,并將其編寫(xiě)為MATLAB程序在計(jì)算機(jī)上運(yùn)行,使用起來(lái)簡(jiǎn)便、高效。
2.1量子行為粒子群優(yōu)化算法
量子行為粒子群優(yōu)化算法(Quantum-behaved Particle Swarm Optimization,簡(jiǎn)稱(chēng)QPSO)是一種群體智能搜索算法,其數(shù)學(xué)描述為:在N維空間中,有M個(gè)代表潛在問(wèn)題解的粒子組成群體X={x1,x2,…,xm}。在t時(shí)刻,第i(i=1,2,…,m)個(gè)粒子的位置為Xi(t)=[xi,1(t),xi,2(t),…,xi,N(t)],個(gè)體最好位置為Pi(t)=[pi,1(t),pi,2(t),…,pi,N(t)],群體最好位置為G(t)=[g1(t),g2(t),…,gN(t)]、且G(t)=Pg(t),其中g(shù)(g∈{1,2,…,M})為群體最好位置粒子的下標(biāo)。
以f(X)為適應(yīng)度函數(shù),當(dāng)優(yōu)化目標(biāo)為求最小值時(shí),粒子i的個(gè)體最優(yōu)位置按下式確定:
相應(yīng)的群體最優(yōu)位置為:
G(t)=Pg(t),g=armmin1≤i≤M{f[Pi(t)]}
則粒子的位置依下列公式更新:
Pi,j(t)=φj(t)Pi,j(t)+[1-φj(t)]Gj(t)
式中:t為當(dāng)前迭代次數(shù);C(t)為粒子群的平均最優(yōu)位置;φj(t)和ui,j(t)為[0,1]區(qū)間的隨機(jī)數(shù)。
β是QPSO算法的唯一參數(shù),稱(chēng)之為擴(kuò)張收縮因子,一般令其值在[1.0,0.5]區(qū)間線(xiàn)性遞減,可得到較好的優(yōu)化結(jié)果。設(shè)β0、β1分別為β的初值和終值,t、tmax分別為當(dāng)前迭代次數(shù)和最大迭代次數(shù),則β的當(dāng)前值為:
β(t)=(β0-β1)(tmax-t)/tmax+β1
2.2QPSO算法的改進(jìn)
與其它群體智能搜索算法類(lèi)似,QPSO算法也不能避免因早熟現(xiàn)象而難以獲得全局最優(yōu)解的問(wèn)題,為此我們同時(shí)從兩個(gè)方面予以改進(jìn)。
(1)為粒子位置增加柯西分布隨機(jī)數(shù)擾動(dòng)項(xiàng)。柯西分布具有較高的兩翼概率,易于產(chǎn)生遠(yuǎn)離原點(diǎn)的隨機(jī)數(shù)。利用該特性可提高粒子的多樣性,使粒子的位移增大,從而有助于跳出局部最優(yōu),增強(qiáng)算法的全局搜索能力。相應(yīng)公式如下:
Crnd(0,1)=tan[π·(rand( )-0.5)]
xi,j=xi,j+xi,j·Crnd(0,1)
式中:Crnd(0,1)為標(biāo)準(zhǔn)柯西分布隨機(jī)數(shù);rand( )為[0,1]區(qū)間的均勻分布隨機(jī)數(shù);xx,j為粒子個(gè)體的當(dāng)前位置。
(2)在算法中引入非線(xiàn)性規(guī)劃函數(shù)。非線(xiàn)性規(guī)劃(nonlinear programming)研究n元實(shí)函數(shù)在一組等式或不等式約束條件下的極值問(wèn)題,其目標(biāo)函數(shù)和約束條件至少有一個(gè)是未知量的非線(xiàn)性函數(shù)。非線(xiàn)性規(guī)劃的特點(diǎn)是局部搜索能力強(qiáng),在QPSO算法中將其與柯西分布隨機(jī)數(shù)擾動(dòng)項(xiàng)有機(jī)結(jié)合,可有效增強(qiáng)算法的整體搜索能力,提高其計(jì)算精度,顯著加快收斂速度。
MATLAB提供了非線(xiàn)性規(guī)劃函數(shù)fmincon( ),可從一個(gè)預(yù)估值開(kāi)始搜索約束條件下多元非線(xiàn)性函數(shù)的最小值。其調(diào)用格式為:
x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
式中:fun為目標(biāo)函數(shù),x0為x的初設(shè)值,lb、ub為x的下界和上界,其余參數(shù)取默認(rèn)值即可。
作為一種改進(jìn)措施,在QPSO算法中執(zhí)行非線(xiàn)性規(guī)劃函數(shù)的頻度不宜太高,以免影響算法的運(yùn)行速度??稍诘^(guò)程中周期性地調(diào)用fmincon( )函數(shù)(如每迭代10次調(diào)用1次該函數(shù)),調(diào)用時(shí)將當(dāng)前的適應(yīng)度函數(shù)值、粒子位置及粒子搜索區(qū)間的下界、上界分別傳遞給形參fun、x0、lb和ub即可[5]。
3.1算法的基本設(shè)置
(1)粒子的編碼方法。算法的目標(biāo)是求取式(2)的最簡(jiǎn)整數(shù)解,因此應(yīng)對(duì)粒子進(jìn)行正整數(shù)編碼。為了避免產(chǎn)生無(wú)效解,并將搜索范圍控制在一定的區(qū)域內(nèi),可為其預(yù)設(shè)一個(gè)合理的搜索區(qū)間[1,U]。
(2)粒子群的規(guī)模。較多的粒子數(shù)目雖能提高搜索的成功率,但也會(huì)耗費(fèi)更多的運(yùn)行時(shí)間。一般的化學(xué)方程式可將粒子數(shù)設(shè)為100左右,較復(fù)雜的方程式則適當(dāng)增大。粒子的維度為反應(yīng)物和生成物的總數(shù),即(m+n)。
(3)適應(yīng)度函數(shù)。根據(jù)式(2)可得適應(yīng)度函數(shù):
將搜索到的配平系數(shù)(最優(yōu)粒子位置)代入式(2)得到s個(gè)值,其和越小越接近最優(yōu)解。當(dāng)適應(yīng)度函數(shù)值為0時(shí),即意味著得到了問(wèn)題的精確解。
3.2算法的運(yùn)行步驟
(1)由化學(xué)反應(yīng)方程式確定反應(yīng)物與生成物的系數(shù)矩陣X和Y、反應(yīng)物與生成物中各元素的原子數(shù)矩陣P1和P2,并設(shè)置搜索區(qū)間的上界U。
(2)在區(qū)間[1,U]內(nèi)隨機(jī)生成粒子群。
(3)計(jì)算當(dāng)前的粒子適應(yīng)度值。若為0,則相應(yīng)的粒子位置即為列向量C的精確解,轉(zhuǎn)步驟(9);否則執(zhí)行步驟(4)。
(4)根據(jù)適應(yīng)度值更新粒子的個(gè)體最優(yōu)位置。
(5)計(jì)算當(dāng)前的全局最優(yōu)位置,若其優(yōu)于上次迭代的全局最優(yōu)位置,則更新之。
(6)更新粒子的位置,為其增加柯西分布隨機(jī)數(shù)擾動(dòng)項(xiàng),并進(jìn)行越界處理;
(7)若當(dāng)前迭代次數(shù)為10的倍數(shù),則調(diào)用非線(xiàn)性規(guī)劃函數(shù);
(8)重復(fù)步驟(3)~(7),直到迭代完成。
(9)若所得結(jié)果為非互質(zhì)數(shù),則各數(shù)除以其最大公約數(shù)。
3.3算法的編程實(shí)現(xiàn)
采用著名數(shù)學(xué)軟件MATLAB編程,因其擁有強(qiáng)大的矩陣運(yùn)算和作圖功能,并內(nèi)置非線(xiàn)性規(guī)劃函數(shù)fmincon( ),可簡(jiǎn)單、方便地實(shí)現(xiàn)本文算法。
例1: 配平化學(xué)反應(yīng)方程式
這是一個(gè)普通的化學(xué)反應(yīng)方程式,其反應(yīng)物與生成物總數(shù)為m+n=2+3=5,共含4種元素,各物質(zhì)中含有各元素的原子數(shù)如表1所示。
表1 各物質(zhì)中4種元素的原子數(shù)
故有:
用QPSO改進(jìn)算法求解列向量C,設(shè)置粒子群規(guī)模80,搜索區(qū)間[1,30],迭代次數(shù)500。分別運(yùn)行10次,皆能獲得精確解[1,4,1,2,2]T,其最少迭代次數(shù)為3、最多迭代次數(shù)為42,平均迭代次數(shù)為15.6。
例2: 配平化學(xué)反應(yīng)方程式
該化學(xué)反應(yīng)方程式的配平系數(shù)不唯一[6],其反應(yīng)物與生成物總數(shù)為m+m=3+2=5,共含3種元素,各物質(zhì)中含有各元素的原子數(shù)如表2所示。
表2 各物質(zhì)中3種元素的原子數(shù)
由此可知:
用QPSO改進(jìn)算法求解列向量C,設(shè)置粒子群規(guī)模80,搜索區(qū)間[1,30],迭代次數(shù)500。獨(dú)立運(yùn)行10次,7次獲得精確解[1,1,7,2,3]T,其余3次分別得到最優(yōu)解[2,1,1,10,3,4]T、[1,2,11,3,5]T和[2,2,14,4,6]T。獲得精確解的最少迭代次數(shù)為4、最多迭代次數(shù)為70,平均迭代次數(shù)為26.4。
例3: 配平化學(xué)反應(yīng)方程式
該化學(xué)反應(yīng)方程式相對(duì)復(fù)雜一些,其反應(yīng)物與生成物總數(shù)為m+n=3+3=6,共含5種元素,各物質(zhì)中含有各元素的原子數(shù)如表3所示。
表3 各物質(zhì)中5種元素的原子數(shù)
于是得到:
用QPSO改進(jìn)算法求解列向量C,設(shè)置粒子群規(guī)模100,搜索區(qū)間[1,40],迭代次數(shù)800。分別運(yùn)行10次,皆能獲得精確解[2,5,3,2,6,3]T,其最少迭代次數(shù)為19、最多迭代次數(shù)為697,平均迭代次數(shù)為275.5。
化學(xué)是一門(mén)傳統(tǒng)的基礎(chǔ)科學(xué),該課程的教學(xué)活動(dòng)固然應(yīng)以學(xué)科基礎(chǔ)知識(shí)和實(shí)驗(yàn)技能為重點(diǎn)。但處于目前這個(gè)科技和信息發(fā)展日新月異的時(shí)代,高校師生還應(yīng)涉獵更多的學(xué)科理論、觸及更深層次的現(xiàn)代信息技術(shù),將數(shù)學(xué)分析、算法設(shè)計(jì)、高級(jí)語(yǔ)言編程等科學(xué)方法和技術(shù)手段應(yīng)用于化學(xué)學(xué)科的教學(xué)和研究工作中。本文即是綜合運(yùn)用數(shù)學(xué)方法和計(jì)算機(jī)技術(shù)解決化學(xué)問(wèn)題的一種嘗試,實(shí)證結(jié)果表明其理論意義和實(shí)用價(jià)值兼?zhèn)?,具有一定的參考、借鑒作用。
[1]劉靜文,阮邦球.通識(shí)化學(xué):有機(jī)物燃燒方程式的簡(jiǎn)易配平法[J].化學(xué)教育,2015,36(16):68-70.
[2]夏慧明,梁華,周永權(quán).一種基于進(jìn)化策略的化學(xué)方程式配平新方法[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),2009,39(2):49-56.
[3]王志剛,夏慧明.基于差異演化算法的化學(xué)方程式配平研究[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,28(4):455-458.
[4]劉樹(shù)利.化學(xué)反應(yīng)方程式配平的數(shù)學(xué)模型及求解[J].濰坊學(xué)院學(xué)報(bào),2005,5(2):81-83.
[5]胡振.QPSO混合算法在PID控制器優(yōu)化中的應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(10):233-238.
[6]李玉虹.配平化學(xué)反應(yīng)方程式的數(shù)學(xué)模型[J].四川理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2006,19(3):34-38.
Equilibrate Chemical Equation by Quantum Particle Swarm Optimization Algorithm
CHENSu-bin
(Department of Agricultural Science and Technology, Nanchong Professional Technic College, Sichuan Nanchong 637000, China)
In order to use modern information technology to solve the problem of balancing chemical reaction equation, a general mathematical model of chemical equation was established according to the mass conservation law and it was converted to a matrix equation. Then the matrix equation was solved by using the improved quantum behaved particle swarm optimization algorithm and run it through MATLAB programming. Experimental results showed that the algorithm can efficiently obtain chemical equation balancing coefficient and apply to all the balancing chemical reaction equation.
chemical equation; balancing coefficient; QPSO; programming
陳素彬(1967-),女,講師,主要從事化學(xué)分析和信息技術(shù)應(yīng)用。
O6-041
A
1001-9677(2016)010-0201-03