技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 遺傳算法理論與應(yīng)用

遺傳算法理論與應(yīng)用

時(shí)間:2012-09-04 16:36:25來(lái)源:李?yuàn)檴櫍斡≈?/span>

導(dǎo)語(yǔ):?本文首先闡述了遺傳算法的起源,隨后對(duì)遺傳算法進(jìn)行了簡(jiǎn)要概述。

摘要:本文首先闡述了遺傳算法的起源,隨后對(duì)遺傳算法進(jìn)行了簡(jiǎn)要概述。本文重點(diǎn)介紹了遺傳算法的基本工作原理,討論了遺傳算法理論存在的問(wèn)題及改進(jìn)方法,提出了遺傳算法在自動(dòng)控制中的研究及其應(yīng)用。最后,本文給出了在Matlab中遺傳算法的一般程序。

關(guān)鍵字:遺傳算法,自動(dòng)控制,Matlab

中圖分類(lèi)號(hào):TP301.6

The Theory and Application of Genetic Algorithm  

Li Shanshan, He Yinzhou

School of Control Science and Engineering

Shandong University 250061

Abstract: This paper introduces the origin of genetic algorithm, and then gives a shot introduction of genetic algorithm. This paper underlines the basic working theory, discusses the problems and improving methods in genetic algorithm and then proposes the research and application of genetic algorithm in automatic control. At last, this paper gives the codes of genetic algorithm in Matlab.

Keywords: Genetic algorithm, Automatic control, Matlab

遺傳算法(GA)是一種借鑒生物界自然選擇和自然遺傳機(jī)制的隨機(jī)化搜索算法[1],是由美國(guó)密歇根大學(xué)Holland等人在七十年代首次提出并建立了它的數(shù)學(xué)框架。該方法一經(jīng)提出便受到了關(guān)注,到80年代中期其研究開(kāi)始進(jìn)入高潮。Goldberg和Michalewicz[2, 3]對(duì)算法及其應(yīng)用進(jìn)行了全面、系統(tǒng)的論述,并成功地將它應(yīng)用到各種領(lǐng)域的優(yōu)化問(wèn)題。盡管遺傳算法在許多領(lǐng)域中已經(jīng)取得了巨大的成功,但遺傳算法存在收斂速度慢和易于陷入局部最優(yōu)等問(wèn)題。如何改善遺傳算法的搜索能力和提高算法的收斂速度,使其更好地應(yīng)用于實(shí)際問(wèn)題的解決,是各國(guó)研究者一直探討的主要課題。本文從遺傳算法的有關(guān)理論來(lái)概述目前的研究現(xiàn)狀,并討論了遺傳算法在控制中的應(yīng)用。

1.遺傳算法起源

自從達(dá)爾文的進(jìn)化論得到人們的接受之后,生物學(xué)家們就對(duì)進(jìn)化機(jī)制產(chǎn)生了極大的興趣?;涗洷砻魑覀兯^察到的復(fù)雜結(jié)構(gòu)的生命是在相對(duì)短的時(shí)間進(jìn)化而來(lái)的,對(duì)這一點(diǎn)包括生物學(xué)家在內(nèi)的許多人都感到驚奇。雖然目前關(guān)于推動(dòng)這個(gè)進(jìn)化的機(jī)制還沒(méi)有完全弄清楚,但它們的某些特征己為人所知。進(jìn)化是發(fā)生在作為生物結(jié)構(gòu)編碼的染色體上,通過(guò)對(duì)染色體的譯碼部分地生成生物。下面是關(guān)于進(jìn)化理論中的已廣為人們所接受一般特性:

(1)進(jìn)化過(guò)程發(fā)生在染色體上,而不是發(fā)生在它們所編碼的生物個(gè)體上。

(2)自然選擇把染色體以及由它們所譯成的結(jié)構(gòu)的表現(xiàn)聯(lián)系在一起,那些適應(yīng)性好的個(gè)體的染色體經(jīng)常比差的個(gè)體的染色體有更多的繁殖機(jī)會(huì)。

(3)繁殖過(guò)程是進(jìn)化發(fā)生的那一刻,變異可以使生貨物子代的染色體不同于它們父代的染色體,通過(guò)結(jié)合兩個(gè)父代染色體中的物質(zhì),重組過(guò)程可以在子代中產(chǎn)生有很大差異的染色體。

(4)生物進(jìn)化沒(méi)有記憶。有關(guān)產(chǎn)生個(gè)體的信息包含在個(gè)體所攜帶的染色體的集合以及染色體編碼的結(jié)構(gòu)之中,這些個(gè)體會(huì)很好的適應(yīng)它們的環(huán)境。

大多數(shù)生物是通過(guò)自然選擇和有性生殖這兩種基本過(guò)程進(jìn)行演化的。自然選擇的原則是適應(yīng)者生存,不適應(yīng)者淘汰。自然選擇決定了群體中哪些個(gè)個(gè)體能夠存活并繁殖;有性生殖保證了后代基因中的混合與重組。比起那些僅包含單個(gè)親本的基因拷貝和依靠偶然變異來(lái)改進(jìn)的后代,這種由基因重組產(chǎn)生的后代進(jìn)化要快得多。60年代美國(guó)Michigan大學(xué)的John Holland在從事如何能建立能學(xué)習(xí)的機(jī)器的研究中注意到學(xué)習(xí)不僅可以通過(guò)單個(gè)生貨物的適應(yīng)而且通過(guò)一個(gè)群體的許多代的進(jìn)化也能發(fā)生。受達(dá)爾文進(jìn)化論的啟發(fā),他逐漸認(rèn)識(shí)到,在機(jī)器學(xué)習(xí)的研究中,為了獲得一個(gè)好的學(xué)習(xí)算法,僅靠單個(gè)策略的建立是不夠的,還要依賴(lài)于一個(gè)包含許多候選策略的群體的繁殖。它們的思想起源于遺傳進(jìn)化,Holland就將這個(gè)研究領(lǐng)域命名為遺傳算法[4]。

2.遺傳算法概述

Holland創(chuàng)建的遺傳算法是一種概率搜索算法,它是利用某種編碼技術(shù)作用于稱(chēng)為染色體的二進(jìn)制數(shù)串,其基本思想是模擬由這些串組成的群體的進(jìn)化過(guò)程[5]。遺傳算法通過(guò)有組織的而不是隨機(jī)的信息交換來(lái)重新組合那些適應(yīng)性好的串,在每一代中,利用上一代串結(jié)構(gòu)中適應(yīng)性好的位和段來(lái)生成一個(gè)新的串的群體;作為額外增添,偶爾也要在串結(jié)構(gòu)中嘗試用新的位和段來(lái)代替原來(lái)的部分。遺傳算法是一類(lèi)隨機(jī)算法,但它不是簡(jiǎn)單的隨機(jī)走動(dòng),它可以有效地利用已有的信息來(lái)搜尋那些有希望改替解的質(zhì)量的串。類(lèi)似于自然進(jìn)化,遺傳算法通過(guò)作用于染色體上的基因,尋找好的染色體來(lái)求解問(wèn)題。與自然界相似,遺傳算法對(duì)求解問(wèn)題的本身一無(wú)所知,并基于適應(yīng)值來(lái)選擇染色體,使適應(yīng)性好的染色體比適應(yīng)值差的染色體有更多的繁殖機(jī)會(huì)。該算法是模擬生物在自然環(huán)境中的遺傳和進(jìn)化過(guò)程而形成的一種自適應(yīng)全局優(yōu)化概率搜索算法。采用遺傳算法作為工具,通過(guò)權(quán)重系數(shù)變化法處理多目標(biāo)問(wèn)題,通過(guò)罰函數(shù)法處理約束,從而解決復(fù)雜問(wèn)題。遺傳算法之所以能夠得到人們廣泛的關(guān)注和認(rèn)可主要源于它本身具有的特征。它遺傳算法的基本特征[6]主要有以下幾個(gè)方面:

(1)智能性:遺傳算法的智能性包括自組織、自適應(yīng)和自學(xué)習(xí)性等。應(yīng)用遺傳算法求解問(wèn)題時(shí),在確定了編碼方案、適應(yīng)值函數(shù)及遺傳算子以后,遺傳算法根據(jù)獲得的信息自行組織搜索。由于遺傳算法是基于“優(yōu)勝劣汰,適者生存”的自然選擇策略,適應(yīng)值大的個(gè)體具有更適應(yīng)環(huán)境的基因結(jié)構(gòu),具有更高的生存概率,然后在不斷的基因交換和基因變異的過(guò)程中尋找更加適應(yīng)環(huán)境的后代。對(duì)于非線(xiàn)性、多峰值的復(fù)雜函數(shù)的優(yōu)化,用一般的方法不易得到全局最優(yōu)解,如果給出適當(dāng)?shù)哪繕?biāo)函數(shù),用遺傳算法一般可以搜索到準(zhǔn)最優(yōu)解。這是遺傳算法本身具有的智能性和自適應(yīng)性的優(yōu)點(diǎn)的具體體現(xiàn)。

(2)并行性:遺傳算法的并行性表現(xiàn)在兩個(gè)方面:內(nèi)在并行性和內(nèi)含并行性。內(nèi)在并行性是遺傳算法搜索解的隨機(jī)性的具體表現(xiàn),由于遺傳算法的這個(gè)特征,使得同一個(gè)問(wèn)題可以在數(shù)臺(tái)計(jì)算機(jī)同時(shí)獨(dú)立的進(jìn)行演化計(jì)算,然后選擇最優(yōu)個(gè)體。遺傳算法的內(nèi)含并行性是由于它采用的種群的搜索方式的緣故。

(3)全局優(yōu)化:遺傳算法是同時(shí)搜索解空間的多個(gè)區(qū)域,因此可以很大程度降低傳統(tǒng)的優(yōu)化方法容易陷入局部最優(yōu)的可能性。對(duì)于非線(xiàn)性、多峰值等復(fù)雜函數(shù)的優(yōu)化,傳統(tǒng)的優(yōu)化方法由于其選擇的搜索策略的局限,容易收斂到局部最優(yōu)解。遺傳算法同時(shí)在解空間的多個(gè)區(qū)域的搜索方式和搜索區(qū)域變化的隨機(jī)性使得在搜索過(guò)程中很容易跳出局部最優(yōu)解。

(4)穩(wěn)健性:算法的穩(wěn)健性是指在不同條件和環(huán)境下算法的適用性和有效性。由于遺傳算法利用個(gè)體的適應(yīng)值推動(dòng)群體的演化,而不管求解問(wèn)題本身的結(jié)構(gòu)特征。因而,用遺傳算法求解不同問(wèn)題時(shí),只需要設(shè)計(jì)相應(yīng)的適應(yīng)性評(píng)價(jià)函數(shù),而無(wú)須修改算法的其它部分。同時(shí),因?yàn)檫z傳算法具有自然系統(tǒng)的自適應(yīng)特征,算法在效率和效益之間的權(quán)衡使得它能適用于不同的環(huán)境并取得較好效果。

遺傳算法是從代表待優(yōu)化問(wèn)題潛在解集的一個(gè)種群開(kāi)始,而種群則由經(jīng)過(guò)基因編碼的一定數(shù)目的個(gè)體組成。基因編碼成染色體,每個(gè)個(gè)體由染色體構(gòu)成,每個(gè)個(gè)體實(shí)際上是帶有染色體特征的實(shí)體。染色體作為遺傳物質(zhì)的主要載體,是多個(gè)基因的集合,其內(nèi)部表現(xiàn)(即基因型)是多個(gè)基因的某種組合,它決定了個(gè)體的形狀的外部表現(xiàn)。因此,在一開(kāi)始需要實(shí)現(xiàn)從表現(xiàn)型到基因型的映射即編碼工作。

初代種群產(chǎn)生之后,按照適者生存和優(yōu)勝劣汰的原理,逐代演化產(chǎn)生出適應(yīng)度越來(lái)越好的個(gè)體。在每一代中,根據(jù)問(wèn)題域中個(gè)體的適應(yīng)度的優(yōu)劣,選擇一些適應(yīng)度高的個(gè)體,基于這些選出的適應(yīng)度高的個(gè)體,并借助于自然遺傳學(xué)的交叉、變異算子,產(chǎn)生出代表新解集的下一代種群。這個(gè)過(guò)程將導(dǎo)致種群像自然進(jìn)化一樣,使后生代種群比前代種群具有更高的適應(yīng)度,更加適應(yīng)于環(huán)境。在優(yōu)化過(guò)程結(jié)束后,末代種群中的最優(yōu)個(gè)體經(jīng)過(guò)解碼,即可以作為問(wèn)題的近似最優(yōu)解[7]。

3.遺傳算法的原理

遺傳算法的研究主要包括三個(gè)領(lǐng)域[8]:遺傳算法的理論與技術(shù);用遺傳算法進(jìn)行優(yōu)化;用遺傳算法進(jìn)行分類(lèi)系統(tǒng)的機(jī)器學(xué)習(xí)。其中,遺傳算法的理論與技術(shù)研究主要包括編碼,交叉運(yùn)算,變異運(yùn)算,選擇運(yùn)算以及適應(yīng)度評(píng)價(jià)等問(wèn)題。

3.1基本原理

在自然界,由于組成生物群體中各個(gè)體之間的差異,對(duì)所處環(huán)境有不同的適應(yīng)和生存能力,遵照自然界生物進(jìn)化的基本原則,適者生存,優(yōu)勝劣汰,將要淘汰哪些最差個(gè)體,通過(guò)交配將父本優(yōu)秀的染色體和基因遺傳給子代,通過(guò)染色體核基因的重新組合產(chǎn)生生命力更強(qiáng)的新的個(gè)體與他們組成的新群體。在特定的條件下,基因會(huì)發(fā)生突變,產(chǎn)生新基因和生命力更強(qiáng)的新個(gè)體;但突變是非遺傳的,隨著個(gè)體不斷更新,群體不斷朝著最優(yōu)方向進(jìn)化,遺傳算法是真實(shí)模擬自然界生物進(jìn)化機(jī)制進(jìn)行尋優(yōu)的。

與傳統(tǒng)搜索算法不同,遺傳算法從一組隨機(jī)產(chǎn)生的初始解,稱(chēng)為群體,開(kāi)始搜索過(guò)程。群體中的每個(gè)個(gè)體是問(wèn)題的一個(gè)解,稱(chēng)為染色體。這些染色體在后續(xù)迭代中不斷進(jìn)化,稱(chēng)為遺傳。遺傳算法主要通過(guò)交叉,變異,選擇運(yùn)算實(shí)現(xiàn)。交叉或便宜運(yùn)算生成下一代染色體,稱(chēng)為后代。染色體的好壞用適應(yīng)度來(lái)衡量。根據(jù)適應(yīng)度的大小從上一代和后代中選擇一定數(shù)量的個(gè)體,作為下一代群體,再繼續(xù)進(jìn)化,這樣經(jīng)過(guò)若干代之后,算法收斂于最好的染色體,它很可能就是問(wèn)題的最優(yōu)解或次優(yōu)解。遺傳算法中使用適應(yīng)度這個(gè)概念來(lái)度量群體中的各個(gè)個(gè)體的悠忽計(jì)算中有可能達(dá)到最優(yōu)解的優(yōu)良程度。度量個(gè)體適應(yīng)度的函數(shù)稱(chēng)為適應(yīng)度函數(shù)。適應(yīng)度函數(shù)的定義一般與具體求解問(wèn)題有關(guān)[9]。

3.2典型算法與步驟

遺傳算法的一般步驟為:

(1)隨機(jī)產(chǎn)生初始種群,初始化種群;

(2)計(jì)算種群上每個(gè)個(gè)體的適應(yīng)度,是否滿(mǎn)足收斂準(zhǔn)則;

(3)按由個(gè)體適應(yīng)度值所決定的某個(gè)規(guī)則選擇將進(jìn)入下一代的個(gè)體;

(4)按概率Pc進(jìn)行交叉操作;

(5)按概率Pm進(jìn)行變異操作;

(6)若沒(méi)有滿(mǎn)足某種停止條件,則轉(zhuǎn)入(3),否則進(jìn)入下一步;

(7)輸出種群中適應(yīng)度最優(yōu)的染色體作為問(wèn)題的滿(mǎn)意解或最優(yōu)解。

遺傳算法的一般過(guò)程[10]如圖1所示。

3.3編碼問(wèn)題

編碼是遺傳算法要解決的首要問(wèn)題。常用的編碼方法有二進(jìn)制編碼,格雷碼編碼,實(shí)數(shù)編碼,符號(hào)編碼等。針對(duì)不同的問(wèn)題要采用不同的編碼方法。

3.4群體設(shè)定

遺傳操作是對(duì)眾多個(gè)體同時(shí)進(jìn)行的,這眾多個(gè)體組成了群體。在遺傳算法處理流程中,繼編碼設(shè)計(jì)后的任務(wù)是初始群體的設(shè)定,并以次為起點(diǎn)一代代進(jìn)化知道按某種進(jìn)化停止準(zhǔn)則終止進(jìn)化過(guò)程,由此得到最后一代。關(guān)鍵問(wèn)題是,群體規(guī)模,即群體中包括的個(gè)體數(shù)目如何確定。其中有兩個(gè)需要考慮的因素:a.初始群體的設(shè)定;首先根據(jù)問(wèn)題固有知識(shí),設(shè)法把握最優(yōu)解所占空間在整個(gè)問(wèn)題空間的分布范圍,然后在此分布范圍內(nèi)設(shè)定初始群體。然后先隨機(jī)生成一定數(shù)目的個(gè)體,然后從中挑出最好的個(gè)體加到初始群體中。這種過(guò)程不斷迭代,直到初始群體中個(gè)體數(shù)達(dá)到了預(yù)先確定的規(guī)模。b.進(jìn)化過(guò)程周各代的規(guī)模如何維持。群體規(guī)模的確定受遺傳操作中選擇操作的影響很大。一般而言,群體規(guī)模越大,群體中個(gè)體的多樣性越高,算法陷入局部解的危險(xiǎn)就越小。所以,從考慮群體多樣性出發(fā),群體規(guī)模應(yīng)較大。但是,群體規(guī)模太大會(huì)帶來(lái)若干弊病。一是計(jì)算效率,群體越大,其適應(yīng)值評(píng)估次數(shù)增加,所以計(jì)算量也增加,從而影響算法效能;二是群體中個(gè)體生存下來(lái)概率大多采用和適應(yīng)值成比例的方法,當(dāng)群體中個(gè)體非常多時(shí),少量適應(yīng)值很高的個(gè)體會(huì)被選擇而生存下來(lái),但大多數(shù)個(gè)體卻被淘汰,這會(huì)影響配對(duì)庫(kù)的形成,從而影響交叉操作。另一方面,群體規(guī)模太小,會(huì)使遺傳算法的搜索空間中分布范圍有限,因而搜索有可能停止在未成熟階段,引起未成熟收斂現(xiàn)象。

適應(yīng)度函數(shù):遺傳算法在進(jìn)化搜索中基本上不用外部信息,僅用適應(yīng)度函數(shù)作為依據(jù)。遺傳算法的目標(biāo)函數(shù)不受連續(xù)可微的約束且定義域可以為任意集合。對(duì)目標(biāo)函數(shù)的唯一要求是針對(duì)輸入值,可計(jì)算出能加以比較的非負(fù)結(jié)果。這一特點(diǎn)使得遺傳算法應(yīng)用范圍很廣[11]。

3.5遺傳操作

遺傳操作包括3個(gè)基本遺傳算子,交叉,變異,選擇[12]。這3個(gè)算子有以下特點(diǎn):a.這3個(gè)遺傳算子的操作都是隨機(jī)化操作,因此,個(gè)體向最優(yōu)解的遷移也是隨機(jī)的。b.遺傳操作的效果和上述3個(gè)遺傳算子所取的操作概率,編碼方法,群體大小,初始群體以及適應(yīng)度函數(shù)的設(shè)定密切相關(guān)。c.3個(gè)基本遺傳算子的操作方法或操作策略和個(gè)體的編碼方式直接有關(guān)。

3.5.1交叉運(yùn)算

所謂交叉運(yùn)算,是指兩個(gè)相互配對(duì)的染色體按某種方式相互交換其部分基因,從而形成兩個(gè)新的個(gè)體。交叉運(yùn)算是遺傳算法區(qū)別于其他進(jìn)化算法的重要特征,它決定了遺傳算法的全局搜索能力,是產(chǎn)生新個(gè)體的主要方法。常用的交叉算子有:a.單點(diǎn)交叉。又稱(chēng)簡(jiǎn)單交叉,它是指在個(gè)體編碼串中隨機(jī)設(shè)置一個(gè)交叉點(diǎn),然后在該點(diǎn)相互交換兩個(gè)配對(duì)個(gè)體的部分基因。b.雙點(diǎn)交叉。它的具體操作過(guò)程是1在相互配對(duì)的兩個(gè)個(gè)體中編碼串中設(shè)置兩個(gè)交叉點(diǎn);2交換兩個(gè)交叉點(diǎn)之間的部分基因。c.均勻交叉。它是指兩個(gè)配對(duì)個(gè)體的每一位基因都以相同的概率進(jìn)行交換,從而形成兩個(gè)新個(gè)體。具體操作過(guò)程是1隨機(jī)產(chǎn)生一個(gè)與個(gè)體編碼長(zhǎng)度相同的二進(jìn)制屏蔽字w=w1w2…..wx。2按下列規(guī)則從A,B兩個(gè)父代個(gè)體中產(chǎn)生兩個(gè)新個(gè)體X,Y;若wi=0,則X的第i個(gè)基因繼承A的對(duì)應(yīng)基因,Y的第i個(gè)基因繼承B的對(duì)應(yīng)基因;若wi=1,則A,B的第i個(gè)基因相互交換,從而生成X,Y的第i個(gè)基因[13]。

3.5.2變異運(yùn)算

所謂變異運(yùn)算,是指將個(gè)體編碼串中的某些基因值用其他基因值來(lái)替換,從而形成一個(gè)新的個(gè)體,遺傳算法中的變異運(yùn)算是產(chǎn)生新個(gè)體的輔助方法,但必不可少,因?yàn)樗鼪Q定了遺傳算法的局部搜索能力。常用的方法有:a.基本位變異它是指對(duì)個(gè)體編碼串以變異概率p隨機(jī)制定某一位或某幾位基因作變異運(yùn)算。b.均勻變異。它是指分別用符合某一范圍內(nèi)均勻分布的隨機(jī)數(shù),以某一較小的概率來(lái)替換個(gè)體中的每個(gè)基因。c.二元變異。它的操作需要兩條染色體參與,兩條染色體通過(guò)二元變異操作后生成兩條新個(gè)體,新個(gè)體中的各個(gè)基因分別取原染色體對(duì)應(yīng)基因值的同或/異或。

3.5.3選擇運(yùn)算

選擇運(yùn)算就是對(duì)群體中的個(gè)體進(jìn)行優(yōu)勝劣汰操作:適應(yīng)度高的個(gè)體被遺傳到下一代群體中的概率大;適應(yīng)度低的個(gè)體,被遺傳到下一代群體中的概率小。它的任務(wù)就是按某種方法從父代群體中選取一些個(gè)體,遺傳到下一代群體。

4.遺傳算法在控制領(lǐng)域中的研究與應(yīng)用

遺傳算法提供了一種求解復(fù)雜系統(tǒng)優(yōu)化問(wèn)題的通用框架,它不依賴(lài)于問(wèn)題的具體領(lǐng)域,對(duì)問(wèn)題的種類(lèi)有很強(qiáng)的魯棒性,所以廣泛應(yīng)用于很多學(xué)科。目前主要應(yīng)用的領(lǐng)域有函數(shù)優(yōu)化、生產(chǎn)調(diào)度問(wèn)題、自動(dòng)控制、機(jī)器學(xué)習(xí)、圖像處理、人工生命、遺傳編程,機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等等[14]。本文主要探討遺傳算法在控制領(lǐng)域中的研究與應(yīng)用。

4.1系統(tǒng)辨識(shí)和模型降價(jià)

系統(tǒng)辨識(shí)是控制系統(tǒng)設(shè)計(jì)的基礎(chǔ),有許多有效的方法,但是這些技術(shù)絕大部分處理的都是參數(shù)的線(xiàn)性模型,并且基于搜索空間是連續(xù)和可微的假設(shè)。目前的在線(xiàn)辨識(shí)方法都是離線(xiàn)方法的遞歸實(shí)現(xiàn)。這些遞歸方法本質(zhì)上都是使用梯度技術(shù)的局部搜索方法,在搜索空間不可微或參數(shù)非線(xiàn)性時(shí),這些方法都不容易找到全局最優(yōu)解,而遺傳算法的搜索不依賴(lài)梯度信息,也不需要求解函數(shù)可微,只需要求解函數(shù)自約束條件下的可行解,并且遺傳算法具有全局搜索的特性。GA為非線(xiàn)性系統(tǒng)的辨識(shí)提供了一種簡(jiǎn)單而有效的方法[15]。

4.2非線(xiàn)性系統(tǒng)控制

在控制系統(tǒng)設(shè)計(jì)中,由于實(shí)際問(wèn)題往往帶有嚴(yán)格的約束和非線(xiàn)性,同時(shí)指標(biāo)函數(shù)可能既不連續(xù)又不可微,不同的參數(shù)組合可能得到相同的控制作用。傳統(tǒng)優(yōu)化方法對(duì)初始值的選取都很敏感,很容易陷入初始解附近的局部極值。遺傳算法為非線(xiàn)性控制系統(tǒng)的優(yōu)化提供了一種有效途徑。因?yàn)镚A不需要指標(biāo)函數(shù)的微分,所以基于遺傳算法和性能分析的設(shè)計(jì)自動(dòng)化方法能夠考慮實(shí)際系統(tǒng)的許多性能要求,并可以直接設(shè)計(jì)非線(xiàn)性對(duì)象的線(xiàn)性控制器,而不需要先將對(duì)象進(jìn)行線(xiàn)性化,實(shí)踐證明這是控制系統(tǒng)設(shè)計(jì)的一種有效方法。徐滇生討論了利用GA進(jìn)行控制器參數(shù)優(yōu)化問(wèn)題,研究了利用GA確定具有特定結(jié)構(gòu)的非線(xiàn)性系統(tǒng)的參數(shù)值,指出在實(shí)現(xiàn)給定的性能指標(biāo)下,可獲得全局最優(yōu)的控制器參數(shù)[16]。

4.3模糊邏輯控制系統(tǒng)

在實(shí)際工程應(yīng)用中,由于缺乏關(guān)于對(duì)象動(dòng)態(tài)、非線(xiàn)性和時(shí)變特性的詳細(xì)先驗(yàn)知識(shí),得到被控對(duì)象的精確模型是非常困難的或不可能的?;诳刂葡到y(tǒng)無(wú)模型估計(jì)的模糊推理方法是控制系統(tǒng)設(shè)計(jì)的有力工具之一。這種基于規(guī)則的系統(tǒng)將模糊語(yǔ)言變量引入規(guī)則集合中,用以對(duì)人的經(jīng)驗(yàn)方法建模。但是模糊控制器的規(guī)則和隸屬度函數(shù)的選取具有很大程度的主觀性,當(dāng)輸入、輸出數(shù)目和語(yǔ)言變量劃分的等級(jí)增大時(shí),模糊規(guī)則的數(shù)目是以級(jí)數(shù)的平方關(guān)系迅速增加。這些都給模糊控制器的設(shè)計(jì)帶來(lái)了困難。為了解決模糊控制器設(shè)計(jì)的困難,很多學(xué)者研究利用GA進(jìn)行模糊系統(tǒng)的輔助設(shè)計(jì)和自動(dòng)化設(shè)計(jì)。Varsek[17]提出了學(xué)習(xí)動(dòng)態(tài)系統(tǒng)控制的三階段框架;即先通過(guò)GA獲得決策表,再通過(guò)機(jī)器學(xué)習(xí)將控制規(guī)則轉(zhuǎn)換成可以理解的形式,最后再用GA優(yōu)化規(guī)則的數(shù)值參數(shù)。ark研究了一種新的基于遺傳的模糊推理系統(tǒng),用于產(chǎn)生優(yōu)化參數(shù)集,獲得了良好的性能[18]。

4.4神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)

人工神經(jīng)網(wǎng)絡(luò)是從微觀結(jié)構(gòu)與功能上對(duì)人腦神經(jīng)系統(tǒng)的模擬而建立起來(lái)的一類(lèi)模型,具有模擬人的部分形象思維的能力,其特點(diǎn)是具有非線(xiàn)性特性、學(xué)習(xí)能力和自適應(yīng)性,是模擬人的智能的一種重要途徑,它在許多方面取得了廣泛應(yīng)用。但是神經(jīng)網(wǎng)絡(luò)的初始權(quán)值、閾值和高斯函數(shù)中心矢量不能很好的確定,而隱含層單元的傳輸函數(shù)是不連續(xù)和不可微的,因此采用傳統(tǒng)的優(yōu)化方法可能陷入局部極小值[19]。而遺傳算法的搜索不依賴(lài)梯度信息,也不需要求解函數(shù)可微,只需要求解函數(shù)自約束條件下的可行解,并且遺傳算法具有全局搜索的特性,用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的連接權(quán)、網(wǎng)絡(luò)結(jié)構(gòu)、初始權(quán)值、閾值和高斯函數(shù)中心矢量不僅容易獲得全局最優(yōu)解,還可以提高神經(jīng)網(wǎng)絡(luò)的泛化性能,大大提高系統(tǒng)的精度、魯棒性和自適應(yīng)。文獻(xiàn)[20]提出了用遺傳算法來(lái)代替最小二乘法來(lái)訓(xùn)練RBF神經(jīng)網(wǎng)絡(luò)的權(quán)值、閾值和高斯函數(shù)中心矢量,得出了滿(mǎn)意的仿真結(jié)果。

5.遺傳算法的MATLAB實(shí)現(xiàn)

需要如下主函數(shù):

(1)編碼和種群生成

function [pop] = initializega(num,bounds,evalFN,evalOps,options)

% pop    - the initial, evaluated, random population 

% num    - the size of the population, i.e. the number to create

% bounds - the number of permutations in an individual (e.g., number of cities in a tsp

% evalFN - the evaluation fn, usually the name of the .m file for evaluation

% evalOps- any options to be passed to the eval function defaults [ ]

% options- options to the initialize function, ie. [eps, float/binary, prec] where eps is the epsilon value and the second option is 1 for orderOps, prec is the precision of the variables defaults [1e-6 1]

(2)交叉

function [c1,c2] = arithXover(p1,p2,bounds,Ops)

% Arith crossover takes two parents P1,P2 and performs an interpolation along the line formed by the two parents.

% function [c1,c2] = arithXover(p1,p2,bounds,Ops)

% p1 - the first parent ( [solution string function value] )

% p2      - the second parent ( [solution string function value] )

% bounds  - the bounds matrix for the solution space

% Ops     - Options matrix for arith crossover [gen #ArithXovers]

(3)選擇

normGeomSelect:NormGeomSelect is a ranking selection function based on the normalized geometric distribution.

(基于正態(tài)分布的序列選擇函數(shù))

(4)變異

function[newPop] = normGeomSelect(oldPop,options)

% NormGeomSelect is a ranking selection function based onthe normalized geometric distribution.  

% function[newPop] = normGeomSelect(oldPop,options)

% newPop  - the new population selected from the oldPop

% oldPop  - the current population

% options - options to normGeomSelect [gen probability_of_selecting_best]

(5)一些輔助函數(shù):

f2b :Return the binary representation of the float number fval(將浮點(diǎn)數(shù)轉(zhuǎn)化為二進(jìn)制數(shù))

b2f:Return the float number corresponing to the binary representation of bval. (將二進(jìn)制數(shù)轉(zhuǎn)化為浮點(diǎn)數(shù))

nonUnifMutation: Non uniform mutation changes one of the parameters of the parent based on a non-uniform probability distribution.  This Gaussian distribution starts wide, and narrows to a point distribution as the current generation approaches the maximum generation.(基于非均一概率分布進(jìn)行非均一變異)

maxGenTerm:Returns 1, i.e. terminates the GA when the 

maximal_generation is reached.(當(dāng)?shù)螖?shù)大于最大迭代次數(shù)時(shí),終止遺傳算法,返回為1,否則返回為0。)

roulette:roulette is the traditional selection function with the probability of surviving equal to the fitness of i / sum of the fitness of all individuals

6.結(jié)論

遺傳算法是一種非常有效的優(yōu)化求解方法,對(duì)于控制領(lǐng)域中的某些控制結(jié)構(gòu)和控制作用的求取,可以提供比傳統(tǒng)優(yōu)化方法更快更好的結(jié)果。可以說(shuō)將GA與CAD軟件包智能連接而進(jìn)行高精度系統(tǒng)建模和控制器自動(dòng)化設(shè)計(jì)及參數(shù)優(yōu)化將是一種行之有效的新方法。但它始終未能對(duì)自身演化本身的研究發(fā)生作用。而且就其實(shí)質(zhì)來(lái)講,目前的GA學(xué)習(xí)人類(lèi)演化過(guò)程還只是形式的,尚未能刻畫(huà)人類(lèi)自身的演化過(guò)程,更未能刻畫(huà)神經(jīng)元思維真實(shí)學(xué)習(xí)過(guò)程。因此GA就其模型本身來(lái)講需要更加深入的探討。

 

參考文獻(xiàn)

 [1] HOLIAND J H. Adaptation in natural and artificial systems[M]. Ann Arbor: University of Michigan Press, 1975.

 [2] De JONG K A. The analysis of the behavior of a class of genetic adaptive systems[D]. Ann Arbor: University of Michigan, 1975.

 [3] GOLDVERG D E. Genetic algorithms in search, optimization and machine learning[M]. Boston: Addison-Wesley Longman Press, 1989.

 [4] 趙鐘榮. 基于改進(jìn)遺傳算法的集裝箱裝載優(yōu)化方法研究[D]. 2010.

 [5] Andeas Bortfeldt, Hermann Gehring. A hybrid genetic algorithm for the container loading problem[J]. Eruopean Journal of Operational Research. 2001(131): 143-161.

 [6] 劉嵩,李文蕙. 淺談遺傳算法在派克系統(tǒng)中的應(yīng)用[J]. 科技傳播. 2010(22): 226.

 [7] 黃小明,劉長(zhǎng)安. 改進(jìn)遺傳算法在自動(dòng)組卷系統(tǒng)中的應(yīng)用[J]. 科學(xué)技術(shù)與工程. 2010(08): 1999-2002.

 [8] 周昕,凌興宏. 遺傳算法理論及技術(shù)研究綜述[J]. 計(jì)算機(jī)與信息技術(shù). 2010(04): 37-39.

 [9] 趙宜鵬,孟磊,彭承靖. 遺傳算法原理與發(fā)展方向綜述[J]. 信息科學(xué). 2010: 79-80.

[10] 夏宇,龍鵬飛. 基于改進(jìn)遺傳算法的神經(jīng)網(wǎng)絡(luò)集成模型[J]. 軟件時(shí)空. 2010, 26(11-3): 206-207.

[11] 王春水,肖學(xué)柱,陳漢明. 遺傳算法的應(yīng)用舉例[J]. 計(jì)算機(jī)仿真. 2005, 6.

[12] 李華昌,謝淑蘭,易忠勝. 遺傳算法的原理與應(yīng)用[J]. 礦冶. 2005, 3.

[13] Davis L. Adaptive operator probability in genetic algorithms[C]. San Francisco: Morgan Kaufmann Publishers, 1989.

[14] 丁承民,張傳生,劉輝. 遺傳算法縱橫談[J]. 信息與控制. 2007, 26.

[15] 玄光男,程潤(rùn)傳. 遺傳算法與工程設(shè)計(jì)[M]. 北京: 科學(xué)出版社, 2000.

[16] 邢文訓(xùn),謝金星. 現(xiàn)代優(yōu)化計(jì)算方法[M]. 北京: 清華大學(xué)出版社, 1999.

[17] Varek A T.Urbacic and B.Filipic. Genetic Algorithms in Controller Design and Tuing[J]. IEEE Trans. 1993, 23(5): 1330-1339.

[18] 葛繼科,邱玉輝. 遺傳算法研究綜述[J]. 計(jì)算機(jī)應(yīng)用研究. 2008, 25(10).

[19] 王洪燕,楊敬安. 并行遺傳算法研究進(jìn)展[J]. 計(jì)算機(jī)科學(xué). 2009, 26(6).

[20] 劉寶坤. 基于遺傳算法的神經(jīng)網(wǎng)絡(luò)自適應(yīng)控制器的研究[J]. 信息與控制. 2007, 26(4): 311-314.

 

作者簡(jiǎn)介:

李?yuàn)檴櫍?988年3月,女,碩士研究生在讀,山東大學(xué)控制科學(xué)與工程學(xué)院,學(xué)生,研究方向?yàn)榭刂瓶茖W(xué)與工程、能效分析與評(píng)估。

何印洲,1987年5月,男,碩士研究生在讀,山東大學(xué)控制科學(xué)與工程學(xué)院,學(xué)生,研究方向?yàn)镈CS控制系統(tǒng)。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:鋁廠(chǎng)石灰消化自動(dòng)控制設(shè)計(jì)與開(kāi)發(fā)

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。