陳素彬
(南充職業技術學院農業科學技術系,四川 南充 637000)
?
利用量子粒子群優化算法配平化學方程式
陳素彬
(南充職業技術學院農業科學技術系,四川南充637000)
為了運用現代信息技術解決化學反應方程式配平的問題,根據質量守恒定律建立了化學方程式的通用數學模型,并將其轉換為矩陣方程;運用改進的量子行為粒子群優化算法求解矩陣方程,并以MATLAB編程運行。實驗結果表明,該算法能高效地求得化學反應方程式的配平系數,適用于任意化學反應方程式的配平。
化學反應方程式;配平系數;量子行為粒子群優化算法;編程
配平化學反應方程式的傳統方法包括觀察法、最小公倍數法、歸一法、奇數配偶法、待定系數法、聯合方程法、矩陣法等[1],它們有的僅能用于特定類型的化學反應,有的計算復雜、手工求解難度大,不適合復雜的化學反應方程式。為此,我們根據質量守恒定律為化學反應方程式建立一個通用數學模型[2-3],運用改進的群體智能優化算法對其求解即得配平系數。在此基礎上,將模型及其求解過程編寫為高級語言程序,從而可用計算機來高效地解決任意化學反應方程式的配平問題。
任意化學反應方程式可表示為:
x1A1+x2A2+…+xmAm=y1B1+y2B2+…+ynBn
其中:A1,A2,…,Am、B1,B2,…,Bn分別為m種反應物和n種生成物;x1,x2,…,xm、y1,y2,…,yn分別為各反應物和生成物的配平系數。
假設反應物和生成物共含有s種元素,并且第i(i=1,2,…,m)種反應物中含有第k(k=1,2,…,s)種元素的原子數為aik,第j(j=1,2,…,n)種生成物中含有第k(k=1,2,…,s)種元素的原子數為bjk。于是由質量守恒定律得出元素k的平衡方程為:
a1kx1+a2kx2+…+aikxm=b1ky1+b2ky2+…+bjkyn
將各元素平衡方程的右端左移,即得齊次線性方程組:
(1)
分別將反應物與生成物中各元素的原子數表示為矩陣P1、P2,反應物與生成物的配平系數表示為列向量X、Y,即:
X=(x1,x2,…,xm)τ,Y=(y1,y2,…,yn)τ

PC=0
(2)
對于任意化學反應方程式,皆可通過求解式(2)中的列向量C來獲得配平系數的最簡正整數值[4]。但用普通的數學方法對該式求解有一定難度、且計算過程較為繁瑣,因此我們采用改進的量子粒子群優化算法來求解,并將其編寫為MATLAB程序在計算機上運行,使用起來簡便、高效。
2.1量子行為粒子群優化算法
量子行為粒子群優化算法(Quantum-behaved Particle Swarm Optimization,簡稱QPSO)是一種群體智能搜索算法,其數學描述為:在N維空間中,有M個代表潛在問題解的粒子組成群體X={x1,x2,…,xm}。在t時刻,第i(i=1,2,…,m)個粒子的位置為Xi(t)=[xi,1(t),xi,2(t),…,xi,N(t)],個體最好位置為Pi(t)=[pi,1(t),pi,2(t),…,pi,N(t)],群體最好位置為G(t)=[g1(t),g2(t),…,gN(t)]、且G(t)=Pg(t),其中g(g∈{1,2,…,M})為群體最好位置粒子的下標。
以f(X)為適應度函數,當優化目標為求最小值時,粒子i的個體最優位置按下式確定:
相應的群體最優位置為:
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為當前迭代次數;C(t)為粒子群的平均最優位置;φj(t)和ui,j(t)為[0,1]區間的隨機數。
β是QPSO算法的唯一參數,稱之為擴張收縮因子,一般令其值在[1.0,0.5]區間線性遞減,可得到較好的優化結果。設β0、β1分別為β的初值和終值,t、tmax分別為當前迭代次數和最大迭代次數,則β的當前值為:
β(t)=(β0-β1)(tmax-t)/tmax+β1
2.2QPSO算法的改進
與其它群體智能搜索算法類似,QPSO算法也不能避免因早熟現象而難以獲得全局最優解的問題,為此我們同時從兩個方面予以改進。
(1)為粒子位置增加柯西分布隨機數擾動項。柯西分布具有較高的兩翼概率,易于產生遠離原點的隨機數。利用該特性可提高粒子的多樣性,使粒子的位移增大,從而有助于跳出局部最優,增強算法的全局搜索能力。相應公式如下:
Crnd(0,1)=tan[π·(rand( )-0.5)]
xi,j=xi,j+xi,j·Crnd(0,1)
式中:Crnd(0,1)為標準柯西分布隨機數;rand( )為[0,1]區間的均勻分布隨機數;xx,j為粒子個體的當前位置。
(2)在算法中引入非線性規劃函數。非線性規劃(nonlinear programming)研究n元實函數在一組等式或不等式約束條件下的極值問題,其目標函數和約束條件至少有一個是未知量的非線性函數。非線性規劃的特點是局部搜索能力強,在QPSO算法中將其與柯西分布隨機數擾動項有機結合,可有效增強算法的整體搜索能力,提高其計算精度,顯著加快收斂速度。
MATLAB提供了非線性規劃函數fmincon( ),可從一個預估值開始搜索約束條件下多元非線性函數的最小值。其調用格式為:
x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
式中:fun為目標函數,x0為x的初設值,lb、ub為x的下界和上界,其余參數取默認值即可。
作為一種改進措施,在QPSO算法中執行非線性規劃函數的頻度不宜太高,以免影響算法的運行速度。可在迭代過程中周期性地調用fmincon( )函數(如每迭代10次調用1次該函數),調用時將當前的適應度函數值、粒子位置及粒子搜索區間的下界、上界分別傳遞給形參fun、x0、lb和ub即可[5]。
3.1算法的基本設置
(1)粒子的編碼方法。算法的目標是求取式(2)的最簡整數解,因此應對粒子進行正整數編碼。為了避免產生無效解,并將搜索范圍控制在一定的區域內,可為其預設一個合理的搜索區間[1,U]。
(2)粒子群的規模。較多的粒子數目雖能提高搜索的成功率,但也會耗費更多的運行時間。一般的化學方程式可將粒子數設為100左右,較復雜的方程式則適當增大。粒子的維度為反應物和生成物的總數,即(m+n)。
(3)適應度函數。根據式(2)可得適應度函數:
將搜索到的配平系數(最優粒子位置)代入式(2)得到s個值,其和越小越接近最優解。當適應度函數值為0時,即意味著得到了問題的精確解。
3.2算法的運行步驟
(1)由化學反應方程式確定反應物與生成物的系數矩陣X和Y、反應物與生成物中各元素的原子數矩陣P1和P2,并設置搜索區間的上界U。
(2)在區間[1,U]內隨機生成粒子群。
(3)計算當前的粒子適應度值。若為0,則相應的粒子位置即為列向量C的精確解,轉步驟(9);否則執行步驟(4)。
(4)根據適應度值更新粒子的個體最優位置。
(5)計算當前的全局最優位置,若其優于上次迭代的全局最優位置,則更新之。
(6)更新粒子的位置,為其增加柯西分布隨機數擾動項,并進行越界處理;
(7)若當前迭代次數為10的倍數,則調用非線性規劃函數;
(8)重復步驟(3)~(7),直到迭代完成。
(9)若所得結果為非互質數,則各數除以其最大公約數。
3.3算法的編程實現
采用著名數學軟件MATLAB編程,因其擁有強大的矩陣運算和作圖功能,并內置非線性規劃函數fmincon( ),可簡單、方便地實現本文算法。
例1: 配平化學反應方程式

這是一個普通的化學反應方程式,其反應物與生成物總數為m+n=2+3=5,共含4種元素,各物質中含有各元素的原子數如表1所示。

表1 各物質中4種元素的原子數
故有:
用QPSO改進算法求解列向量C,設置粒子群規模80,搜索區間[1,30],迭代次數500。分別運行10次,皆能獲得精確解[1,4,1,2,2]T,其最少迭代次數為3、最多迭代次數為42,平均迭代次數為15.6。
例2: 配平化學反應方程式
該化學反應方程式的配平系數不唯一[6],其反應物與生成物總數為m+m=3+2=5,共含3種元素,各物質中含有各元素的原子數如表2所示。

表2 各物質中3種元素的原子數
由此可知:
用QPSO改進算法求解列向量C,設置粒子群規模80,搜索區間[1,30],迭代次數500。獨立運行10次,7次獲得精確解[1,1,7,2,3]T,其余3次分別得到最優解[2,1,1,10,3,4]T、[1,2,11,3,5]T和[2,2,14,4,6]T。獲得精確解的最少迭代次數為4、最多迭代次數為70,平均迭代次數為26.4。
例3: 配平化學反應方程式
該化學反應方程式相對復雜一些,其反應物與生成物總數為m+n=3+3=6,共含5種元素,各物質中含有各元素的原子數如表3所示。

表3 各物質中5種元素的原子數
于是得到:
用QPSO改進算法求解列向量C,設置粒子群規模100,搜索區間[1,40],迭代次數800。分別運行10次,皆能獲得精確解[2,5,3,2,6,3]T,其最少迭代次數為19、最多迭代次數為697,平均迭代次數為275.5。
化學是一門傳統的基礎科學,該課程的教學活動固然應以學科基礎知識和實驗技能為重點。但處于目前這個科技和信息發展日新月異的時代,高校師生還應涉獵更多的學科理論、觸及更深層次的現代信息技術,將數學分析、算法設計、高級語言編程等科學方法和技術手段應用于化學學科的教學和研究工作中。本文即是綜合運用數學方法和計算機技術解決化學問題的一種嘗試,實證結果表明其理論意義和實用價值兼備,具有一定的參考、借鑒作用。
[1]劉靜文,阮邦球.通識化學:有機物燃燒方程式的簡易配平法[J].化學教育,2015,36(16):68-70.
[2]夏慧明,梁華,周永權.一種基于進化策略的化學方程式配平新方法[J].數學的實踐與認識,2009,39(2):49-56.
[3]王志剛,夏慧明.基于差異演化算法的化學方程式配平研究[J].哈爾濱商業大學學報(自然科學版),2012,28(4):455-458.
[4]劉樹利.化學反應方程式配平的數學模型及求解[J].濰坊學院學報,2005,5(2):81-83.
[5]胡振.QPSO混合算法在PID控制器優化中的應用[J].計算機系統應用,2014,23(10):233-238.
[6]李玉虹.配平化學反應方程式的數學模型[J].四川理工學院學報(自然科學版),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-),女,講師,主要從事化學分析和信息技術應用。
O6-041
A
1001-9677(2016)010-0201-03