宗原,劉登峰,2*,劉以安
1(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫,214122)2(輕工過(guò)程控制教育部重點(diǎn)實(shí)驗(yàn)室(江南大學(xué)),江蘇 無(wú)錫,214122)
在我國(guó)釀酒史中,黃酒是最悠久的酒種之一,與啤酒、葡萄酒并稱世界三大古酒[1]。隨著黃酒生產(chǎn)規(guī)模的擴(kuò)大,僅憑熟練工人師傅的經(jīng)驗(yàn)逐漸不能適應(yīng)工廠日益增長(zhǎng)的需求,為了使釀造出來(lái)的黃酒口感更好,利用數(shù)學(xué)模型與計(jì)算機(jī)結(jié)合對(duì)發(fā)酵過(guò)程中的參數(shù)進(jìn)行辨識(shí),進(jìn)而對(duì)發(fā)酵過(guò)程進(jìn)行優(yōu)化控制,可以提高黃酒品質(zhì)的穩(wěn)定性,對(duì)黃酒行業(yè)的發(fā)展起著至關(guān)重要的作用。
近年來(lái),針對(duì)黃酒前發(fā)酵過(guò)程的建模和參數(shù)辨識(shí)工作已經(jīng)有團(tuán)隊(duì)展開了系統(tǒng)的研究,呂美[2]主要通過(guò)對(duì)黃酒發(fā)酵過(guò)程中的酸敗預(yù)測(cè)角度進(jìn)行建模和參數(shù)辨識(shí)來(lái)實(shí)現(xiàn)在線檢測(cè)發(fā)酵醪液的酸敗情況,但只在測(cè)試函數(shù)上驗(yàn)證了模型的好壞,沒有在實(shí)際發(fā)酵過(guò)程中去驗(yàn)證其優(yōu)劣;LIU等[3]則針對(duì)女兒紅黃酒前發(fā)酵過(guò)程,從模擬曲和溫度控制角度[4]分析兩者對(duì)黃酒發(fā)酵進(jìn)程的影響,并建立了黃酒前發(fā)酵的機(jī)理—數(shù)據(jù)驅(qū)動(dòng)混合模型[5-6],并基于Levenberg-Marquardt方法實(shí)現(xiàn)了發(fā)酵過(guò)程的參數(shù)辨識(shí)[7],在此基礎(chǔ)上,基于遺傳算法,以溫度為關(guān)鍵控制變量,以實(shí)現(xiàn)黃酒中酒精含量最大化為目的,實(shí)現(xiàn)了黃酒前發(fā)酵過(guò)程的優(yōu)化[8]。但是黃酒發(fā)酵過(guò)程的參數(shù)辨識(shí)與優(yōu)化是典型的多目標(biāo)優(yōu)化過(guò)程,并且利用基于Levenberg-Marquardt方法實(shí)現(xiàn)了發(fā)酵過(guò)程模型的參數(shù)辨識(shí)時(shí)存在易陷入局部最優(yōu),收斂速度慢,很難準(zhǔn)確獲取具有強(qiáng)泛化能力的模型參數(shù)的問(wèn)題。因此,發(fā)展出一個(gè)適應(yīng)于多目標(biāo)優(yōu)化的算法,并克服目前算法存在的問(wèn)題,成為研究的關(guān)鍵。
在國(guó)外,蟻獅算法被用應(yīng)用于多目標(biāo)變壓器設(shè)計(jì)優(yōu)化[9]、電力系統(tǒng)的優(yōu)化[10]、無(wú)線電傳感器網(wǎng)絡(luò)[11]、無(wú)人機(jī)航線規(guī)劃問(wèn)題[12]等領(lǐng)域。在國(guó)內(nèi),徐欽帥等[13]提出了具有邊界收縮因子的蟻獅優(yōu)化算法,但其仍然具有收斂速度慢的缺點(diǎn);張振興等[14]利用混沌算子優(yōu)化蟻獅算法,雖然能夠快速準(zhǔn)確的得到1條滿足實(shí)驗(yàn)要求的航跡,但缺乏和其他算法的對(duì)比,沒有足夠的說(shuō)服性;于建芳等[15]用萊維飛行和黃金正弦優(yōu)化蟻獅算法,雖然實(shí)驗(yàn)表明尋優(yōu)效果良好,但只在測(cè)試函數(shù)上進(jìn)行了測(cè)試,沒有在工程問(wèn)題上進(jìn)行實(shí)驗(yàn)來(lái)驗(yàn)證其算法的效果。
萊維飛行是一種在搜索區(qū)域內(nèi)隨機(jī)游走的搜尋方式,在搜索的過(guò)程中會(huì)出現(xiàn)較大的躍動(dòng),運(yùn)動(dòng)方向也會(huì)隨機(jī)產(chǎn)生變化,就使得算法可以盡快跳出局部尋優(yōu)。LIU等[16]利用萊維飛行和差分進(jìn)化融合鯨魚優(yōu)化算法解決了車間作業(yè)的調(diào)度問(wèn)題;YANG等[17]將萊維飛行和啟發(fā)式算法引入粒子群優(yōu)化算法設(shè)計(jì)出一種新的快速局部搜索算法,有效地提高了無(wú)線傳感器節(jié)點(diǎn)的定位精度。LI等[18]在蝙蝠算法的位置更新中引入萊維飛行使算法保持了良好的種群多樣性,提高了全局搜索能力,在求解具有約束和未知搜索空間中有更高的優(yōu)化性能。
柯西變異具有原點(diǎn)概率密度大、兩端密度小、分布較長(zhǎng)的特點(diǎn),可以加快算法的收斂速度和精度。SAPRE等[19]在飛蛾撲火算法的基礎(chǔ)上利用柯西變異對(duì)約束邊界進(jìn)行處理,提高了算法的收斂性,YANG等[20]將柯西變異結(jié)合鴿群算法應(yīng)用到調(diào)整艦載機(jī)自動(dòng)著陸系統(tǒng)的參數(shù)中,提高了任務(wù)的效率。
基于萊維飛行和柯西變異的優(yōu)點(diǎn),針對(duì)基于Levenberg-Marquardt方法辨識(shí)黃酒發(fā)酵過(guò)程模型參數(shù)時(shí)易陷入局部最優(yōu)、收斂速度慢、很難準(zhǔn)確獲取具有強(qiáng)泛化能力的模型參數(shù)的問(wèn)題,本文提出了一種具有萊維飛行和柯西變異的蟻獅優(yōu)化算法(ant lion optimization with Levy flight and Cauchy mutation,LACLO)。Levy飛行[21]能夠提高算法的全局尋優(yōu)能力;柯西變異能夠提高算法的收斂性和穩(wěn)定度[22],在尋找全局最優(yōu)解時(shí)具有很好的調(diào)節(jié)能力。本文選擇6個(gè)測(cè)試函數(shù)對(duì)LACLO進(jìn)行測(cè)試,并與遺傳算法(genetic algorithm,GA)、粒子群優(yōu)化算法(particle swarm optimization,PSO)和原始蟻獅優(yōu)化算法(ant lion optimization,ALO)進(jìn)行對(duì)比,結(jié)果表明LCALO具有更高的尋優(yōu)精度和收斂速度。最后將其應(yīng)用于黃酒發(fā)酵過(guò)程模型的參數(shù)辨識(shí)中,仿真結(jié)果表明該改進(jìn)算法具備良好的優(yōu)化能力。
ALO是由澳大利亞學(xué)者M(jìn)IRJALILI[23]通過(guò)研究蟻獅捕食螞蟻的行為所提出的一種智能優(yōu)化算法。該算法調(diào)節(jié)參數(shù)少,精確度高,魯棒性好,被國(guó)內(nèi)外學(xué)者采用并對(duì)其進(jìn)行改進(jìn)。
蟻獅是一種肉食性昆蟲,以昆蟲為食,幼蟲生活于干燥的地表下,在沙質(zhì)土中造成漏斗狀陷阱以用來(lái)誘捕獵物(圖1),當(dāng)獵物掉入陷阱后,蟻獅為防止獵物逃走會(huì)向外刨出沙土,使獵物滑入陷阱底部從而進(jìn)食。MIRJALILI根據(jù)其習(xí)性提出了蟻獅優(yōu)化算法,步驟如下。
圖1 蟻獅獵食示意圖
螞蟻在尋找食物時(shí)采用隨機(jī)游走,按照公式(1)產(chǎn)生隨機(jī)游走的螞蟻種群:
X(t)=[0, cumsum(2r(t1)-1), cumsum(2r(t2)-1),…, cumsum(2r(tn)-1)]
(1)
式中:cumsum是螞蟻游走位置的累加和,n是最大的迭代值,t為隨機(jī)游走的步長(zhǎng),r(t)定義了一個(gè)如公式(2)所示的隨機(jī)函數(shù):
(2)
式中:rand是在[0,1]的均勻分布。
在每次優(yōu)化過(guò)程中,都會(huì)更新螞蟻的位置,但公式(1)不能直接用于螞蟻位置的更新,需要保證其在求解空間內(nèi)進(jìn)行搜索,對(duì)其游走位置進(jìn)行轉(zhuǎn)換,如公式(3)所示:
(3)
螞蟻在游走過(guò)程中,會(huì)受到蟻獅陷阱大小的影響,因此對(duì)該行為方式進(jìn)行數(shù)學(xué)建模,提出公式(4)和公式(5):
(4)
(5)
螞蟻調(diào)入陷阱后,蟻獅為了防止獵物逃跑,會(huì)立即向外拋出沙土,防止獵物逃跑,這種行為會(huì)使陷阱范圍的大小自適應(yīng)的調(diào)整,對(duì)該行為進(jìn)行建模得到公式(6)和公式(7):
(6)
(7)
式中:I=10w·t/T,t為當(dāng)前迭代次數(shù),T為最大迭代次數(shù),w為基于當(dāng)前迭代次數(shù)定義的一個(gè)常數(shù)(t>0.1T時(shí)w=2,t>0.5T時(shí)w=3,t>0.75T時(shí)w=4,t>0.9T時(shí)w=5,t>0.95T時(shí)w=6)。
當(dāng)蟻獅捕獵到獵物后,會(huì)將其拉到沙土下并吞噬其身體,將自己的位置轉(zhuǎn)移到捕食到螞蟻的地點(diǎn);為此提出公式(8):
(8)
在每次迭代過(guò)程中,都會(huì)將適應(yīng)度最好的蟻獅的位置保存下來(lái)作為精英蟻獅,所以會(huì)影響到螞蟻的游走,如公式(9)所示:
(9)
針對(duì)ALO的缺點(diǎn),本文引入LACLO。將服從萊維分布的隨機(jī)數(shù)用于圍繞更新蟻獅游走的螞蟻種群中,增加螞蟻種群的多樣性,提高全局的搜索能力。同時(shí)引入柯西變異用于防止陷入局部最優(yōu)和提高算法的全局搜索能力和收斂速度。
Levy飛行是由法國(guó)數(shù)學(xué)家保羅·列維于1937年提出的一種搜索策略,而后有學(xué)者發(fā)現(xiàn)多生物群體的活動(dòng)方式都可以按照該行為方式進(jìn)行游走[24];自然界中很多動(dòng)物在不確定的環(huán)境中搜索食物,采用該策略保證在短距離內(nèi)可以仔細(xì)尋找和偶爾長(zhǎng)距離的跳躍又保證可以進(jìn)入到另一個(gè)搜索空間內(nèi)尋找。
利用Levy飛行具有突變性的特點(diǎn)在探索大范圍空間問(wèn)題上具有很大的優(yōu)勢(shì),可以對(duì)求解區(qū)域進(jìn)行充分遍歷,提高算法的全局搜索能力[25],實(shí)現(xiàn)對(duì)求解范圍內(nèi)的充分尋找。
Levy飛行的概率密度函數(shù)服從Levy分布,函數(shù)如公式(10)所示:
(10)
式中:0<α≤2,控制分布圖形的銳度,γ>0控制分布圖形的跨度。當(dāng)α=2時(shí),等同于高斯分布,當(dāng)α=1時(shí),Levy分布為柯西分布。通過(guò)模擬的辦法隨機(jī)地產(chǎn)生Levy分布的步長(zhǎng),位置更新如公式(11)所示:
(11)
式中:α是步長(zhǎng),為矢量運(yùn)算, Levy(λ)為隨機(jī)搜索路徑,表達(dá)如公式(12)~公式(14)所示:
(12)
式中:當(dāng)β=1.5時(shí),μ,v服從標(biāo)準(zhǔn)正態(tài)分布。
(13)
(14)
式中:τ(1+β)是標(biāo)準(zhǔn)伽馬函數(shù)。
針對(duì)蟻獅容易陷入局部最優(yōu)的缺點(diǎn),利用柯西變異可以增加種群的多樣性[26],提高算法的收斂精度和速度??挛鞣植嫉母怕拭芏群瘮?shù)如公式(15)所示:
(15)
式中:t為位置參數(shù),s為比例參數(shù),當(dāng)t=0,s=1時(shí),我們稱其為標(biāo)準(zhǔn)柯西分布,即如公式(16)所示:
(16)
由柯西分布可以得出,柯西分布函數(shù)在原點(diǎn)處的峰值較小,但在兩端的分布較長(zhǎng),蟻獅在變異后可以以較短的時(shí)間來(lái)搜索相鄰區(qū)間,跳出局部最優(yōu)解,可以保證算法有較好的全局尋優(yōu)能力,針對(duì)以上缺點(diǎn)可以利用柯西分布跳出局部最優(yōu),如公式(17)所示:
x′=x+φCauchy(0,1)
(17)
式中:x為初始位置,x′是經(jīng)過(guò)柯西變異后的位置,Cauchy(0,1)是標(biāo)準(zhǔn)柯西分布,參數(shù)用來(lái)控制柯西分布變異的強(qiáng)度,本文中我們令φ=0.8。
LCALO的流程圖如圖2所示。
圖2 改進(jìn)蟻獅算法流程圖
算法所在實(shí)驗(yàn)平臺(tái)為Windows 7、64bit系統(tǒng)、4G內(nèi)存,采用Matlab2019a進(jìn)行仿真實(shí)驗(yàn)。本文采用ALO,GA,PSO和LCALO進(jìn)行對(duì)比,所有算法設(shè)置統(tǒng)一的參數(shù),種群規(guī)模為30,迭代次數(shù)100次,以保證實(shí)驗(yàn)的公平性和合理性。
本節(jié)通過(guò)6個(gè)標(biāo)準(zhǔn)函數(shù)測(cè)試LCALO的尋優(yōu)精度和收斂速度,測(cè)試函數(shù)設(shè)置如表1所示。
表1 標(biāo)準(zhǔn)測(cè)試函數(shù)
本節(jié)分別對(duì)以上測(cè)試函數(shù)重復(fù)尋優(yōu)20次,從最優(yōu)值、平均值和方差來(lái)評(píng)估改進(jìn)后的蟻獅優(yōu)化算法的全局尋優(yōu)能力和穩(wěn)定性,實(shí)驗(yàn)結(jié)果如表2所示。
表2 實(shí)驗(yàn)結(jié)果
根據(jù)實(shí)驗(yàn)結(jié)果可知,對(duì)于測(cè)試函數(shù),本文提出LACLO的平均值、方差均優(yōu)于ALO和GA,部分函數(shù)僅次于PSO。為了更加簡(jiǎn)明直觀的對(duì)比LCALO算法和其他算法的尋優(yōu)能力,圖3給出了6個(gè)測(cè)試函數(shù)在實(shí)驗(yàn)20次中其中1次的收斂曲線。
由圖3可知,LCALO可以更快的找到最優(yōu)值,說(shuō)明LCALO的收斂速度快,具有較強(qiáng)的開發(fā)性,有效提高了算法的全局搜索能力和局部開發(fā)能力,在優(yōu)化函數(shù)方面表現(xiàn)良好。
目前米類被廣泛用于酒類的生產(chǎn),但國(guó)內(nèi)很少有人設(shè)計(jì)黃酒發(fā)酵過(guò)程的建模,國(guó)際中也僅有一些利用玉米淀粉來(lái)生產(chǎn)酒精的建模研究及應(yīng)用可以作為參考。酒精是黃酒前發(fā)酵過(guò)程中發(fā)酵酒醪的主要成分,是衡量黃酒品質(zhì)的重要指標(biāo),同時(shí)也是黃酒酒體口感形成的主要成分[27],為了得到口感更好的黃酒,需要建立精確的發(fā)酵模型,基于對(duì)現(xiàn)場(chǎng)采集的數(shù)據(jù),對(duì)模型參數(shù)進(jìn)行辨識(shí)。
a-Schaffer N.2;b-Sphere;c-Ackley;d-Schwefel;e-Rosenbrock;f-Griewank
在黃酒釀造過(guò)程中同時(shí)糖化和發(fā)酵工程中會(huì)產(chǎn)生如下反應(yīng)[5]。
淀粉與麥曲以k1的速率結(jié)合生成中間產(chǎn)物,在這個(gè)過(guò)程中淀粉的消耗速率如公式(17)所示:
(17)
式中:S為淀粉濃度,E為麥曲濃度。淀粉鏈與α-淀粉酶結(jié)合的中間產(chǎn)物(C5)通過(guò)酶的作用以k2、k3、k4的速率生成產(chǎn)物麥芽三糖、麥芽二糖和葡萄糖,同時(shí)葡萄糖、麥芽二糖、麥芽三糖分別以k5、k6、k8的速率為酵母生長(zhǎng)提供碳源,模型如公式(18)~公式(23)所示:
(18)
(19)
(20)
(21)
(22)
(23)
式中:常數(shù)1.037,1.056,1.111,0.538和0.511分別為依據(jù)底物和其對(duì)應(yīng)產(chǎn)物分子質(zhì)量計(jì)算得出的得率系數(shù);剩余常數(shù)由Balling方程求得;ks1~ks6是每種底物的飽和常數(shù)。
酶濃度和中間產(chǎn)物濃度的變化率如公式(24)和公式(25)所示:
(24)
(25)
將LCALO應(yīng)用于該模型,采用室溫下采集的數(shù)據(jù)對(duì)模型中的k1~k9進(jìn)行尋優(yōu),適應(yīng)度函數(shù)采用均方誤差來(lái)評(píng)價(jià)模型的好壞,表3為模型參數(shù)的取值范圍。
表3 模型參數(shù)取值范圍
為了比較算法的優(yōu)劣,分別用GA、PSO、ALO和LCALO對(duì)模型進(jìn)行10次仿真,仿真結(jié)果如表4所示。在10次仿真過(guò)程中PSO和ALO的求解精度相差不大,ALO略高于PSO,LCALO的方差為3.05e+04,比ALO縮小了近6倍,穩(wěn)定性更好。
表4 模型仿真誤差結(jié)果
4種算法的仿真結(jié)果如圖4所示。LCALO模擬值的誤差相對(duì)于GA,PSO和ALO誤差更小,說(shuō)明該改進(jìn)算法具有更好的優(yōu)化能力。
本文針對(duì)目前已經(jīng)報(bào)道的算法求解黃酒發(fā)酵模型時(shí)預(yù)測(cè)精度低和利用ALO辨識(shí)黃酒發(fā)酵過(guò)程模型時(shí)具有收斂速度慢、易陷入局部最優(yōu)的缺點(diǎn),成功建立了一種融合萊維飛行和柯西變異的蟻獅優(yōu)化算法。更新圍繞蟻獅游走的螞蟻種群,增加螞蟻種群的多樣性以增加算法的全局尋優(yōu)能力;采用柯西變異可以使蟻獅個(gè)體受局部最優(yōu)值的約束力下降,快速跳出局部最優(yōu),在很大程度上改善算法的尋優(yōu)能力。最后將LCALO應(yīng)用于黃酒發(fā)酵模型中進(jìn)行模擬,仿真結(jié)果說(shuō)明該算法具有較好的優(yōu)化能力。
a-GA;b-PSO;c-ALO;d-LCALO