[摘要] 預測預報是人們對客觀事物發展變化的一種認識與估計。對某個對象系統選擇哪一種方法來建立預測預報模型,關鍵在于用此方法建立的預測模型的計算值與實際值的擬合程度。近幾年發展起來的遺傳算法(GA, Genetic Algorithm)是借鑒生物遺傳機制的一種隨機化搜索算法,其主要特點是群體搜索和群體中的個體之間的信息交換。遺傳算法尤其適用于處理傳統方法難以解決的復雜的和非線性的問題,己在許多領域有廣泛的應用,它將成為智能計算的主要技術之一。文章以某企業各年度資金實際需要量動態數列為例,探討了基于遺傳算法的時序預測模型的建模方法及預測精度的有效性。
[關鍵詞] 遺傳算法 預測 建模 擬合 精度
預測預報是人們對客觀事物發展變化的一種認識與估計。預測預報對人類社會的重要性早己為人們所認識,“凡事預則立,不預則廢”,說明了人們對預測的重要性的認識。預測可采用的方法很多,例如,傳統的回歸分析方法、基于灰色理論的灰色模型(Grey Model),以及近幾年發展起來的遺傳算法和人工神經網絡模型等。對某個對象系統選擇哪一種方法來建立預測預報模型,關鍵在于用此方法建立的預測模型的計算值與實際值的擬合程度。
遺傳算法(GA,Genetic Algorithm)是借鑒生物遺傳機制的一種隨機化搜索算法,其主要特點是群體搜索和群體中的個體之間的信息交換遺傳算法尤其適用于處理傳統方法難以解決的復雜的和非線性的問題,己在許多領域有廣泛的應用,它將成為智能計算的主要技術之一。
一、遺傳算法原理綜述
1.基本術語
遺傳算法是遺傳學和計算機科學相互結合滲透而成的新的計算方法,它使用了遺傳學的一些概念和基本術語來描述它的計算方法。
生物遺傳物質的主要載體是染色體,最主要的遺傳物質是DNA。染色體由基因組成,染色體中基因的位置稱為基因座,基因所取的值稱為等位基因。基因和基因座決定了染色體的特征,也決定了生物個體的性狀。
染色體有兩種表示模式,即基因型(genetype)表示模式和表現型(phenotype)表示模式。表現型是指生物個體所表現出來的性狀。基因型是指與生物個體表現出來的性狀密切相關的基因組成。同一種基因型的生物個體在不同的環境條件下表現出來的性狀會有差異,因此,表現型是基因型與環境條件相互作用的結果。
2.編譯碼操作
在遺傳算法中,與染色體相對應的是數據或數組。在標準的遺傳算法中,染色體可用一維的串結構數據來表示,串的各個位置對應染色體的基因座,各位置上所取的值對應等位基因。遺傳算法對染色體進行處理,或者稱為對基因型個體(individuals)進行處理。一定數量的個體組成群體(population),群體中的個體數稱為群體大小(population size)或群體規模。各個個體對環境的適應程度稱為適應度(fitness)。
執行遺傳算法時有兩個必需的數據轉換操作,一個操作是把搜索空間中的參數或解數據轉換成遺傳空間的染色體或個體,或者說是把染色體數據從表現型表示轉換成基因型表示,這個過程稱為編碼操作;另一個操作稱為譯碼操作,它是同編碼操作相反的數據轉換操作,譯碼操作把染色體數據從基因型表示轉換成表現型表示。
3.算法流程
遺傳算法的基本流程如下圖所示。遺傳算法以群體中的所有個體為對象,選擇(selection)、雜交(crossbreed)和變異(mutation)是遺傳算法的三個主要操作算子,它們構成了所謂的遺傳操作(Genetic Operations),使遺傳算法具有了其他傳統方法所沒有的特征。
4.基本要素
應用遺傳算法求解問題,需要根據求解的具體問題進行下述五個方面的工作,這是遺傳算法的核心內容,也稱為遺傳算法的五個基本要素:
(1)參數編碼的格式設定及參數編碼
(2)初始群體的設定
(3)適應度函數的設計
(4)遺傳操作設計
(5)控制參數設計,主要是指群體規模和遺傳操作中所需使用的有關控制參數的設定和設計
二、應用遺傳算法建立預測預報模型
下面是一個用來說明遺傳算法在建立預測預報模型中的應用實例。
例:己知某企業從1985年~2006年各年的資金實際需要量(萬元)如下表所示,應用遺傳算法建立該企業資金年需要量預測模型。
1.建模分析
由表給出的1985年~2006年的資金實際需要量,可作出如下圖所示的年資金實際需要量曲線。由此曲線可見,企業年資金實際需要量的總趨勢在增長,但有準周期性的振蕩,因此,年資金實際需要量預測模型應考慮曲線總體增長趨勢的描述和振蕩規律的描述兩部分組成。
(1)企業年資金需要量總體增長趨勢的描述。
在一個企業的成長發展時期中,企業年資金需要量的變化情況可分為發生、發展、成熟三個階段。在發生階段,隨著企業基礎設施和管理的到位,年資金需要量增長速度較慢,并逐漸加大增長趨勢;在發展階段,隨著企業品牌形象的逐步形成,年資金需要量增長速度較快,并維持一段時間后進入成熟期;在成熟階段,其增長速度將逐漸變慢,增長趨于飽和。企業年資金需要量的這種總體發展變化規律可采用Logistic生長曲線描述。Logistic生長曲線是下述非線性常微分方程:
的解:
式中各參數在本例中的含義是:Y是年資金需要量,t是時間(年),a是年資金需要量增長速度系數,b是企業年資金需要量的極限值,m和c是與a,b有關的參數。
Logistic生長曲線如下圖所示,可用于反映一般處于成長發展時期中的對象系統隨時間的生長情況。由于Logistic曲線符合企業年資金需要量隨企業打拼發展的變化規律,所以采用Logistic曲線描述企業年資金需要量的總體增長趨勢是比較合適的。
考慮到1985年以前的年資金需要量應對Logistic生成曲線的起點定位及其預測值有“抬高”的影響,故對Logistic曲線進行如下修改:
(2)企業年資金需要量振蕩規律的描述。
由企業年資金需要量曲線可見,從1985年~2006年,實際年資金需要量的變化與Logistic曲線有較大差異。實際年資金需要量曲線有較大幅度的振蕩,是一個多峰曲線。企業年資金需要量出現振蕩多峰的原因是復雜的,但是,我們這里并不需要去探討振蕩的原因及其各種原因是如何影響預測模型的,只需要在預測模型中給出振蕩規律的大致描述。
由圖所示的實際年資金需要量曲線的振蕩具有準周期性衰減,周期性可以用正弦函數描述,幅值的衰減性可以用負指數函數描述。因此,考慮到年資金需要量曲線的振蕩特征后,需要對由Logistic曲線表示的年資金需要量總體增長趨勢乘以一個振蕩修正因子,即有:
式中,p為相對振蕩幅值,h為振蕩半周期長度(年),u為振蕩的初始幅角,g為振蕩衰減系數。
上式中含有8個待定參數b,c,d.m,p,g,h和u。我們采用遺傳算法求解這8個參數,從而得出企業年資金需要量的預測模型y(t)。
2.采用遺傳算法求解模型的待定參數
(1)編碼
把待定的8個參數表示成一維數組x=(b,c,d,m,p,g,h,u),數組各元為帶符號的十進制數。
(2)初始群體的隨機生成
設群體規模為n,隨機生成初始群體的n個個體xi=(ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8),i=1,2, …,n。個體xi中基因座k上的基因值aik(1≤k≤8)就是數組xi的第k個元的值。
(3)適應度函數
待定參數的確定應使得預測模型的年資金需要量計算值y(t)與年資金需要量實際值y*(t)的擬合最好,即從1985年~2006年共22年的計算值y(t)與實際值y*(t)的誤差累計最小。故建立適應度函數為:
(4)選擇操作
為減小計算的復雜程度,可直接選擇適應度fi最小的個體xi作為優良個體,對其復制一次,并淘汰適應度最大的一個個體。對規模較大的群體,優良個體被選擇的次數可多于兩次,并相應淘汰多個劣質個體,以保持群體規模n不變。
(5)雜交操作
對配對池MP=(x1,…,xi,…,xj,…,xn)中的n個個體隨機配對進行雜交繁殖。若隨機選擇xi=(ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8)與xj=(aj1,aj2,aj3,aj4,aj5,aj6,aj7,aj8)配對,則雜交操作為:
其中,雜交參數β可以是一個隨機數,β的取值范圍為0<β<1,a`ik是個體xi與xj雜交生成的后代個體x`k中第k個基因的值, a`jk是個體xj與xi雜交生成的后代個體x`j中第k個基因的值。
(6)變異操作
本例選取的變異操作的概率為1%,即每次對群體中的8n個基因隨機選擇8n×1%個基因進行變異操作。若隨機選擇基因aik進行變異操作,則變異后的基因為:
式中,變異參數η可以是一個隨機數,η的取值范圍為0<η<1。
(7)算法終止條件
遺傳算法是一種迭代算法,對生成的后代群體的n個個體繼續進行選擇、雜交和變異操作,直至滿足算法終止條件。理想的算法終止條件是連續若干代(例如10代)不再產生適應度更小的個體,即不再能繁殖出更優良的個體。這個終止條件是比較嚴格的,需要迭代計算許多次。為了減少算法運算的時空開銷,比較一般的終止條件可為:若fi≤ε,則算法終止,相應的個體xi即是問題的解。xi中的8個基因值即分別為待定的8個參數值。ε為指定的擬合精度誤差。
三、結束語
由上例討論可見,為了建立任何一個對象系統的時序預測模型,只要能先用一個參數待定的非線性函數來大致描述該對象系統的變化規律,無論這個非線性函數有多復雜,都可以用一組實際值作為實例,采用遺傳算法來訓練模型,求解出模型的待定參數,從而建立起這個模型。另外,適應度函數和算法終止條件能保證建立的模型的計算值與實際值會有很好的擬合精度,所以基于遺傳算法的時序預測模型的建模方法與傳統建模方法比較,前者建立的預測模型會有較高的預測精度,尤其是近期預測。
參考文獻:
[1]高巖位耀光付冬梅張蔚:免疫遺傳算法的研究及其在函數優化中的應用[J].微計算機信息,2007,(6):183~184
[2]吉根林:遺傳算法研究綜述[J].計算機應用與軟件,2004,21(2):69~73
[3]尹朝慶尹皓:人工智能與專家系統[M].北京:中國水利水電出版社,2002:286~294
[4]王煦法:遺傳算法及其應用[J].小型微型計算機系統,1995,16(2):59~64
[5]S. G. Ponnambalam,P. Aravindan ,G. Mogileeswar Naidu.A Multi-Objective Genetic Algorithm for Solving Assembly Line Balancing Problem[J].The Intenational Journal of Advanced Manufacture Technology,2000,16:341~352