李欣蔚
摘 要 非線性規(guī)劃問題是如今被應用在各領域中的重要解題方法。遺傳算法作為近年來一種從生物遺傳學身上學習到的智能算法,與傳統(tǒng)方法相比雖然具有一定的模擬限制,但在解決全局優(yōu)化問題上已經(jīng)取得了重大進步。本文主要通過簡要介紹遺傳算法的優(yōu)化過程,以及分析非線性規(guī)劃中主要存在的問題,通過提出一種新的學習因子來進行改進遺算法在非線性規(guī)劃中的應用。
【關(guān)鍵詞】遺傳算法 改進 適配性 非線性規(guī)劃
非線性規(guī)劃?作為發(fā)展歷史不久的新型學科,目前其有效算法已經(jīng)存在多種解法,隨著計算機技術(shù)的快速發(fā)展,非線性規(guī)劃的方法在其中的編譯取得了重要的成果。而對于應用領域的擴展,遺傳算法的研究不僅僅局限于生物學,已經(jīng)被引用到人工智能等方面,為一定領域上的開發(fā)瓶頸帶來了新的希望。遺傳算法的優(yōu)化過程值得在更好的方向上應用,在這其中,如何改進遺傳算法在非線性規(guī)劃中的應用成為了難題之一。
1 遺傳算法的優(yōu)化過程
遺傳算法是模擬了生物學在基因遺傳方面的操作的算法。因而不難理解,在遺傳算法的操作過程中的主要任務就是在群體對象中實現(xiàn)對個體的改進,通過一層一層的遺傳算法改進操作,達到對整體的改進目的。其中最基礎的三種遺傳優(yōu)化過程為選擇、交叉和變異。
1.1 選擇
遺傳算法的選擇過程首先要進行編譯,利用編碼來對遺傳算法中的每一個個體進行分析,并計算其累計的概率。具體的算法步驟如下:
(1)將遺傳算法中的數(shù)據(jù)轉(zhuǎn)換成編碼值。
(2)編碼過程中對個體進行匹配而后計算其適配值。
(3)將群體個數(shù)的總數(shù)設定為n,個體為ki,其中i為1到n之間的任意數(shù)。因此每個個體的適配值的函數(shù)為f(ki)。
(4)將每個個體的適配值疊加得到群體總數(shù)的適配值為
(5)分別計算每個遺傳算法中的個體 ki(i=1,…,n)的選擇概率pi=f(ki)/F。
(6)分別計算每個遺傳算法中的個體 ki(i=1,…,n)的選擇概率疊加為
(7)尋找一個隨機概率數(shù),即大于0小于1的數(shù)值,記作c。
(8)用程序進行判斷,若c≤qi,則這個選擇概率符合我們的要求,進而記錄這個個體,否則進行下一個個體的判斷,使得pi-1 (9)重復(7)-(8)之間的步驟n次,直到結(jié)束。 1.2 交叉 在遺傳算法中,交叉算子是遺傳操作最重要的部分。交叉遺傳指的是把個體部分的結(jié)構(gòu)替換成改進后的部分生成新的個體的操作。交叉算法的具體重組方式有很多種,其中使用最為廣泛的為單點交叉。即在個體編碼中找到一個交叉點,在進行交叉過程中,以交叉點作為分界的兩部分進行互換,使得生成兩個新的個體編碼。編譯過程如下: (1)尋找一個隨機概率數(shù),即大于0小于1的數(shù)值,記作c。 (2)將c與個體的交叉概率相比較,即個體的交叉概率較大,則個體通過篩選。 (3)將全部篩選通過的個體編碼隨機進行匹配,而后尋找一個隨機數(shù),隨機數(shù)要小于個體編碼的長度且大于1。隨機數(shù)即為交叉點的位置,而后匹配好的個體編碼在交叉點的位置進行互換操作。 1.3 變異 遺傳算法中的變異操作有不同的幾種,一般來說,會按照個體編碼的表示方法而進行不同的變異。基本操作過程為,先對群體中的個體變異概率進行比較,判斷其是否會發(fā)生變異,而后對能夠產(chǎn)生變異的個體進行隨機選擇變異。 (1)隨機產(chǎn)生一個變異概率數(shù),變異概率數(shù)小于1大于0,記作c。 (2)將c與個體的變異概率進行比較,如果個體的變異概率大于c,那么該個體將發(fā)生變異。 1.4 停止 在程序設定過程中規(guī)定一個進化的次數(shù)。以上的選擇、交叉、變異過程為一次完整的進化。進化次數(shù)為多少以上步驟就重復多少次。 2 非線性規(guī)劃的主要問題 遺傳算法在非線性規(guī)劃中應用的最困難的問題在于進化的目標函數(shù)在執(zhí)行過程中存在側(cè)重,在部分進化的過程中實現(xiàn)整體進化才是主要目的,然而很難做到。傳統(tǒng)的求解非線性規(guī)劃的方法存在一定的局限性,很容易使得進化的方向陷入一個具體的點。具體存在以下的問題: (1)目標函數(shù)的限制要求過于苛刻。 (2)整體的優(yōu)化方向是根據(jù)目標函數(shù)的具體限制來進行的,然而在執(zhí)行的過程中容易陷入局部化,整體性不夠。 (3)要實現(xiàn)具體的算法需要大量的數(shù)學前提準備,在目標函數(shù)復雜的情況下,想要準確的進行十分困難。 (4)在初始值的設定上存在局限性,不一定是目前算法的最優(yōu)初始值,使得得到的計算結(jié)果存在偏差。 (5)算法不夠適用,僅僅針對一個局部問題而設計的算法并不能真正解決整體的進化問題,而整體進化的大方向的把控也是難題。 3 改進遺傳算法在非線性規(guī)劃中的應用 3.1 非線性規(guī)劃的數(shù)學模型 如果要對遺傳算法進行非線性規(guī)劃,首先要針對實際規(guī)劃的問題分析,而后建立數(shù)學模型。數(shù)學模型的建立需要確定目標變量和決策變量,建立兩個變量之間的函數(shù)關(guān)系,而后通過相應的約束條件,達到非線性規(guī)劃的目的。 (1)設定目標函數(shù)為x1,x2,......,x3。 (2)設定約束條件。 (3)目標函數(shù)下的約束條件都是在定義域中的實際函數(shù),且只要有一個為非線性。 3.2 改進遺傳算法的設計 為了改進遺傳算法的優(yōu)化速度以及進化方向,這里引入學習因子。 所謂的學習因子即在遺傳算法過程中,一些本身適配性很小的個體,使用一種類似學習的算法,向適配性較大的優(yōu)秀的個體進行學習,使其在學習后具有更好的適配性。通過增加學習因子的計算步驟,可以使得整個遺傳算法進行改進。具體步驟為: (1)尋找一個較大的選擇概率數(shù)作為進化學習目標個體,而后篩選出適配性較差的個體,讓適配性較差的個體向?qū)W習目標進行概率學習。 (2)尋找學習因子作為學習方向,通過對學習目標進行定位,而后在一定的個體編碼中對目標進行梯度學習。 (3)經(jīng)過上述學習之后,使得適配性較差的個體適配性增高,在適配概率上,被選擇的概率和改進的程度都有所提高。 4 結(jié)論 隨著計算機技術(shù)的快速發(fā)展,非線性規(guī)劃的方法在其中的編譯取得了重要的成果。非線性規(guī)格化作為發(fā)展歷史不久的新型學科,目前其有效算法已經(jīng)存在多種解法,而對著應用領域的擴展,遺傳算法的研究不僅僅局限于遺傳學,甚至已經(jīng)被用于更多的智能科技領域,在未來的科技發(fā)展上開拓了新的道路。通過研究遺傳算法的優(yōu)化過程,并在計算機算法中進行實現(xiàn),在分析非線性規(guī)劃中主要存在的問題的基礎上,通過提出一種新的學習因子來進行改進遺算法在非線性規(guī)劃中的應用。學習因子在一定程度上可以擴大整體進化的程度,在一定方向上實現(xiàn)了改進遺傳算法在非線性規(guī)劃中的應用。 參考文獻 [1]陳丹丹.多準則多約束水平非線性規(guī)劃理論及應用研究[D].西南石油大學,2014. [2]劉牧華.約束非線性規(guī)劃的兩種算法[D].河南科技大學,2012. [3]周偉平,劉兵兵.解灰色非線性規(guī)劃問題的隨機搜索算法[J].計算機應用,2013(10). 作者單位 東北育才學校超常教育實驗部 遼寧省阜新市 123000