羅艷霞,車 艷
(莆田學(xué)院 信息工程學(xué)院,福建 莆田 351100)
陶瓷配方過程是分析陶瓷坯料的化學(xué)組成,并定量分析每個(gè)化學(xué)組成質(zhì)量百分比的過程。目前,陶瓷配方主要是通過人工經(jīng)驗(yàn)來確定原料配方,這不僅耗時(shí)耗力,且效果也并不理想[1]。為了提高陶瓷配方效率,有學(xué)者利用計(jì)算機(jī)對配方進(jìn)行了研究。例如:楊云等[2]使用復(fù)合形法計(jì)算了陶瓷坯料配方,該方法具有較強(qiáng)的局部搜索能力,但由于全局性較差,所以未能找到全局最優(yōu)解;程杰[3]將標(biāo)準(zhǔn)遺傳算法應(yīng)用于陶瓷配方優(yōu)化設(shè)計(jì)中,該方法雖然具有良好的全局搜索能力,但卻容易過早收斂,從而導(dǎo)致配方精度較低。為了尋求最優(yōu)配方算法,本文針對這兩種算法的缺點(diǎn),提出了一種改進(jìn)的混合遺傳算法,即將遺傳算法和復(fù)合形算法結(jié)合起來,最終通過配方結(jié)果精度進(jìn)行比較,證明本文方法的有效性。
陶瓷坯料是由原料經(jīng)過計(jì)算配方而成的。每種坯料和原料的物理性質(zhì)和化學(xué)工藝是不同的,通過分析其化學(xué)組成可知,一般的坯料和原料由Al2O3、SiO2、CaO、Fe2O3、MgO、k2O、Na2O和TiO2等八種化學(xué)組成表示的[4],其他組成(如P2O5)因含量較小,因此本文不作考慮。
(1)
(2)
在配方設(shè)計(jì)中,以坯料的各化學(xué)組成質(zhì)量分?jǐn)?shù)為目標(biāo),暫不考慮原料價(jià)格等因素。由于本文研究的陶瓷坯料化學(xué)組成主要有8種,因此需要建立8個(gè)目標(biāo)函數(shù),并分別使每個(gè)目標(biāo)函數(shù)達(dá)到最小值。目標(biāo)函數(shù)的表達(dá)式為:
…
通過上述分析,陶瓷坯料配方優(yōu)化模型建立如下:
本文針對遺傳算法和復(fù)合形法的優(yōu)缺點(diǎn),將二者結(jié)合在一起,分別從全局和局部進(jìn)行尋優(yōu)。首先采用遺傳算法尋找到最優(yōu)解的位置,并把經(jīng)過遺傳算法計(jì)算后的值作為復(fù)合形法的初始點(diǎn);然后,再按照復(fù)合形法的步驟,進(jìn)行局部搜索,最終找到最優(yōu)解[6]。遺傳算法和復(fù)合形法的結(jié)合策略如下:
1)選擇編碼方式。復(fù)合形法主要采用浮點(diǎn)數(shù)編碼,遺傳算法主要采用二進(jìn)制編碼、浮點(diǎn)數(shù)編碼等,為了編碼方式的統(tǒng)一,兩種算法均采用浮點(diǎn)數(shù)編碼,不僅節(jié)省時(shí)間,同時(shí)也能提高算法的計(jì)算精度。
2)建立初始種群。在每種原料的用量上限和用料下限的分布范圍(由陶瓷配方預(yù)處理得到)內(nèi)建立初始種群,使種群個(gè)體處在可行域內(nèi)。
3)選擇適應(yīng)度函數(shù)。標(biāo)準(zhǔn)遺傳算法以目標(biāo)函數(shù)為適應(yīng)度函數(shù),但對于個(gè)體是否能遺傳到下一代,僅通過適應(yīng)度這一標(biāo)準(zhǔn)難以判斷。為此本文引入一個(gè)罰函數(shù),通過罰函數(shù)對不可行解進(jìn)行懲罰,以減少其適應(yīng)度值,降低個(gè)體遺傳到下一代的概率。同時(shí),由于引入了罰函數(shù),優(yōu)秀基因得以保留,最終結(jié)果得以收斂。本文的適應(yīng)度函數(shù)設(shè)立如公式(3)所示:
(3)
其中fi(X)為目標(biāo)函數(shù),D為一個(gè)較大的常數(shù),D=1000000000,CITE為計(jì)算的精度,CITE=1E-5,Hi(X)為配方約束條件。
4)選擇操作。本文采用精英保存策略,將當(dāng)前群體中的最優(yōu)個(gè)體直接保留到下一代中。這樣既實(shí)現(xiàn)了算法的穩(wěn)定,又保證了競爭環(huán)境的良好性。
5)交叉和變異。本文中,交叉算子采用算術(shù)交叉,變異算子采用算數(shù)變異,為了統(tǒng)一,交叉算子和變異算子也采用浮點(diǎn)數(shù)編碼。
6)當(dāng)確定好遺傳算法所有步驟后,隨著進(jìn)化代數(shù)的不斷增加,當(dāng)連續(xù)五代平均適應(yīng)度值不超過1%時(shí),選擇有限的個(gè)數(shù)作為復(fù)合形法的初始點(diǎn),這樣不僅可以省去構(gòu)造初始復(fù)合形點(diǎn)的過程,而且選擇的初始點(diǎn)都在可行域范圍內(nèi)。
7)計(jì)算復(fù)合形法的好點(diǎn)、壞點(diǎn)、次壞點(diǎn)、同時(shí)計(jì)算壞點(diǎn)的映射點(diǎn),映射點(diǎn)的計(jì)算可以采用反射、壓縮、伸張、收縮等方法。本文采用反射方法計(jì)算映射點(diǎn),當(dāng)映射點(diǎn)優(yōu)于壞點(diǎn)時(shí),用映射點(diǎn)代替壞點(diǎn),重新組成復(fù)合形法的初始點(diǎn)參與計(jì)算,直到滿足結(jié)束條件。
圖1為混合型遺傳算法流程圖。
混合遺傳算法只是簡單地將遺傳算法計(jì)算的結(jié)果作為復(fù)合形法的初始值,然后用復(fù)合形法完成后續(xù)計(jì)算,雖然也是將兩種算法結(jié)合,但是并沒有表現(xiàn)出遺傳算法和復(fù)合形算法的各自優(yōu)點(diǎn),因此對算法進(jìn)行改進(jìn),具體步驟如下:
1)確定編碼方式,改進(jìn)的混合遺傳算法依然采用浮點(diǎn)數(shù)編碼。
2)使用智能方式,建立初始種群,使種群個(gè)體處在可行域內(nèi)。
3)不僅要建立適應(yīng)度函數(shù),還要建立罰函數(shù),確保適應(yīng)度高的個(gè)體盡可能地遺傳到下一代。
4)從當(dāng)前種群中選擇適應(yīng)度值最高的個(gè)體作為復(fù)合形算法的初始點(diǎn),并以此初始點(diǎn)構(gòu)造其余K-1個(gè)初始點(diǎn)。構(gòu)造其他初始點(diǎn)的方法同原復(fù)合形法一致。
5)計(jì)算復(fù)合形法的好點(diǎn)、壞點(diǎn)、次壞點(diǎn),并同時(shí)沿壞點(diǎn)方向計(jì)算其映射點(diǎn)。比較壞點(diǎn)和映射點(diǎn)的大小,當(dāng)映射點(diǎn)好于壞點(diǎn)時(shí),映射點(diǎn)代替壞點(diǎn),重新構(gòu)成復(fù)合形法的初始點(diǎn),否則繼續(xù)變換映射點(diǎn),直到映射點(diǎn)好于壞點(diǎn),當(dāng)滿足循環(huán)結(jié)束條件時(shí),輸出結(jié)果。
圖1 混合遺傳算法流程圖Fig.1 Flowchart of hybrid genetic algorithm
6)用復(fù)合形法的計(jì)算結(jié)果替換原遺傳算法中的個(gè)體,同時(shí)采用移民策略提高個(gè)體的適應(yīng)度值。采用移民策略的原因是:當(dāng)代個(gè)體中存在一些適應(yīng)度值相對較低的個(gè)體,但其具有價(jià)值,若放棄掉這些個(gè)體,最終結(jié)果可能就非最優(yōu)解,所以,為了提高這些個(gè)體的適應(yīng)度值,提前對這些個(gè)體進(jìn)行交叉和變異操作,得到新的個(gè)體,用以替換原來的個(gè)體。
7)混合遺傳算法中,交叉率Pc和變異率Pm是固定不變的,隨著遺傳代數(shù)的變化,固定的交叉率和變異率不能有效地調(diào)節(jié)混合遺傳算法。在改進(jìn)的混合遺傳算法中,對交叉率和變異率進(jìn)行改進(jìn),使之隨著遺傳代數(shù)的進(jìn)化而變化。以平均適應(yīng)度值為基礎(chǔ),對于適應(yīng)度較差的個(gè)體,采用較大的交叉率和變異率;對于適應(yīng)度較好的個(gè)體則根據(jù)適應(yīng)度大小采用適當(dāng)?shù)慕徊媛屎妥儺惵?。?dāng)遺傳代數(shù)逐漸增大時(shí),逐漸降低交叉率和變異率,以利于算法的收斂。具體實(shí)現(xiàn)如下:
設(shè)Pcl=0.9*(1-gen/G),Pc2=0.8*(1-gen/G),則有
(4)
設(shè)Pml=0.3* (1-gen/G),Pm2=0.01* (l-gen/G),則有:
(5)
公式中,Pm和Pc的參數(shù)相同,gen為目前繁衍代數(shù);G為常數(shù)(G≥gen);fmax為群體最大適應(yīng)值,favg為群體的平均適應(yīng)值,f′為參與交叉的兩個(gè)個(gè)體的較大適應(yīng)值;f為變異個(gè)體適應(yīng)值。
8)當(dāng)遺傳算法滿足結(jié)束條件,選出最優(yōu)個(gè)體作為復(fù)合形法的初始點(diǎn),按照復(fù)合形法的步驟重新進(jìn)行最優(yōu)計(jì)算,待滿足復(fù)合形法結(jié)束條件時(shí),輸出最優(yōu)解,此時(shí)的最優(yōu)解才是結(jié)合了全局和局部的最優(yōu)解。
改進(jìn)混合遺傳算法的流程圖如圖2所示。
圖2 改進(jìn)混合遺傳算法流程圖Fig.2 Flowchart of modified hybrid genetic algorithm
以某廠瓷的目標(biāo)配方及原料組成成分為例進(jìn)行實(shí)例計(jì)算,所選目標(biāo)配方及原料的組成成分如表1所示。
表1 目標(biāo)配方及原料組成成分Tab.1 Objective formula and chemical composition of raw materials
采用混合遺傳算法后的配方結(jié)果如表2所示,采用改進(jìn)混合遺傳算法后的配方結(jié)果如表3所示。通過比較表2和表3可以看出,改進(jìn)的混合遺傳算法精度遠(yuǎn)高于混合遺傳算法。主要是因?yàn)楦倪M(jìn)的混合遺傳算法不僅完美結(jié)合了遺傳算法和復(fù)合形法,而且分別從全局和局部進(jìn)行了最優(yōu)解的搜索。
表2 混合遺傳算法配方結(jié)果Tab.2 Formula results of hybrid genetic algorithm
表3 改進(jìn)的混合遺傳算法配方結(jié)果Tab.3 Formula results of modified hybrid genetic algorithm
從實(shí)驗(yàn)結(jié)果分析可以看出,改進(jìn)混合遺傳算法的配方精度絕對誤差僅為0.01,明顯優(yōu)于混合遺傳算法。改進(jìn)混合遺傳算法不僅完美結(jié)合了遺傳算法和復(fù)合形法,而且分別從全局和局部進(jìn)行了最優(yōu)解的搜索,同時(shí)在遺傳操作中采用了移民策略,對交叉率和變異率進(jìn)行了改進(jìn),不僅提高了計(jì)算精度,而且保留了優(yōu)秀基因,因此改進(jìn)遺傳算法在陶瓷坯料配方中有很好的適應(yīng)性。