金雨佳
(渤海大學 信息科學與技術(shù)學院,遼寧 錦州121013)
經(jīng)濟在發(fā)展,時代在進步,人們對食品的安全要求也逐年提高.人們開始把關(guān)注的重心放在營養(yǎng)均衡上,作為一個農(nóng)業(yè)為主的大國,國民經(jīng)濟和社會發(fā)展的基礎就是農(nóng)業(yè),能夠為人們提供更多的營養(yǎng)成分.由于產(chǎn)品對運輸?shù)臅r效性、保鮮性要求比較高,其對冷鏈物流的各個環(huán)節(jié)的共同作用要求更高,所以水產(chǎn)品的運輸與成本消耗密切相關(guān),有效控制運輸成本,成為水產(chǎn)品運輸?shù)闹匾獑栴}.在國民經(jīng)濟的發(fā)展中,現(xiàn)在物流的進步是非常重要的一部分,在企業(yè)的生產(chǎn)生活中,物流則是降低成本提高生產(chǎn)率的“第三利潤源泉”[1].人們的消費觀念也逐漸轉(zhuǎn)化為更新鮮的產(chǎn)品.但是由于國內(nèi)水產(chǎn)品的活體運輸技術(shù)存在著信息化、智能化程度低、監(jiān)控因素單一等問題[2],導致產(chǎn)品忽高忽低,對食品安全來講,冷鏈物流的作用非常大,冷鏈物流貫穿水產(chǎn)品從捕撈到生產(chǎn)再到銷售的整個過程,冷鏈物流的運作情況影響行業(yè)的發(fā)展,企業(yè)的利益.但是在現(xiàn)在的水產(chǎn)品冷鏈物流中主要是針對水產(chǎn)品進行保鮮,很少有針對運輸過程中突發(fā)意外情況進行的報警.冷鏈物流要實施溫度的全程管理,必須依靠信息技術(shù).為了增加我國農(nóng)業(yè)的競爭力,水產(chǎn)品冷藏保鮮技術(shù)的物聯(lián)網(wǎng)開發(fā)應用刻不容緩.
目前,消費者對水產(chǎn)品的新鮮程度要求增高,在冷鏈方面的要求也隨之增高,冷鏈設備在進行水產(chǎn)品運輸中可以保證食品長期處在一個比較適宜的溫度,從而達到保鮮的效果,所以物流中產(chǎn)生了一個新的更有效的分支——冷鏈物流[3],冷鏈物流是以低溫環(huán)境為核心的,以冷凍工藝學為基礎的低溫物流過程[4].
冷鏈物流主要有以下節(jié)點:在冷鏈物流的上游中包含養(yǎng)殖基地、冷藏倉庫、生產(chǎn)加工基地等;冷鏈物流的中間環(huán)節(jié)有冷藏倉庫、物流、配送中心等[5];冷鏈物流的下游中含有農(nóng)貿(mào)市場,超市等.本文主要針對的是冷鏈物流運輸中的中間環(huán)節(jié)的物流過程.
對冷鏈物流監(jiān)測與預警的研究中,傳統(tǒng)的方法有集成無線傳感網(wǎng)絡、人工智能技術(shù)的智能化冷鏈物流模型[6];基于無線溫濕度傳感網(wǎng)絡和GPS系統(tǒng)的智能冷鏈物流跟蹤監(jiān)測系統(tǒng)[7];基于云服務及組件集成技術(shù)的云服務系統(tǒng)方法[8],這些系統(tǒng)通常存在對車內(nèi)冷藏產(chǎn)品進行實施監(jiān)測但無法對突發(fā)情況進行預警.為了解決這一問題,本文研究了一種基于GA的水產(chǎn)品冷鏈智能監(jiān)測與預警模型.
本文考慮了水產(chǎn)品在腐壞時釋放氣體的成分,對濃度進行了計算,利用遺傳算法進行了監(jiān)測及預警,一定程度上降低了因特殊情況下的腐壞導致水產(chǎn)品的浪費.
本算法旨在克服現(xiàn)有技術(shù)不足,而提供一種可對水產(chǎn)品在運輸途中的腐化程度實時監(jiān)測,避免在長時間不間斷的冷鏈運輸途中,容易產(chǎn)生疏漏的情況.
遺傳算法(genetic algorithm,GA)是一種在全局中進行優(yōu)化的算法,結(jié)合了遺傳學中的進化原理和隨機優(yōu)化原理[9],遺傳算法起源于上世紀六十年代中期,這是一種以生物進化為思想建立的一種人工系統(tǒng),是一種仿生的生物模型.遺傳算法是以達爾文進化論中的“適者生存”原則為基礎[10],模擬生物體之間優(yōu)勝劣汰,勝者生存的原則,對種群進行反復的遺傳,直至最優(yōu)的個體出現(xiàn),使種群進化的過程,是計算智能的重要組成部分[11].簡單地來說,遺傳算法就是在所有的可能中尋找最符合該問題的一個最優(yōu)解.
在生物學上,小生境技術(shù)是指在特定環(huán)境下的一種組織結(jié)構(gòu).在自然界中,特征相似的物種相聚在一起,繁衍后代.由于其匹配時是隨機的,在后期的進化過程中,大量的個體聚集在某一極值點處,單純的利用遺傳算法求解多峰問題時,經(jīng)常找到局部最優(yōu)解,利用小生境技術(shù)我們可以找到全部的最優(yōu)解[12].
小生境技術(shù)就是將一代種群劃分成若干個子種群,每個子種群中選出若干適應度較大的個體作為一類優(yōu)秀的代表種群,在優(yōu)秀的代表種群中進行雜交、變異產(chǎn)生新一代子種群[13].這種融合小生境技術(shù)的遺傳算法可以更好地保持最優(yōu)解的多樣性,同時具有較高的全局尋優(yōu)能力和收斂速度[14].
隨機本次算法結(jié)合動態(tài)小生境共享算法進行遺傳算法的改進,具體步驟如下:
步驟一處理訓練數(shù)據(jù),根據(jù)構(gòu)建的模擬方程格式構(gòu)建殘差.
步驟二適應度值計算并降序排列.
步驟三小生境選擇,將降序排列的第一個個體作為第一個小生境中心,分別計算其余個體與小生境中心的歐幾里得距離,若大于給定值L,且存在的小生境中心小于給定值K,則該個體成為新的小生境中心;若個體與小生境中心的距離小于定值L,則個體作為該小生境個體;若個體與小生境之間的距離大于L,且小生境中心個數(shù)大于等于K,則該個體成為獨立個體.
步驟四小生境處理,若處于某小生境的個體,其小生境數(shù)就是他所在的小生境擁有的個體的數(shù)量,小生境中心及獨立個體的小生境數(shù)規(guī)定為1.
步驟五計算共享后的適應度值.
步驟六進行種群自適應交叉操作.
步驟七進行種群自適應變異操作.
步驟八若滿足終止判斷條件,則輸出,不滿足終止條件跳轉(zhuǎn)到步驟二,循環(huán)運算,直至算法終止.
其中步驟一中的構(gòu)造差值是在模擬的隨機數(shù)x,y后,根據(jù)定義的多項式
將模擬好的隨機數(shù)x代入模擬的y中
構(gòu)造差值為:
式(1)中g(shù)為模擬出的函數(shù),f為模擬函數(shù)的模板,a,b,...分別為模擬函數(shù)的系數(shù).
其中步驟三中的歐幾里得距離計算公式如下:
步驟五中重新計算適應度值的公式如下:
其中S(x)為共享函數(shù),Ω(x i)為數(shù)據(jù)與數(shù)據(jù)之間的歐幾里得距離,在本算法中就是小生境數(shù).由于實驗中存在很多相似的數(shù)據(jù),所以通過計算數(shù)據(jù)與數(shù)據(jù)之間的歐幾里得距離,找相似的數(shù)據(jù),在對數(shù)據(jù)重新計算適應度值后,可對相似的數(shù)據(jù)進行適應度值縮小處理,可以減少數(shù)據(jù)中的相似數(shù)據(jù),從而增加數(shù)據(jù)的多樣性,避免陷入局部最優(yōu)解[15].
在步驟六及步驟七中,傳統(tǒng)的遺傳算法為固定值,自適應遺傳算法交叉及變異的概率如下:
其中pc、pm分別為進行交叉、變異操作的概率;fmax為群體中最大的適應度值;f avg為群體的平均適應度值;f為要進行交叉操作個體的適應度值;f'為要進行變異操作的適應度值;k1、k2、k3、k4為常數(shù),在結(jié)合sigmoid函數(shù)改進后的交叉及變異的概率如下:
以自適應遺傳算法進行交叉的概率為例,當個體適應度值小于種群平均的適應值時,交叉的概率為定值,在改進的自適應遺傳算法中,種群個體的交叉概率會根據(jù)種群個體的適應度值進行改變,種群個體的適應度值越小,進行交叉的概率越大.
當種群個體的適應度值大于平均適應度值時
而改進的算法進行交叉的概率為:
因為F(x)≤0,所以在改進的自適應遺傳算法中,當個體的適應度值大于平均適應度值時,改進的自適應遺傳算法較傳統(tǒng)的自適應遺傳算法相比可以降低交叉變異的概率,從而保存?zhèn)€體的完整性,并個體的適應度值大于平均適應度值根據(jù)適應度值變化而改變變異概率,增加種群收斂速度.
傳統(tǒng)的遺傳算法存在搜索能力較弱,容易陷入局部最優(yōu)解的特點,在改進的自適應遺傳算法采用sigmoid函數(shù)進行創(chuàng)新,根據(jù)個體的適應度值計算交叉變異的概率,使交叉及變異概率具有較高的收斂速度,從而加快算法全局尋優(yōu)的能力.
通過產(chǎn)生的差值進行遺傳算法的尋優(yōu)處理,再利用遺傳算法進行選優(yōu)處理,在遺傳算法中選取種群大小(size_pop)為50,最大迭代次數(shù)(max_iter)為200,交叉概率常數(shù)取值為1.0,變異概率常數(shù)為0.01.
為了實現(xiàn)上述過程,本算法按如下步驟進行:
第一階段:
步驟1采集一組水產(chǎn)品腐化參考數(shù)據(jù);
步驟2對步驟2所得水產(chǎn)品腐化參考數(shù)據(jù)進行圖像模擬;
步驟3使用遺傳算法對腐化參考數(shù)據(jù)進行多項式擬合,形成模擬腐化函數(shù);
第二階段:
步驟4實時采集一組水產(chǎn)品腐化環(huán)境數(shù)據(jù);
步驟5將采集時間代入模擬腐化方程;
步驟6將步驟4所得環(huán)境數(shù)據(jù)與模擬腐化函數(shù)值進行對比,若差距達到設定閥值,則啟動報警器,進行報警.
在步驟2中已經(jīng)模擬出的腐化函數(shù),將時間代入,得出理想的腐化函數(shù)值,將理想的腐化函數(shù)值與新測量的實際腐化值,結(jié)合水產(chǎn)品的腐化實驗參考濃度進行對比設定報警值,表1為報警參考程度表
表1 報警參考程度表
實驗環(huán)境:Inter(R)Core(TM)i7 CPU@1.80GHz 2.00 GHz,操作系統(tǒng)為:Windows10,硬盤位256 G+1 T,算法在pycharm 2019.1.3 x64開發(fā)環(huán)境下運行.
本文在使用pycharm對算法進行實現(xiàn),采用UCI數(shù)據(jù)集官網(wǎng)中的數(shù)據(jù)集Gas Turbine CO and NOx Emission數(shù)據(jù)集對改進的遺傳算法進行曲線擬合進行驗證,選用數(shù)據(jù)集中屬性信息AT(溫度),CO(一氧化碳濃度)進行實驗模擬.在實驗第一階段,由于魚類腐化的特性,分別對溫度、氣體濃度進行降序排列,利用AT分別和CO利用改進的遺傳算法進行三次多項式的模擬,多項式結(jié)構(gòu)如下,模擬結(jié)果如圖所示.
圖1 溫度-CO模擬函數(shù)圖像
在對遺傳算法應用在水產(chǎn)品冷鏈物流自動監(jiān)測與預警系統(tǒng)模擬中,第一階段中初始環(huán)境數(shù)據(jù)選取一組不定量增長的隨機數(shù),本文中選取的隨機數(shù)為增長范圍在0到0.5之間一組增長的數(shù)值,本文數(shù)據(jù)集定量100個數(shù)值,每個數(shù)值精確到小數(shù)點后3位,遺傳算法中選取種群大?。╯ize_pop)為50,最大迭代次數(shù)(max_iter)為200,變異概率(prob_mut)為0.001.利用擬合算法遺傳算法將時間作為自變量(x=1,2,3,...,100),將模擬出的初始環(huán)境數(shù)據(jù)作為因變量y模擬出水產(chǎn)品腐化參考函數(shù),圖2為模擬腐化函數(shù)圖像,其中包含環(huán)境數(shù)據(jù)y值,時間數(shù)據(jù)x值以及模擬腐化函數(shù)方程函數(shù)圖像.
圖2 第一階段模擬腐化函數(shù)圖像
圖3 第二階段新的數(shù)據(jù)點圖與腐化函數(shù)的擬合情況
第一階段的模擬腐化函數(shù)的方程如下:
在第二階段中重新生成一組增長范圍為0至0.5之間的隨機數(shù)作為水產(chǎn)品實時參考環(huán)境數(shù)據(jù),精度為0.001,數(shù)據(jù)集同樣是100個數(shù)據(jù),并對其中部分數(shù)據(jù)進行放大處理,模擬特殊情況下的腐壞值,將采集時間代入階段一中模擬出的腐化函數(shù)方程,得出實時的理想腐化函數(shù)值,將理想腐化函數(shù)值與實時腐化函數(shù)值進行對比,在到達閥值時進行報警,函數(shù)圖形模擬如圖3所示,在控制臺中13分鐘進行中度報警,在第73分鐘進行高度報警.
通過預測值與模擬函數(shù)的模擬值進行實時監(jiān)測可以很好地對數(shù)據(jù)進行控制,在數(shù)據(jù)超出預計范圍時,可以很好地進行預警.該模型在水產(chǎn)品運輸中,可以先將溫度分別于氨氣、二氧化碳的濃度進行函數(shù)的模擬,作為參考值,在實時運輸中,將模擬的氣體濃度值與實際的濃度值進行實時對比,在預測超出正常范圍時,及時進行報警,以防止產(chǎn)品的加速損壞.
水產(chǎn)品自動冷鏈運輸條件下,易存在突發(fā)狀況導致水產(chǎn)品新鮮程度嚴重受損,本文綜合水產(chǎn)品在運輸途中實施監(jiān)測和預警的方法,通過對已有的數(shù)據(jù)進行分析并對傳統(tǒng)的遺傳算法進行改進,采用改進的遺傳算法進行曲線擬合的方法,對水產(chǎn)品腐壞進行了模擬,得出腐化方程,并在實時監(jiān)測中進行自動監(jiān)測和突發(fā)狀況預警.通過實驗,分析水產(chǎn)品的腐化過程,并在突發(fā)狀況進行了預警,驗證了算法的有效性.