基于人工魚(yú)群算法的微生物發(fā)酵優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及微生物發(fā)酵控制領(lǐng)域,特別是涉及一種基于人工魚(yú)群算法的微生物發(fā) 酵優(yōu)化方法。
【背景技術(shù)】
[0002] 微生物發(fā)酵過(guò)程是高度復(fù)雜且非線性的過(guò)程,難于用精確的數(shù)學(xué)模型對(duì)發(fā)酵過(guò)程 進(jìn)行建模。近幾年,隨著計(jì)算智能算法的發(fā)展,越來(lái)越多的計(jì)算智能算法被應(yīng)用到微生物發(fā) 酵過(guò)程建模與優(yōu)化控制上。如應(yīng)用BP神經(jīng)網(wǎng)絡(luò)、遺傳算法等對(duì)發(fā)酵過(guò)程進(jìn)行建模與優(yōu)化控 制?,F(xiàn)有技術(shù)常把BP神經(jīng)網(wǎng)絡(luò)、遺傳算法單獨(dú)應(yīng)用于發(fā)酵過(guò)程的建模與優(yōu)化控制。也有聯(lián) 合應(yīng)用BP神經(jīng)網(wǎng)絡(luò)與遺傳算法對(duì)發(fā)酵過(guò)程進(jìn)行建模與優(yōu)化控制,但這種聯(lián)合應(yīng)用常常只 利用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),再應(yīng)用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)對(duì)發(fā)酵過(guò)程進(jìn)行建模 與優(yōu)化控制。另外傳統(tǒng)的遺傳算法優(yōu)化發(fā)酵控制也存在如下主要問(wèn)題:
[0003] 1、傳統(tǒng)遺傳算法在個(gè)體更新后并沒(méi)有判斷其是否得到優(yōu)化,以至于經(jīng)過(guò)交叉、變 異后的個(gè)體出現(xiàn)不如父代的退化現(xiàn)象;
[0004] 2、傳統(tǒng)遺傳算法容易出現(xiàn)早熟收斂的問(wèn)題,陷入局部最優(yōu)解;
[0005] 3、傳統(tǒng)遺傳算法適應(yīng)度值高的個(gè)體在一代中被選擇的概率高,相應(yīng)的濃度高,適 應(yīng)度值低的個(gè)體在一代中被選擇的概率低,相應(yīng)的濃度低,沒(méi)有自我調(diào)節(jié)能力,不利于保持 群體中個(gè)體的多樣性;
[0006] 4、現(xiàn)有的發(fā)酵控制優(yōu)化方法都要通過(guò)預(yù)先設(shè)計(jì)實(shí)驗(yàn),然后實(shí)施設(shè)計(jì)的實(shí)驗(yàn)方案, 得到實(shí)驗(yàn)數(shù)據(jù)再進(jìn)行分析優(yōu)化控制策略。
【發(fā)明內(nèi)容】
[0007] 為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種基于人工魚(yú)群算法的微生物發(fā)酵優(yōu)化方 法,用于解決現(xiàn)有微生物發(fā)酵控制過(guò)程需要預(yù)先設(shè)計(jì)發(fā)酵實(shí)驗(yàn),并且不易得到發(fā)酵最優(yōu)個(gè) 體和最優(yōu)發(fā)酵控制參數(shù)的問(wèn)題。
[0008] 本發(fā)明是這樣實(shí)現(xiàn)的:
[0009] 一種基于人工魚(yú)群算法的微生物發(fā)酵優(yōu)化方法,包括以下步驟:
[0010] 步驟一、建立微生物發(fā)酵數(shù)據(jù)集,所述發(fā)酵數(shù)據(jù)集包括微生物發(fā)酵過(guò)程中的發(fā)酵 控制參數(shù)以及與發(fā)酵控制參數(shù)對(duì)應(yīng)的發(fā)酵產(chǎn)物的數(shù)量;
[0011] 步驟二、將所述微生物發(fā)酵數(shù)據(jù)集隨機(jī)分成訓(xùn)練數(shù)據(jù)集與測(cè)試數(shù)據(jù)集兩個(gè)部分;
[0012] 步驟三、構(gòu)建BP神經(jīng)網(wǎng)絡(luò),其中,發(fā)酵控制參數(shù)作為BP神經(jīng)網(wǎng)絡(luò)的輸入層輸入節(jié) 點(diǎn),發(fā)酵產(chǎn)物的產(chǎn)量作為BP神經(jīng)網(wǎng)絡(luò)的輸出層輸出節(jié)點(diǎn),設(shè)定隱含層節(jié)點(diǎn)數(shù)量;
[0013] 步驟四、使用所述訓(xùn)練數(shù)據(jù)集對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)控制 參數(shù)與發(fā)酵產(chǎn)物數(shù)量之間的映射關(guān)系,使用所述測(cè)試數(shù)據(jù)集檢測(cè)經(jīng)過(guò)訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò) 預(yù)測(cè)產(chǎn)物數(shù)量的準(zhǔn)確性是否在預(yù)設(shè)的誤差范圍內(nèi),若否,則對(duì)所述BP神經(jīng)網(wǎng)絡(luò)重新進(jìn)行訓(xùn) 練;
[0014] 步驟五、根據(jù)發(fā)酵控制參數(shù)的精度和取值范圍對(duì)每個(gè)所述微生物發(fā)酵控制參數(shù)進(jìn) 行二進(jìn)制編碼,將兩個(gè)以上二進(jìn)制編碼后的發(fā)酵控制參數(shù)串連成一條染色體,一條染色體 為一個(gè)人工魚(yú)個(gè)體,將兩個(gè)以上人工魚(yú)個(gè)體隨機(jī)組成初始種群;
[0015] 步驟六、以步驟四中訓(xùn)練合格的BP神經(jīng)網(wǎng)絡(luò)為人工魚(yú)群算法的適應(yīng)度函數(shù),計(jì)算 每條人工魚(yú)的適應(yīng)度值,并記錄最優(yōu)個(gè)體的適應(yīng)度值;
[0016] 步驟七、當(dāng)前魚(yú)群分別執(zhí)行聚群算子或追尾算子;
[0017] 步驟八、判斷人工魚(yú)群執(zhí)行完聚群算子或追尾算子后適應(yīng)度值是否提高,若是,則 比較人工魚(yú)群執(zhí)行聚群算子與追尾算子后的適應(yīng)度值,選擇適應(yīng)度值較大的作為最終執(zhí)行 算子,并跳轉(zhuǎn)至步驟十,若否,則跳轉(zhuǎn)至步驟九;
[0018] 步驟九、人工魚(yú)群執(zhí)行覓食算子;
[0019] 步驟十、計(jì)算人工魚(yú)群的適應(yīng)度值,記錄最優(yōu)個(gè)體,判斷最優(yōu)個(gè)體的適應(yīng)度值是否 不再變化,若是,則輸出最優(yōu)解,進(jìn)行解碼得到發(fā)酵控制參數(shù)的最優(yōu)組合,若否,則跳轉(zhuǎn)至步 驟六。
[0020] 進(jìn)一步的,步驟七中,執(zhí)行聚群算子具體包括步驟:
[0021] 根據(jù)以下公式計(jì)算人工魚(yú)群的中心位置X_tCT
[0022]
[0023] 其中,X,為第j條人工魚(yú)當(dāng)前位置,n f為以自身位置為中心,其感知范圍內(nèi)的人工 魚(yú)的數(shù)目;
[0024] 計(jì)算該中心位置X_tCT對(duì)應(yīng)的人工魚(yú)群的適應(yīng)度值Y ,判斷是否滿足條件 Intra^Y1,且Y_tCT/nf< S XY1,其中,δ為擁擠因子,δ < LY1為第i條人工魚(yú)的適應(yīng) 度值,若是,則人工魚(yú)群中心位置前進(jìn)一步,前進(jìn)后的位置Xnrait根據(jù)以下公式計(jì)算:
[0025]
.,其中,rand ()為0~1之間的 隨機(jī)數(shù),step為人工魚(yú)每次前進(jìn)一步的步長(zhǎng);
[0026] 步驟七中,執(zhí)行追尾算子具體包括步驟:
[0027] 人工魚(yú)根據(jù)其自身當(dāng)前位置X1搜索其感知范圍內(nèi)適應(yīng)度值最大的人工魚(yú)X _,判 斷人工魚(yú)Xniax的適應(yīng)度值Y _是否大于人工魚(yú)X i的適應(yīng)度值Y i,若是,則以人工魚(yú)x_為中 心搜索其感知范圍內(nèi)的人工魚(yú)數(shù)目nf,并判斷是否滿足條件:Y_> ¥1且¥_/&< δ XY1 其中,S為擁擠因子,δ < 1,若是,則人工魚(yú)向適應(yīng)度值最大的人工魚(yú)Xniax前進(jìn)一步,前進(jìn) 后的位置用以下公式表示:
[0028]
ο
[0029] 進(jìn)一步的,所述步驟九中,人工魚(yú)群執(zhí)行覓食算子包括步驟:
[0030] 步驟九一、設(shè)第i條人工魚(yú)所在的位置為X1,第i條人工魚(yú)按照公式:Χ,= Xi+randO X visual轉(zhuǎn)移至新的位置Xj,其中,rand ()為為0~1之間的隨機(jī)數(shù),visual為 人工魚(yú)的感知范圍,visual值在種群初始時(shí)預(yù)先設(shè)定;
[0031] 步驟九二、根據(jù)適應(yīng)度函數(shù)計(jì)算新的人工魚(yú)在位置X,的適應(yīng)度值Y ,判斷Y,是否 大于位置X1的適應(yīng)度值Y i,若Y ,則人工魚(yú)向位置\前進(jìn)一步,并按以下公式更新至 新的位置Xnext:
[0032]
[0033] 若Yi> Y _j,則人工魚(yú)按公式:X_j= X i+randO X visual進(jìn)行位置更新,更新后判斷 是否滿足前進(jìn)條件,若否,則重復(fù)執(zhí)行覓食算子直至設(shè)定的最大重復(fù)次數(shù),當(dāng)達(dá)到最大重復(fù) 次數(shù)時(shí),按公式:X next= X i+randO X step在感知范圍內(nèi)隨機(jī)移動(dòng)一步,使得Xi到達(dá)一個(gè)新 的位置Xnext。
[0034] 進(jìn)一步的,在步驟一中,所述發(fā)酵控制參數(shù)包括發(fā)酵溫度、發(fā)酵液pH值、發(fā)酵液溶 解氧濃度、發(fā)酵液濁度或發(fā)酵液殘氮量。
[0035] 進(jìn)一步的,在步驟二中,所述測(cè)試數(shù)據(jù)集占總微生物發(fā)酵數(shù)據(jù)集的5%~7%。
[0036] 進(jìn)一步的,在步驟四中,所述誤差范圍為BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)發(fā)酵產(chǎn)物數(shù)量的預(yù)測(cè)值 和實(shí)驗(yàn)測(cè)得的觀察值之間的線性回歸判定系數(shù)R 2大于〇. 9。
[0037] 本發(fā)明的有益效果為:本發(fā)明把經(jīng)過(guò)訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò)作為人工魚(yú)群算法的適 應(yīng)度函數(shù),應(yīng)用人工魚(yú)群算法對(duì)發(fā)酵過(guò)程進(jìn)行優(yōu)化控制,免去了人工魚(yú)群算法對(duì)微生物發(fā) 酵進(jìn)行優(yōu)化控制時(shí)需要構(gòu)建復(fù)雜的適應(yīng)度函數(shù)的問(wèn)題;人工魚(yú)群算法中包含隨機(jī)算子,隨 機(jī)算子產(chǎn)生一個(gè)完整的新解,各個(gè)編碼位都可能改變,整體改變幅度大,產(chǎn)生的新解特異性 大,豐富了解的多樣性,符合生物群體進(jìn)化的規(guī)律;同時(shí),人工魚(yú)群算法中還包含追尾算子, 加快人工魚(yú)向更優(yōu)的位置游動(dòng),同時(shí)也使陷入局部最優(yōu)的人工魚(yú)向全局最優(yōu)的人工魚(yú)方向 移動(dòng)而逃離局部最優(yōu),加快了算法的收斂性??梢?jiàn),通過(guò)本發(fā)明更有利于得到發(fā)酵最優(yōu)個(gè)體 和最優(yōu)發(fā)酵控制參數(shù)的問(wèn)題。
【附圖說(shuō)明】
[0038] 圖1為本發(fā)明實(shí)施方式基于人工魚(yú)群算法的微生物發(fā)酵優(yōu)化方法的