基于遺傳算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)本科生畢業(yè)設(shè)計(jì)_第1頁(yè)
基于遺傳算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)本科生畢業(yè)設(shè)計(jì)_第2頁(yè)
基于遺傳算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)本科生畢業(yè)設(shè)計(jì)_第3頁(yè)
基于遺傳算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)本科生畢業(yè)設(shè)計(jì)_第4頁(yè)
基于遺傳算法的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)本科生畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

江西理工大學(xué)2010屆本科生畢業(yè)設(shè)計(jì)(論文)摘要隨著科學(xué)技術(shù)的發(fā)展,各學(xué)科交叉滲透,利用遺傳算法用于解決傳統(tǒng)計(jì)算所遇到的尋找最優(yōu)解或準(zhǔn)優(yōu)解顯得尤為重要。因此,研究能在搜索過(guò)程中自動(dòng)獲得和積累有關(guān)搜索空間的知識(shí),并能自適應(yīng)地控制搜索過(guò)程,從而得到最優(yōu)解或準(zhǔn)有解的通用搜索算法一直是令人矚目的課題。遺傳算法經(jīng)實(shí)踐證明特別有效的算法。本課題將在對(duì)神經(jīng)網(wǎng)絡(luò)、遺傳算法等進(jìn)行基礎(chǔ)理論研究的前提下,注重對(duì)遺傳算法的C語(yǔ)言實(shí)現(xiàn)進(jìn)行研究,同時(shí)對(duì)GA在優(yōu)化和神經(jīng)網(wǎng)絡(luò)訓(xùn)練等方面的應(yīng)用和實(shí)現(xiàn)進(jìn)行較深入的探討。本文闡述了將遺傳算法用于神經(jīng)網(wǎng)絡(luò)權(quán)值學(xué)習(xí)和訓(xùn)練的原理和方法,并詳述了神經(jīng)網(wǎng)絡(luò)權(quán)值學(xué)習(xí)和訓(xùn)練中遺傳算法的具體實(shí)現(xiàn)過(guò)程。關(guān)鍵詞:遺傳算法;神經(jīng)網(wǎng)絡(luò);繁殖;交叉;變異;適應(yīng)度ABSTRACTWiththedevelopmentofscienceandtechnology,infiltratedthevariousdisciplines,thetraditionaluseofgeneticalgorithmsforsolvingencounteredcalculationtofindtheoptimalsolutionorquasi-optimalsolutionisveryimportant.Therefore,thestudycanbeautomaticallyinthesearchprocessandtheaccumulationofknowledgeofthesearchspace,andcanadaptivelycontrolthesearchprocess,therebyyieldingtheoptimalsolutionorthequasi-solvabilityofthegeneralsearchalgorithmhasbeenaremarkablesubject.GAprovenparticularlyeffectivemethod.Thisissuewillbeonneuralnetworks,geneticalgorithmsandbasicpremiseoftheory,focusingontheClanguageimplementationofgeneticalgorithmresearch,whileGAoptimizationandneuralnetworktrainingintheareasofapplicationandimplementationofmorein-depth.Inthispaper,geneticalgorithmneuralnetworkweightlearningandtrainingprinciplesandmethods,anddetailedstudyofneuralnetworkweightsandtraininginthespecificrealizationofgeneticalgorithmKeywords:geneticalgorithm;neuralnetwork;fitness;crossover;mutationbreeding;畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研究成果,也不包含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說(shuō)明并表示了謝意。作者簽名:日期:指導(dǎo)教師簽名:日期:使用授權(quán)說(shuō)明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。作者簽名:日期:

學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期:年月日學(xué)位論文版權(quán)使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名: 日期:年月日導(dǎo)師簽名:日期:年月日

目錄第一章緒論 41.1遺傳算法的產(chǎn)生及特點(diǎn) 41.2遺傳算法的發(fā)展及其應(yīng)用 51.3本課題的選題背景 51.5本課題研究目的與意義 6第二章神經(jīng)元網(wǎng)絡(luò)及BP算法 72.1神經(jīng)網(wǎng)絡(luò)概述 72.2神經(jīng)元的數(shù)學(xué)模型 72.3BP學(xué)習(xí)算法 92.4BP算法的原理 9第三章遺傳算法 153.1遺傳算法概述 153.2遺傳算法的步驟 163.2.1編碼問(wèn)題 163.2.3選擇 173.2.4交叉 183.2.5變異 193.2.6全局最優(yōu)收斂 19第四章遺傳算法在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用 214.1遺傳算法與神經(jīng)網(wǎng)絡(luò)的結(jié)合 214.2遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)C語(yǔ)言實(shí)現(xiàn) 224.2.1用遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)的要求 224.2.3遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)C語(yǔ)言實(shí)現(xiàn) 244.3結(jié)果分析 35第五章結(jié)束語(yǔ) 38參考文獻(xiàn): 39第一章緒論BP網(wǎng)(BackPropagationNetwork)是目前應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò),具有相當(dāng)強(qiáng)的輸入輸出映射能力.但是,由于BP算法的基本思想是最小二乘法,采用的是梯度搜索技術(shù),難免存在收斂速度慢、局部極小等問(wèn)題。神經(jīng)網(wǎng)絡(luò)和遺傳算法都是比較先進(jìn)的計(jì)算方法,它們已成功地應(yīng)用于工業(yè)、經(jīng)濟(jì)管理、交通運(yùn)輸、工業(yè)設(shè)計(jì)等領(lǐng)域,解決了許多問(wèn)題。但是神經(jīng)網(wǎng)絡(luò)權(quán)值訓(xùn)練和學(xué)習(xí)過(guò)程的復(fù)雜和長(zhǎng)期性,特別是神經(jīng)網(wǎng)絡(luò)易有訓(xùn)練過(guò)度的缺點(diǎn),這些都大大影響了神經(jīng)網(wǎng)絡(luò)的更廣泛普及和應(yīng)用。遺傳算法是一種高效和計(jì)算簡(jiǎn)單的優(yōu)化算法,它完全可以應(yīng)用于神經(jīng)網(wǎng)絡(luò)權(quán)值的訓(xùn)練和學(xué)習(xí)中,提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率和學(xué)習(xí)速度,減輕網(wǎng)絡(luò)學(xué)習(xí)過(guò)度的問(wèn)題,為神經(jīng)網(wǎng)絡(luò)的更廣泛應(yīng)用奠定基礎(chǔ)。1.1遺傳算法的產(chǎn)生及特點(diǎn)遺傳算法是根據(jù)生物進(jìn)化思想而啟發(fā)得出的一種全局優(yōu)化算法,并且遺傳算法是模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過(guò)程的計(jì)算模型。它的思想源于生物遺傳學(xué)和適者生存的自然規(guī)律,是具有“生存+檢測(cè)”的迭代過(guò)程的搜索算法。遺傳算法以一種群體中的所有個(gè)體為對(duì)象,并利用隨機(jī)化技術(shù)指導(dǎo)對(duì)一個(gè)被編碼的參數(shù)空間進(jìn)行高效搜索。其中,選擇、交叉和變異構(gòu)成了遺傳算法的遺傳操作;參數(shù)編碼、初始群體的設(shè)定、適應(yīng)度函數(shù)的設(shè)計(jì)、遺傳操作設(shè)計(jì)、控制參數(shù)設(shè)定五個(gè)要素組成了遺傳算法的核心內(nèi)容。作為一種新的全局優(yōu)化搜索算法,遺傳算法以其簡(jiǎn)單通用、魯棒性強(qiáng)、適于并行處理以及高效、實(shí)用等顯著特點(diǎn),在各個(gè)領(lǐng)域得到了廣泛應(yīng)用,取得了良好效果,并逐漸成為重要的智能算法之一。遺傳算法作為一種快捷、簡(jiǎn)便、容錯(cuò)性強(qiáng)的算法,在各類結(jié)構(gòu)對(duì)象的優(yōu)化過(guò)程中顯示出明顯的優(yōu)勢(shì)。與傳統(tǒng)的搜索方法相比,遺傳算法具有如下特點(diǎn):搜索過(guò)程不直接作用在變量上,而是在參數(shù)集進(jìn)行了編碼的個(gè)體。此編碼操作,使得遺傳算法可直接對(duì)結(jié)構(gòu)對(duì)象(集合、序列、矩陣、樹(shù)、圖、鏈和表)進(jìn)行操作。搜索過(guò)程是從一組解迭代到另一組解,采用同時(shí)處理群體中多個(gè)個(gè)體的方法,降低了陷入局部最優(yōu)解的可能性,并易于并行化。采用概率的變遷規(guī)則來(lái)指導(dǎo)搜索方向,而不采用確定性搜索規(guī)則。對(duì)搜索空間沒(méi)有任何特殊要求(如連通性、凸性等),只利用適應(yīng)性信息,不需要導(dǎo)數(shù)等其它輔助信息,適應(yīng)范圍更廣。遺傳算法具有許多獨(dú)特的優(yōu)點(diǎn):1.遺傳算法從問(wèn)題解的中集開(kāi)始嫂索,而不是從單個(gè)解開(kāi)始。這是遺傳算法與傳統(tǒng)優(yōu)化算法的極大區(qū)別。傳統(tǒng)優(yōu)化算法是從單個(gè)初始值迭代求最優(yōu)解的;容易誤入局部最優(yōu)解。遺傳算法從串集開(kāi)始搜索,覆蓋面大,利于全局擇優(yōu)。2.遺傳算法求解時(shí)使用特定問(wèn)題的信息極少,容易形成通用算法程序。由于遺傳算法使用適應(yīng)值這一信息進(jìn)行搜索,并不需要問(wèn)題導(dǎo)數(shù)等與問(wèn)題直接相關(guān)的信息。遺傳算法只需適應(yīng)值和串編碼等通用信息,幾乎可處理任何問(wèn)題。3.遺傳算法有極強(qiáng)的容錯(cuò)能力遺傳算法的初始串集本身就帶有大量與最優(yōu)解甚遠(yuǎn)的信息;通過(guò)選擇、交叉、變異操作能迅速排除與最優(yōu)解相差極大的串;這是一個(gè)強(qiáng)烈的濾波過(guò)程;并且是一個(gè)并行濾波機(jī)制。故而,遺傳算法有很高的容錯(cuò)能力。4.遺傳算法中的選擇、交叉和變異都是隨機(jī)操作,而不是確定的精確規(guī)則。這說(shuō)明遺傳算法是采用隨機(jī)方法進(jìn)行最優(yōu)解搜索,選擇體現(xiàn)了向最優(yōu)解迫近,交叉體現(xiàn)了最優(yōu)解的產(chǎn)生,變異體現(xiàn)了全局最優(yōu)解的覆蓋。5.遺傳算法具有隱含的并行性。遺傳算法在操作上具有高度的并行性,許多研究人員都在探索在并行機(jī)和分布式系統(tǒng)上高效執(zhí)行遺傳算法的策略。對(duì)分布并行遺傳算法的研究表明,只要通過(guò)保持多個(gè)群體和恰當(dāng)控制群體間的相互作用來(lái)模擬并行執(zhí)行過(guò)程,即使不使用并行計(jì)算機(jī),也能提高算法的執(zhí)行效率。1.2遺傳算法的發(fā)展及其應(yīng)用遺傳算法(GeneticAlgorithm)是一類借鑒生物界的進(jìn)化規(guī)律(適者生存,優(yōu)勝劣汰遺傳機(jī)制)演化而來(lái)的隨機(jī)化搜索方法。它是由美國(guó)的J.Holland教授1975年首先提出,其主要特點(diǎn)是直接對(duì)結(jié)構(gòu)對(duì)象進(jìn)行操作,不存在求導(dǎo)和函數(shù)連續(xù)性的限定;具有內(nèi)在的隱并行性和更好的全局尋優(yōu)能力;采用概率化的尋優(yōu)方法,能自動(dòng)獲取和指導(dǎo)優(yōu)化的搜索空間,自適應(yīng)地調(diào)整搜索方向,不需要確定的規(guī)則。遺傳算法的這些性質(zhì),已被人們廣泛地應(yīng)用于組合優(yōu)化、機(jī)器學(xué)習(xí)、信號(hào)處理、自適應(yīng)控制和人工生命等領(lǐng)域。它是現(xiàn)代有關(guān)智能計(jì)算中的關(guān)鍵技術(shù)。遺傳算法是模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過(guò)程的計(jì)算模型。它的思想源于生物遺傳學(xué)和適者生存的自然規(guī)律,是具有“生存+檢測(cè)”的迭代過(guò)程的搜索算法。遺傳算法以一種群體中的所有個(gè)體為對(duì)象,并利用隨機(jī)化技術(shù)指導(dǎo)對(duì)一個(gè)被編碼的參數(shù)空間進(jìn)行高效搜索。其中,選擇、交叉和變異構(gòu)成了遺傳算法的遺傳操作;參數(shù)編碼、初始群體的設(shè)定、適應(yīng)度函數(shù)的設(shè)計(jì)、遺傳操作設(shè)計(jì)、控制參數(shù)設(shè)定五個(gè)要素組成了遺傳算法的核心內(nèi)容。作為一種新的全局優(yōu)化搜索算法,遺傳算法以其簡(jiǎn)單通用、魯棒性強(qiáng)、適于并行處理以及高效、實(shí)用等顯著特點(diǎn),在各個(gè)領(lǐng)域得到了廣泛應(yīng)用,取得了良好效果,并逐漸成為重要的智能算法之一。1.3本課題的選題背景當(dāng)前科學(xué)技術(shù)正進(jìn)入多學(xué)科互相交叉、互相滲透、互相影響的時(shí)代,生命科學(xué)與工程科學(xué)的交叉、滲透和相互促進(jìn)是其中一個(gè)典型例子,也是近代科學(xué)技術(shù)發(fā)展的一個(gè)顯著特點(diǎn)。但是,近年來(lái),隨著人工智能應(yīng)用領(lǐng)域的不斷拓廣,傳統(tǒng)的基于符號(hào)處理機(jī)制的人工智能方法在知識(shí)表示、處理模式信息及解決組合爆炸等方面所碰到的問(wèn)題已變得越來(lái)越突出,有不少問(wèn)題需要在復(fù)雜而龐大的搜索空間中尋找最優(yōu)解或準(zhǔn)優(yōu)解。在求解此類問(wèn)題時(shí),若不能利用問(wèn)題的固有知識(shí)來(lái)縮小搜索空間則會(huì)產(chǎn)生搜索的組合爆炸。因此,研究能在搜索過(guò)程中自動(dòng)獲得和積累有關(guān)搜索空間的知識(shí),并能自適應(yīng)地控制搜索過(guò)程,從而得到最優(yōu)解或準(zhǔn)有解的通用搜索算法一直是令人矚目的課題。遺傳算法就是在這種背景下產(chǎn)生并經(jīng)實(shí)踐證明特別有效的算法。1.4本課題主要研究?jī)?nèi)容學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)研究的一個(gè)重要內(nèi)容,它的適應(yīng)性是通過(guò)學(xué)習(xí)實(shí)現(xiàn)的。根據(jù)環(huán)境的變化,對(duì)權(quán)值進(jìn)行調(diào)整,改善系統(tǒng)的行為。由Hebb提出的Hebb學(xué)習(xí)規(guī)則為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法奠定了基礎(chǔ)。Hebb規(guī)則認(rèn)為學(xué)習(xí)過(guò)程最終發(fā)生在神經(jīng)元之間的突觸部位,突觸的聯(lián)系強(qiáng)度隨著突觸前后神經(jīng)元的活動(dòng)而變化。在此基礎(chǔ)上,人們提出了各種學(xué)習(xí)規(guī)則和算法,以適應(yīng)不同網(wǎng)絡(luò)模型的需要。有效的學(xué)習(xí)算法,使得神經(jīng)網(wǎng)絡(luò)能夠通過(guò)連接權(quán)值的調(diào)整,構(gòu)造客觀世界的內(nèi)在表示,形成具有特色的信息處理方法,信息存儲(chǔ)和處理體現(xiàn)在網(wǎng)絡(luò)的連接中。1.5本課題研究目的與意義本課題任務(wù)主要是在監(jiān)督學(xué)習(xí)中,利用C語(yǔ)言編程,研究通過(guò)GA算法直接訓(xùn)練神經(jīng)網(wǎng)絡(luò)和訓(xùn)練初始權(quán)值的方法。將訓(xùn)練樣本的數(shù)據(jù)加到網(wǎng)絡(luò)輸入端,同時(shí)將相應(yīng)的期望輸出與網(wǎng)絡(luò)輸出相比較,得到誤差信號(hào),以此控制權(quán)值連接強(qiáng)度的調(diào)整,經(jīng)多次訓(xùn)練后收斂到一個(gè)確定的權(quán)值。當(dāng)樣本情況發(fā)生變化時(shí),經(jīng)學(xué)習(xí)可以修改權(quán)值以適應(yīng)新的環(huán)境。第二章神經(jīng)元網(wǎng)絡(luò)及BP算法2.1神經(jīng)網(wǎng)絡(luò)概述神經(jīng)網(wǎng)絡(luò)是大量的簡(jiǎn)單神經(jīng)元按一定規(guī)則連接構(gòu)成的網(wǎng)絡(luò)系統(tǒng)。網(wǎng)絡(luò)能夠模擬人類大腦的結(jié)構(gòu)和功能,自1943年第一個(gè)神經(jīng)網(wǎng)絡(luò)模型MP模型提出至今,神經(jīng)網(wǎng)絡(luò)發(fā)展非常迅速。特別是1982年提出的Hopfield網(wǎng)絡(luò)模型和1985年提出的BP算法,神經(jīng)網(wǎng)絡(luò)逐步得到更加廣泛的應(yīng)用。神經(jīng)網(wǎng)絡(luò)是由大量神經(jīng)元廣泛互連形成大規(guī)模并行處理和分布式的信息存儲(chǔ)的復(fù)雜網(wǎng)絡(luò)系統(tǒng)。單一神經(jīng)元可以有許多輸入、輸出。神經(jīng)元之間的相互作用通過(guò)連接的權(quán)重體現(xiàn),神經(jīng)元的輸出是其輸入的函數(shù)。單一簡(jiǎn)單的神經(jīng)元,經(jīng)過(guò)大規(guī)模的互聯(lián)形成了復(fù)雜龐大的系統(tǒng),可實(shí)現(xiàn)多種多樣的日任務(wù)。神經(jīng)網(wǎng)絡(luò)計(jì)算的基本特征是大規(guī)模并行處理、容錯(cuò)性、自適應(yīng)性和自組織性。大規(guī)模并行處理指能同時(shí)處理與決策有關(guān)的因素.采用某種學(xué)習(xí)算法從訓(xùn)練樣本中學(xué)習(xí),并將獲取的知識(shí)存儲(chǔ)在網(wǎng)絡(luò)各單元之間的連接權(quán)中,神經(jīng)網(wǎng)絡(luò)和基于符號(hào)的傳統(tǒng)K9技術(shù)相比,具有直觀性、并行性和抗噪性。目前已出現(xiàn)了多種網(wǎng)絡(luò)模型和學(xué)習(xí)算法,主要用于分類、優(yōu)化、模式識(shí)別、預(yù)測(cè)和控制等領(lǐng)域。2.2神經(jīng)元的數(shù)學(xué)模型從神經(jīng)元的特性和功能可以知道,神經(jīng)元是一個(gè)多輸入單輸出的信息處理單元,而且它對(duì)信息的處理是非線性的。根據(jù)神經(jīng)元的特性和功能,可以把神經(jīng)元抽象為一個(gè)簡(jiǎn)單的數(shù)學(xué)模型。工程上用的人工神經(jīng)元模型如圖2-2所示。圖2-2神經(jīng)元的數(shù)學(xué)模型在圖2—2中,,,……,是神經(jīng)元的輸入,即是來(lái)自前級(jí)n個(gè)神經(jīng)元的軸突的信息W是i神經(jīng)元的閥值;,……,分別是i神經(jīng)元對(duì),,……,的權(quán)系數(shù),也即突觸的傳遞效率;是i神經(jīng)元的輸出;f[·]是激發(fā)函數(shù),它決定i神經(jīng)元受到輸人,,……,的共同刺激達(dá)到閥值時(shí)以何種方式輸出。從圖2-2的神經(jīng)元模型,可以得到神經(jīng)元的數(shù)學(xué)模型表達(dá)式:(2-1)圖2-3.典型激發(fā)函數(shù)對(duì)于激發(fā)函數(shù)f[·]有多種形式,其中最常見(jiàn)的有階躍型、線性型和S型三種形式,這三種形式如圖2—3所示。為了表達(dá)方便;令:=(2-2)則公式(2-1)可寫成下式:=F[];

(2-3)顯然,對(duì)于階躍型激發(fā)函數(shù)有:(2-4)對(duì)于線性型激發(fā)函數(shù),有:f()=;

(2-5)對(duì)于S型激發(fā)函數(shù),有:(2-6)對(duì)于階躍型激發(fā)函數(shù),它的輸出是單位脈沖,故而這種激發(fā)函數(shù)的神經(jīng)元稱離散輸出模型。對(duì)于線性激發(fā)函數(shù),它的輸出是隨輸入的激發(fā)總量成正比的;故這種神經(jīng)元稱線性連續(xù)型模型。對(duì)于用s型激發(fā)函數(shù),它的輸出是非線性的;故這種神經(jīng)元稱非線性連續(xù)型模型。閥值函數(shù)(Thresh0ldFunction)閥值函數(shù)又叫階躍函數(shù),當(dāng)激活函數(shù)僅用來(lái)實(shí)現(xiàn)判定神經(jīng)元所獲得的網(wǎng)絡(luò)輸入是否超過(guò)閉值θ時(shí),使用此函數(shù)。(2-7)其小,β、γ、θ均為非負(fù)實(shí)數(shù)。通常,人們都用公式(2—7)的二值形式:有時(shí)候,還將公式(2—8)中的0改為—1,此時(shí)就變成了雙極形式:(2-8`)上面所敘述的是最廣泛應(yīng)用而且人們最熟悉的神經(jīng)元數(shù)學(xué)模型;也是歷史最長(zhǎng)的神經(jīng)元模型。近若干年來(lái),隨著神經(jīng)網(wǎng)絡(luò)理論的發(fā)展,出現(xiàn)了不少新穎的神經(jīng)元數(shù)學(xué)模型,這些模型包括邏輯神經(jīng)元模型,模糊神經(jīng)元模型等,并且漸漸也受到人們的關(guān)注和重視。2.3BP學(xué)習(xí)算法反向傳播算法也稱BP算法。由于這種算法在本質(zhì)上是一種神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的數(shù)學(xué)模型,所以,有時(shí)也稱為BP模型。BP(Backpropagation)神經(jīng)網(wǎng)絡(luò)又稱為多層前饋神經(jīng)網(wǎng)絡(luò),這種神經(jīng)網(wǎng)絡(luò)模型的特點(diǎn)是:各層神經(jīng)元僅與相鄰層神經(jīng)元之間有連接;各層內(nèi)神經(jīng)元之間無(wú)任何連接;各層神經(jīng)元之間無(wú)反饋連接。BP算法是為了解決多層前向神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)優(yōu)化而提出來(lái)的;所以,BP算法也通常暗示著神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)是一種無(wú)反饋的多層前向網(wǎng)絡(luò)。故而.有時(shí)也稱無(wú)反饋多層前向網(wǎng)絡(luò)為BP模型。在這里,并不要求過(guò)于嚴(yán)格去爭(zhēng)論和區(qū)分算法和模型兩者的有關(guān)異同。感知機(jī)學(xué)習(xí)算法是一種單層網(wǎng)絡(luò)的學(xué)習(xí)算法。在多層網(wǎng)絡(luò)中.它只能改變最后權(quán)系數(shù)。因此,感知機(jī)學(xué)習(xí)算法不能用于多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。1986年,Rumelhart提出了反向傳播學(xué)習(xí)算法,即BP(back-propagation)算法。這種算法可以對(duì)網(wǎng)絡(luò)中各層的權(quán)系數(shù)進(jìn)行修正,故適用于多層網(wǎng)絡(luò)的學(xué)習(xí)。BP算法是目前最廣泛用的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法之一,在自動(dòng)控制中是最有用的學(xué)習(xí)算法。2.4BP算法的原理BP算法是用于前饋多層網(wǎng)絡(luò)的學(xué)習(xí)算法,前饋多層網(wǎng)絡(luò)的結(jié)構(gòu)一般如圖2-4所示圖2-4網(wǎng)絡(luò)學(xué)習(xí)結(jié)構(gòu)它含有輸人層、輸出層以及處于輸入輸出層之間的中間層。中間層有單層或多層,由于它們和外界沒(méi)有直接的聯(lián)系,故也稱為隱層。在隱層中的神經(jīng)元也稱隱單元。隱層雖然和外界不連接.但是,它們的狀態(tài)則影響輸入輸出之間的關(guān)系。這也是說(shuō),改變隱層的權(quán)系數(shù),可以改變整個(gè)多層神經(jīng)網(wǎng)絡(luò)的性能。設(shè)有一個(gè)m層的神經(jīng)網(wǎng)絡(luò),并在輸入層加有樣本X;設(shè)第k層的i神經(jīng)元的輸入總和表示為,輸出;從第k—1層的第j個(gè)神經(jīng)元到第k層的第i個(gè)神經(jīng)元的權(quán)系數(shù)為各個(gè)神經(jīng)元的激發(fā)函數(shù)為f,則各個(gè)變量的關(guān)系可用下面有關(guān)數(shù)學(xué)式表示:(2-9)(2-10)反向傳播算法分二步進(jìn)行,即正向傳播和反向傳播。這兩個(gè)過(guò)程的工作簡(jiǎn)述如下:1.正向傳播輸入的樣本從輸入層經(jīng)過(guò)隱單元一層一層進(jìn)行處理,通過(guò)所有的隱層之后,則傳向輸出層;在逐層處理的過(guò)程中,每一層神經(jīng)元的狀態(tài)只對(duì)下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進(jìn)行比較,如果現(xiàn)行輸出不等于期望輸出,則進(jìn)入反向傳播過(guò)程。2.反向傳播反向傳播時(shí),把誤差信號(hào)按原來(lái)正向傳播的通路反向傳回,并對(duì)每個(gè)隱層的各個(gè)神經(jīng)元的權(quán)系數(shù)進(jìn)行修改,以望誤差信號(hào)趨向最小。2.5BP算法的數(shù)學(xué)表達(dá)BP算法實(shí)質(zhì)是求取誤差函數(shù)的最小值問(wèn)題。這種算法采用非線性規(guī)劃中的最速下降方法,按誤差函數(shù)的負(fù)梯度方向修改權(quán)系數(shù)。為了說(shuō)明BP算法,首先定義誤差函數(shù)e。取期望輸出和實(shí)際輸出之差的平方和為誤差函數(shù),則有:(2-11)其中:Yi是輸出單元的期望值;它也在這里用作教師信號(hào);是實(shí)際輸出;因?yàn)榈趍層是輸出層。由于BP算法按誤差函數(shù)e的負(fù)梯度方向修改權(quán)系數(shù),故權(quán)系數(shù)的修改量A,和e△-(2-12)也可寫成△-(2-13)其中:η為學(xué)習(xí)速率,即步長(zhǎng)。很明顯,根據(jù)BP算法原則,求是最關(guān)鍵的。下面求;有(2-14)由于(2-15)故而(2-16)從而有(2-17)令(2-18)則有學(xué)習(xí)公式:(2-19)從公式(2-9)可知在公式(2-17)中,有其中:η為學(xué)習(xí)速率,即步長(zhǎng),一般取0-1間的數(shù)。從上面可知,實(shí)際仍末給出明顯的算法公式,下面求的計(jì)算公式。(2-20)從公式(2-9)可知在公式(2-20)中,有(2-21)為了方便進(jìn)行求導(dǎo),取f為連續(xù)函數(shù)。一般取非線性連續(xù)函數(shù),例如Sigmoid函數(shù)。當(dāng)取f為非對(duì)稱Sigmoid函數(shù)時(shí),有:(2-22)則有(2-23)再考慮式(2-20)中的偏微分項(xiàng)e/,有兩種情況需考慮的:如果k=m,則是輸出層,這時(shí)有是輸出期望值,它是常數(shù)。由于公式(2-11)中有(2-24)從而有=(1-)(-Yi)(2-25)2.如果k<m,則該層是隱層。這時(shí)應(yīng)考慮上一層對(duì)它的作用,故有:(2-26)從公式(2-18)中,可知有:(2-27)從公式(2-10)中,可知有:(2-28)故而有:(2-29)最后有:(2-30)從上述過(guò)程可知:多層網(wǎng)絡(luò)的訓(xùn)練方法是把一個(gè)樣本加到輸入層,并根據(jù)向前傳播的規(guī)則:(2-31)不斷一層一層向輸出層傳遞,最終在輸出層可以得到輸出。把和期望輸出進(jìn)行比較.如果兩者不等,則產(chǎn)生誤差信號(hào)e,接著則按下面公式反向傳播修改權(quán)系數(shù):(2-32)其中(2-33)(2-34)上面公式中,求取本層時(shí),要用到高一層的;可見(jiàn),誤差函數(shù)的求取是從輸出層開(kāi)始,到輸入層的反向傳播過(guò)程。在這個(gè)過(guò)程中不斷進(jìn)行遞歸求誤差。通過(guò)多個(gè)樣本的反復(fù)訓(xùn)練,同時(shí)向誤差漸漸減小的方向?qū)?quán)系數(shù)進(jìn)行修正,以達(dá)最終消除誤差。從上面公式也可以知道,如果網(wǎng)絡(luò)的層數(shù)較多時(shí),所用的計(jì)算量就相當(dāng)可觀,故而收斂速度不快。為了加快收斂速度,一般考慮上一次的權(quán)系數(shù),并以它作為本次修正的依據(jù)之一,故而有修正公式:(2-35)其中:η為學(xué)習(xí)速率,即步長(zhǎng),η=0.1—0.4左右為權(quán)系數(shù)修正常數(shù),取0.7—0.9左右。在上面,公式(2-32)也稱為一般化的Delta法則。對(duì)于沒(méi)有隱層的神經(jīng)網(wǎng)絡(luò),可?。?-36)其中:為期望輸出;為輸出層的實(shí)際輸出;為輸入層的輸入。這顯然是一種十分簡(jiǎn)單的情況,公式(2-36)也稱為簡(jiǎn)單Delta法則。在實(shí)際應(yīng)用中,只有一般化的Delta法則公式(2-36)或公式(2-35)才有意義。簡(jiǎn)單Delta法則式(2-36)只在理論推導(dǎo)上有用。第三章遺傳算法3.1遺傳算法概述遺傳算法的基本思想是基于Darwin進(jìn)化論和Mendel的遺傳學(xué)說(shuō)的。Darwin進(jìn)化論最重要的是適者生存原理。它認(rèn)為每一物種在發(fā)展中越來(lái)越適應(yīng)環(huán)境。物種每個(gè)個(gè)體的基本特征由后代所繼承,但后代又會(huì)產(chǎn)生一些異于父代的新變化。在環(huán)境變化時(shí),只有那些能適應(yīng)環(huán)境的個(gè)體特征方能保留下來(lái)。Mendel遺傳學(xué)說(shuō)最重要的是基因遺傳原理。它認(rèn)為遺傳以密碼方式存在細(xì)胞中,并以基因形式包含在染色體內(nèi)。每個(gè)基因有特殊的位置并控制某種特殊性質(zhì);所以,每個(gè)基因產(chǎn)生的個(gè)體對(duì)環(huán)境具有某種適應(yīng)性?;蛲蛔兒突螂s交可產(chǎn)生更適應(yīng)于環(huán)境的后代。經(jīng)過(guò)存優(yōu)去劣的自然淘汰,適應(yīng)性高的基因結(jié)構(gòu)得以保存下來(lái)。由于遺傳算法是由進(jìn)化論和遺傳學(xué)機(jī)理而產(chǎn)生的直接搜索優(yōu)化方法;故而在這個(gè)算法中要用到各種進(jìn)化和遺傳學(xué)的概念。這些概念如下:注意以下格式問(wèn)題!一、串(String)

它是個(gè)體(Individual)的形式,在算法中為二進(jìn)制串,并且對(duì)應(yīng)于遺傳學(xué)中的染色體(Chromosome)。二、群體(Population)個(gè)體的集合稱為群體,串是群體的元素三、群體大小(PopulationSize)在群體中個(gè)體的數(shù)量稱為群體的大小。四、基因(Gene)基因是串中的元素,基因用于表示個(gè)體的特征。例如有一個(gè)串S=1011,則其中的1,0,1,1這4個(gè)元素分別稱為基因。它們的值稱為等位基因(Alletes)。

五、基因位置(GenePosition)一個(gè)基因在串中的位置稱為基因位置,有時(shí)也簡(jiǎn)稱基因位?;蛭恢糜纱淖笙蛴矣?jì)算,例如在串S=1101中,0的基因位置是3。基因位置對(duì)應(yīng)于遺傳學(xué)中的地點(diǎn)(Locus)。六、基因特征值(GeneFeature)

在用串表示整數(shù)時(shí),基因的特征值與二進(jìn)制數(shù)的權(quán)一致;例如在串S=1011中,基因位置3中的1,它的基因特征值為2;基因位置1中的1,它的基因特征值為8。七、串結(jié)構(gòu)空間SS

在串中,基因任意組合所構(gòu)成的串的集合?;虿僮魇窃诮Y(jié)構(gòu)空間中進(jìn)行的。串結(jié)構(gòu)空間對(duì)應(yīng)于遺傳學(xué)中的基因型(Genotype)的集合。八、參數(shù)空間SP這是串空間在物理系統(tǒng)中的映射,它對(duì)應(yīng)于遺傳學(xué)中的表現(xiàn)型(Phenotype)的集合。九、非線性它對(duì)應(yīng)遺傳學(xué)中的異位顯性(Epistasis)十、適應(yīng)度(Fitness)表示某一個(gè)體對(duì)于環(huán)境的適應(yīng)程度。3.2遺傳算法的步驟3.2.1編碼問(wèn)題標(biāo)準(zhǔn)遺傳算法主要通過(guò)遺傳操作(交叉與變異)對(duì)種群中的個(gè)體施加結(jié)構(gòu)重組處理,通過(guò)選擇操作不斷優(yōu)化群體中的個(gè)體結(jié)構(gòu),從而搜索到最優(yōu)結(jié)構(gòu)的個(gè)體,達(dá)到逼近問(wèn)題的最優(yōu)解的目的。由此可見(jiàn),標(biāo)準(zhǔn)遺傳算法不能直接對(duì)問(wèn)題空間進(jìn)行操作,必須將問(wèn)題空間的解變量轉(zhuǎn)換成遺傳空間,由基因按一定結(jié)構(gòu)組成染色體,這一轉(zhuǎn)換操作就叫做編碼。(一)編碼原則評(píng)價(jià)編碼策略通常考慮一下三個(gè)方面:(1)完備性。問(wèn)題空間中的所有點(diǎn)都能作為遺傳空間中的點(diǎn)(染色體)來(lái)表現(xiàn)。(2)健全性。遺傳空間中的染色體能對(duì)應(yīng)所有問(wèn)題空間中的候選解。(3)非冗余性。染色體和候選解一一對(duì)應(yīng)。對(duì)于很多問(wèn)題很難設(shè)計(jì)出同時(shí)滿足上面三條要求的編碼方案,但是完備性是必須滿足的一項(xiàng)。這三個(gè)評(píng)價(jià)規(guī)范是獨(dú)立于問(wèn)題領(lǐng)域的普遍準(zhǔn)則,具有普遍意義,但是缺乏具體的指導(dǎo)思想,特別是滿足這些條件的編碼設(shè)計(jì)不一定能有效地提高遺傳算法的搜索效率。相比之下,DeJong提出較為客觀明確的編碼評(píng)估準(zhǔn)則,稱之為編碼原理,由于可操作性較強(qiáng),又稱之為編碼規(guī)則。具體為:(1)有意義基因塊的編碼規(guī)則。所定編碼應(yīng)當(dāng)易于生成與所求問(wèn)題相關(guān)的短距和低階的基因塊。(2)最小字符集編碼規(guī)則。所定編碼應(yīng)采用最小字符集,以使問(wèn)題得到自然的表示或描述。(二)編碼方法下面介紹幾種常用的遺傳算法編碼技術(shù)。(1)一維染色體編碼。一維染色體編碼是指問(wèn)題空間的候選解轉(zhuǎn)換到遺傳空間后,其相應(yīng)的染色體呈一維排列的基因鏈碼。通常采用的一維染色體編碼技術(shù)有:1)二進(jìn)制編碼。二進(jìn)制編碼是將問(wèn)題空間的候選解轉(zhuǎn)換為遺傳空間的各位數(shù)值為“0”或“1”的字符串。二進(jìn)制編碼方法是最為經(jīng)典和常用的編碼方法,它的優(yōu)點(diǎn)有:①符合最小字符集的編碼原則;②編碼簡(jiǎn)單,便于進(jìn)行交叉、變異等遺傳操作,且物理概念清晰;③便于用模式定理川進(jìn)行分析與預(yù)測(cè)。但是對(duì)于多維、高精度問(wèn)題,二進(jìn)制編碼就會(huì)顯示出一些不足,主要有:①二進(jìn)制編碼不能直接反映出所求問(wèn)題的本身結(jié)構(gòu)特征;②二進(jìn)制編碼的染色體長(zhǎng)度與問(wèn)題空間的區(qū)域大小和精度要求直接相關(guān),對(duì)于大區(qū)間、高精度的問(wèn)題,染色體的長(zhǎng)度會(huì)很長(zhǎng),搜索空間也會(huì)很大,這樣的搜索相當(dāng)困難;③相鄰的二進(jìn)制編碼可能會(huì)有較大的Hamming距離,從而降低了遺傳算子的搜索效率。2)灰碼編碼。利用灰碼編碼方法可以在一定程度上克服上述缺點(diǎn)?;掖a編碼是將二進(jìn)制編碼通過(guò)一個(gè)變換而得到的編碼,其表現(xiàn)也為二進(jìn)制的形式,所不同的是灰碼編碼技術(shù)保證了在遺傳空間相互靠近的兩個(gè)點(diǎn)也必須在問(wèn)題空間里靠近,反之亦然。3)浮點(diǎn)編碼。浮點(diǎn)編碼是灰碼轉(zhuǎn)換,只是保證了問(wèn)題空間相鄰的點(diǎn)在遺傳空間有數(shù)值為1的Hamming距離,但遺傳空間還不是問(wèn)題空間。如果采用浮點(diǎn)表達(dá)的編碼方法,即每個(gè)染色體向量被編碼成一個(gè)與解向量相同長(zhǎng)度的浮點(diǎn)數(shù)向量,那么,在執(zhí)行上,遺傳空間就是問(wèn)題空間,染色體直接反映了問(wèn)題的規(guī)律與特性。浮點(diǎn)編碼與二進(jìn)制編碼相比有以下優(yōu)點(diǎn):①精度依賴于所使用的機(jī)器,與編碼本身無(wú)關(guān),比二進(jìn)制要靈活、方便;②浮點(diǎn)編碼能夠表達(dá)很大的區(qū)域,而二進(jìn)制編碼必須以犧牲精度來(lái)增加表達(dá)區(qū)域;③容易設(shè)計(jì)出封閉的、動(dòng)態(tài)的遺傳算子,容易處理非常規(guī)約束。一維編碼的方法還有很多,如交叉編碼、多參數(shù)編碼、可變長(zhǎng)編碼等等。二維染色體編碼。在很多實(shí)際問(wèn)題中,解本身就是以二維或多維的形式存在的,為了使問(wèn)題的表達(dá)更直觀,可直接采用多維染色體編碼。選擇一個(gè)群體,即選擇一個(gè)串或個(gè)體的集合bi,i=1,2,...n。這個(gè)初始的群體也就是問(wèn)題假設(shè)解的集合。一般取n=30-160。

通常以隨機(jī)方法產(chǎn)生串或個(gè)體的集合bi,i=1,2,...n。問(wèn)題的最優(yōu)解將通過(guò)這些初始假設(shè)解進(jìn)化而求出。3.2.2適應(yīng)度函數(shù)在遺傳算法的進(jìn)化過(guò)程中,對(duì)染色體的評(píng)價(jià)是由適應(yīng)度函數(shù)來(lái)完成的,函數(shù)的函數(shù)值作為選擇運(yùn)算的依據(jù)。即遺傳算法向著適應(yīng)值增加的方向進(jìn)化適應(yīng)度,所以目標(biāo)函數(shù)的尋優(yōu)方向與適應(yīng)度函數(shù)值增加的方向一致,這是適應(yīng)度函數(shù)設(shè)計(jì)的先決條件。另外,為了理論分析的方便,最好保證適應(yīng)度函數(shù)非負(fù)。有時(shí)適應(yīng)值為負(fù)的清況,要進(jìn)行適當(dāng)?shù)霓D(zhuǎn)換。將目標(biāo)函數(shù)轉(zhuǎn)換成適應(yīng)度一般要遵循下面兩個(gè)基本原則。(1)優(yōu)化過(guò)程中目標(biāo)函數(shù)的優(yōu)化方向(如尋求目標(biāo)函數(shù)的最大值或最小值)與種群進(jìn)化過(guò)程中適應(yīng)度函數(shù)值增加的方向相一致。(2)適應(yīng)度函數(shù)值大于等于零。如果目標(biāo)函數(shù)是求最小值問(wèn)題,可通過(guò)適當(dāng)轉(zhuǎn)換,如:fit(x)=c-f(x),c≥fmax3.2.3選擇選擇運(yùn)算是推動(dòng)進(jìn)化的直接動(dòng)力。如果選擇壓力過(guò)大,遺傳算法會(huì)過(guò)早收斂,使搜索落入局部極小點(diǎn);選擇壓力過(guò)小搜索過(guò)程會(huì)非常緩慢。一般來(lái)講,在進(jìn)化的初始階段,宜采用較小的選擇壓力,盡量保持種群個(gè)體的多樣性;在進(jìn)化的后期,宜采用較大的選擇壓力,以提高優(yōu)良個(gè)體的競(jìng)爭(zhēng)力,使搜索向著最優(yōu)解的方向發(fā)展。選擇可以通過(guò)以下三個(gè)方面進(jìn)行描述:(1)采樣空間。(2)采樣機(jī)理。(3)選擇概率。三者對(duì)于選擇壓力以至于遺傳算法的性能都有很大的影響。1.采樣空間采樣空間可劃分為規(guī)則的采樣空間和擴(kuò)大的采樣空間兩種。2.采樣機(jī)理采樣機(jī)理使如何從采樣空間中選擇染色體的理論,對(duì)種群個(gè)體的選擇從原理上可分為三種:(1)隨機(jī)采樣;(2)確定采樣;{3)混合采樣。隨機(jī)采樣方法首先根據(jù)各染色體個(gè)體的適應(yīng)值評(píng)價(jià)出其生存概率,再由生存概率確定每個(gè)染色體的實(shí)際繁殖數(shù)量。每個(gè)染色體的生存概率是確定性的,而染色體個(gè)體實(shí)際的繁殖數(shù)量是其生存概率隨機(jī)產(chǎn)生的,是隨機(jī)性的。整個(gè)選擇過(guò)程可由兩步完成:(1)確定種群中個(gè)體的生存概率。{2)根據(jù)個(gè)體的生存概率進(jìn)行隨機(jī)選擇。隨機(jī)采樣的基本思想是:適應(yīng)值大的個(gè)體對(duì)應(yīng)較高的生存概率,則被選擇進(jìn)入F1代的幾率相對(duì)較高。但是,并不能保證最優(yōu)的個(gè)體被選擇。確定采樣的基本思想是:保證最好的染色體被選擇進(jìn)入下一代。常用的方法有截?cái)噙x擇法、精英選擇法和期望選擇法等。混合采樣同時(shí)具備隨機(jī)采樣和確定采樣的特征。3.選擇概率種群中的染色體的選擇概率與選擇壓力直接相關(guān)。Holland的原始遺傳算法所采用的輪盤算法是一種正比選擇方法,選擇概率正比于染色體的適應(yīng)值。正比選擇的缺點(diǎn)是在進(jìn)化的早期,一些超級(jí)染色體會(huì)充斥選擇過(guò)程,容易失去種群染色體的多樣性;而進(jìn)化的后期,優(yōu)良染色體的競(jìng)爭(zhēng)能力減弱,使選擇變得像隨機(jī)搜索。標(biāo)定法和排序法就是為解決上述問(wèn)題而提出的。(1)標(biāo)定法。標(biāo)定法就是通過(guò)調(diào)整適應(yīng)度函數(shù)來(lái)控制種群中染色體的生存概率。對(duì)適應(yīng)度函數(shù)進(jìn)行調(diào)整的意義在于:①使種群中染色體的適應(yīng)值之間保持合理的差距:②限制某些超級(jí)染色體的繁殖速度,以滿足早期限制競(jìng)爭(zhēng),后期鼓勵(lì)競(jìng)爭(zhēng)的要求。常用的標(biāo)定方法有線性標(biāo)定法、α截?cái)喾?、冪律?biāo)定法和指數(shù)標(biāo)定法等等。(2)排序法。排序法以種群中染色體適應(yīng)值的大小順序來(lái)確定各個(gè)染色體的生存概率,而不是以適應(yīng)值的數(shù)值大小來(lái)確定,該方法克服了基于適應(yīng)值進(jìn)行選擇。常用的方法有;線性排序法和指數(shù)排序法。3.2.4交叉對(duì)于選中用于繁殖下一代的個(gè)體,隨機(jī)地選擇兩個(gè)個(gè)體的相同位置,按交叉概率P。在選中的位置實(shí)行交換。這個(gè)過(guò)程反映了隨機(jī)信息交換;目的在于產(chǎn)生新的基因組合,也即產(chǎn)生新的個(gè)體。交叉時(shí),可實(shí)行單點(diǎn)交叉或多點(diǎn)交叉。單點(diǎn)交叉(one-pointcrossover)又稱一點(diǎn)交叉。只有一個(gè)交叉點(diǎn)位置,任意挑選經(jīng)過(guò)選擇操作后種群的兩個(gè)個(gè)體作為交叉對(duì)象,隨機(jī)產(chǎn)生一個(gè)交叉點(diǎn)位置,兩個(gè)個(gè)體在交叉點(diǎn)位置互換部分基因碼,形成兩個(gè)子個(gè)體。例如有個(gè)體S1=100101S2=010111選擇它們的左邊3位進(jìn)行交叉操作,則有S1=010101S2=100111多點(diǎn)交叉(multi-pointcrossover)是單點(diǎn)交叉的推廣,有時(shí)也稱為廣義交叉(generalizedcrossover)。多點(diǎn)交叉是指設(shè)置多個(gè)交叉點(diǎn),交叉點(diǎn)依然是隨機(jī)選擇,兩個(gè)個(gè)體在交叉點(diǎn)位置互換部分基因碼,形成兩個(gè)子個(gè)體。一般較少采用多點(diǎn)交叉,因?yàn)樗绊戇z傳算法的在線性能和離線性能。當(dāng)交叉過(guò)多時(shí),上一代中性能優(yōu)良的結(jié)構(gòu)被破壞的可能性增大,這有些類似于隨機(jī)搜索行為。多點(diǎn)交叉不能有效地保存重要的模式。例如有個(gè)體S1=100101S2=010111選擇它們的左邊2位和右邊2位進(jìn)行交叉操作則有S1=010111S2=100101一般而言,交叉概率的取值為0.25—0.75。交叉運(yùn)算是重要的遺傳操作,種群通過(guò)交叉產(chǎn)生新的染色體,從而不斷擴(kuò)展搜索空間,最終達(dá)到全局搜索的目的。常用的交叉算子有:1、算術(shù)交叉算子。算術(shù)交叉算子對(duì)于凸搜索空間有這樣的性質(zhì):對(duì)解空間D里的任何兩個(gè)點(diǎn)x1,x:的線性組合為:ax1+(1-a)x2a∈[0,1]算術(shù)交叉的操作過(guò)程為:假定種群中的x1,x2被選為交叉運(yùn)算的雙親,則有雙親產(chǎn)生后代為:x'1=ax1+(1-a)x2x'2=ax2+(1-a)x1隨機(jī)數(shù)a屬于[0,1],從而保證了x'1,x'2,屬于D。2、啟發(fā)式交又算子。啟發(fā)式交叉是一種獨(dú)特的交叉算子,其特點(diǎn)為:以目標(biāo)函數(shù)值確定搜索方向:只產(chǎn)生一個(gè)后代;可能根本不產(chǎn)生后代。假定從種群中選擇的雙親為x1,x2,則由雙親產(chǎn)生的后代為:x3=r(x2-x1)+x23.2.5變異根據(jù)生物遺傳中基因變異的原理,以變異概率Pm對(duì)某些個(gè)體的某些位執(zhí)行變異。在變異時(shí),對(duì)執(zhí)行變異的串的對(duì)應(yīng)位求反,即把1變?yōu)?,把0變?yōu)?。變異概率Pm與生物變異極小的情況一致,所以,Pm的取值較小,一般取0.01-0.2。

例如有個(gè)體S=101011。

對(duì)其的第1,4位置的基因進(jìn)行變異,則有

S'=001111

單靠變異不能在求解中得到好處。但是,它能保證算法過(guò)程不會(huì)產(chǎn)生無(wú)法進(jìn)化的單一群體。因?yàn)樵谒械膫€(gè)體一樣時(shí),交叉是無(wú)法產(chǎn)生新的個(gè)體的,這時(shí)只能靠變異產(chǎn)生新的個(gè)體。也就是說(shuō),變異增加了全局優(yōu)化的特質(zhì)。變異操作首先是在群體中隨機(jī)選擇一個(gè)個(gè)體,對(duì)于選中的個(gè)體以一定的概率隨機(jī)改變串結(jié)構(gòu)的數(shù)據(jù)中某個(gè)串的值,即對(duì)群體中的每個(gè)個(gè)體,以某一概率(稱為變異概率,MutationRate)改變某一個(gè)或某一些基因座上的基因值為其他的等位基因。同生物界一樣,遺傳算法中變異發(fā)生的概率很低。變異為新個(gè)體的產(chǎn)生提供了機(jī)會(huì)。變異算子的作用效果在于:一方面,遺傳算法具有局部搜索的能力,使遺傳算法能夠搜索到精確解;另一方面,可以保持種群的多樣性,防止出現(xiàn)過(guò)早收斂的現(xiàn)象。常用的變異有:基本變異,均勻變異,邊界變異,非均勻變異。使用變異算子的目的只有兩個(gè):一是保持遺傳算法的多樣性,以防止出現(xiàn)早熟現(xiàn)象;二是加強(qiáng)遺傳算法的局部隨機(jī)搜索能力。當(dāng)遺傳搜索已經(jīng)接近最優(yōu)解區(qū)間,利用變異算子可以加速向最優(yōu)解收斂。3.2.6全局最優(yōu)收斂當(dāng)最優(yōu)個(gè)體的適應(yīng)度達(dá)到給定的閥值,或者最優(yōu)個(gè)體的適應(yīng)度和群體適應(yīng)度不再上升時(shí),則算法的迭代過(guò)程收斂、算法結(jié)束。否則,用經(jīng)過(guò)選擇、交叉、變異所得到的新一代群體取代上一代群體,并返回到第2步即選擇操作處繼續(xù)循環(huán)執(zhí)行。圖3.1表示了遺傳算法的執(zhí)行過(guò)程。圖3.1遺傳算法的執(zhí)行過(guò)程算法的停止條件最簡(jiǎn)單的有如下二種:(1)完成了預(yù)先給定的進(jìn)化代數(shù)則停止;(2)群體中的最優(yōu)個(gè)體在連續(xù)若干代沒(méi)有改進(jìn)或平均適應(yīng)度在連續(xù)若干代基本沒(méi)有改進(jìn)時(shí)停止。根據(jù)遺傳算法思想可以畫出簡(jiǎn)單遺傳算法框圖3.2。圖3.2簡(jiǎn)單遺傳算法框圖第四章遺傳算法在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用4.1遺傳算法與神經(jīng)網(wǎng)絡(luò)的結(jié)合遺傳算法用于ANN的一個(gè)方面是用遺傳算法學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的權(quán)重,也就是用遺傳算法來(lái)取代一些傳統(tǒng)的學(xué)習(xí)算法。評(píng)價(jià)一個(gè)學(xué)習(xí)算法的標(biāo)準(zhǔn)是:簡(jiǎn)單性、可塑性和有效性。一般的,簡(jiǎn)單的算法并不有效,可塑的算法又不簡(jiǎn)單,而有效的算法則要求算法的專一性、完美性,從而又與算法的可塑性、簡(jiǎn)單性相沖突。目前廣泛研究的前饋網(wǎng)絡(luò)中采用的是Rumelhart等人推廣的誤差反向傳播(BP)算法,BP算法具有簡(jiǎn)單和可塑的優(yōu)點(diǎn),但是BP算法是基于梯度的方法,這種方法的收斂速度慢,且常受局部極小點(diǎn)的困擾,采用GA則可擺脫這種困境。當(dāng)然,使用GA可以把神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)化和權(quán)值學(xué)習(xí)合并起來(lái)一起求解,但這對(duì)計(jì)算機(jī)的處理能力要求很高。由于BP網(wǎng)絡(luò)模型有收斂于局部最小點(diǎn)這一個(gè)不可克服的弱點(diǎn)。遺傳算法是基于生物進(jìn)化機(jī)理的數(shù)學(xué)算法系統(tǒng),許多實(shí)踐已經(jīng)證明遺傳算法是進(jìn)行全局搜索的有效工具。目前,遺傳算法與神經(jīng)網(wǎng)絡(luò)的結(jié)合方式有幾種,大致歸納如下:(1)進(jìn)化神經(jīng)網(wǎng)絡(luò)的權(quán)重;(2)進(jìn)化神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu);(3)同時(shí)進(jìn)化神經(jīng)網(wǎng)絡(luò)的權(quán)重與拓?fù)浣Y(jié)構(gòu);(4)分析神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)與訓(xùn)練結(jié)果。其中,進(jìn)行神經(jīng)網(wǎng)絡(luò)的分析是指用遺傳算法來(lái)揭示輸入樣本之間的相關(guān)性,從而確定如何對(duì)輸入分組進(jìn)行網(wǎng)絡(luò)訓(xùn)練。這類研究現(xiàn)在還無(wú)法確定其廣泛應(yīng)用的有效性。實(shí)踐證明,不管是否同時(shí)進(jìn)化網(wǎng)絡(luò)的權(quán)重與否,單就進(jìn)化網(wǎng)絡(luò)的權(quán)重與否,這是一件非常困難的事情,這種方法只解決一些簡(jiǎn)單問(wèn)題;況且,對(duì)如何選擇網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)問(wèn)題,目前無(wú)論在理論還是在方法上,都還沒(méi)找到有效的指導(dǎo)原則。所以,遺傳算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合的研究,大都結(jié)合在網(wǎng)絡(luò)權(quán)重的訓(xùn)練上。本文中也是采用遺傳算法優(yōu)化網(wǎng)絡(luò)權(quán)重的方法。遺傳算法在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用主要反映在3個(gè)方面:網(wǎng)絡(luò)的學(xué)習(xí),網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì),網(wǎng)絡(luò)的分析。1.遺傳算法在網(wǎng)絡(luò)學(xué)習(xí)中的應(yīng)用在神經(jīng)網(wǎng)絡(luò)中,遺傳算法可用于網(wǎng)絡(luò)的學(xué)習(xí)。這時(shí),它在兩個(gè)方面起作用(1)學(xué)習(xí)規(guī)則的優(yōu)化用遺傳算法對(duì)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則實(shí)現(xiàn)自動(dòng)優(yōu)化,從而提高學(xué)習(xí)速率。(2)網(wǎng)絡(luò)權(quán)系數(shù)的優(yōu)化用遺傳算法的全局優(yōu)化及隱含并行性的特點(diǎn)提高權(quán)系數(shù)優(yōu)化速度。2.遺傳算法在網(wǎng)絡(luò)設(shè)計(jì)中的應(yīng)用

用遺傳算法設(shè)計(jì)一個(gè)優(yōu)秀的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),首先是要解決網(wǎng)絡(luò)結(jié)構(gòu)的編碼問(wèn)題;然后才能以選擇、交叉、變異操作得出最優(yōu)結(jié)構(gòu)。編碼方法主要有下列3種:(1)直接編碼法這是把神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)直接用二進(jìn)制串表示,在遺傳算法中,“染色體”實(shí)質(zhì)上和神經(jīng)網(wǎng)絡(luò)是一種映射關(guān)系。通過(guò)對(duì)“染色體”的優(yōu)化就實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)的優(yōu)化。(2)參數(shù)化編碼法參數(shù)化編碼采用的編碼較為抽象,編碼包括網(wǎng)絡(luò)層數(shù)、每層神經(jīng)元數(shù)、各層互連方式等信息。一般對(duì)進(jìn)化后的優(yōu)化“染色體”進(jìn)行分析,然后產(chǎn)生網(wǎng)絡(luò)的結(jié)構(gòu)。(3)繁衍生長(zhǎng)法這種方法不是在“染色體”中直接編碼神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),而是把一些簡(jiǎn)單的生長(zhǎng)語(yǔ)法規(guī)則編碼入“染色體”中;然后,由遺傳算法對(duì)這些生長(zhǎng)語(yǔ)法規(guī)則不斷進(jìn)行改變,最后生成適合所解的問(wèn)題的神經(jīng)網(wǎng)絡(luò)。這種方法與自然界生物地生長(zhǎng)進(jìn)化相一致。3.遺傳算法在網(wǎng)絡(luò)分析中的應(yīng)用遺傳算法可用于分析神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)由于有分布存儲(chǔ)等特點(diǎn),一般難以從其拓?fù)浣Y(jié)構(gòu)直接理解其功能。遺傳算法可對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行功能分析,性質(zhì)分析,狀態(tài)分析。遺傳算法雖然可以在多種領(lǐng)域都有實(shí)際應(yīng)用,并且也展示了它潛力和寬廣前景;但是,遺傳算法還有大量的問(wèn)題需要研究,目前也還有各種不足。首先,在變量多,取值范圍大或無(wú)給定范圍時(shí),收斂速度下降;其次,可找到最優(yōu)解附近,但無(wú)法精確確定最擾解位置;最后,遺傳算法的參數(shù)選擇尚未有定量方法。對(duì)遺傳算法,還需要進(jìn)一步研究其數(shù)學(xué)基礎(chǔ)理論;還需要在理論上證明它與其它優(yōu)化技術(shù)的優(yōu)劣及原因;還需研究硬件化的遺傳算法;以及遺傳算法的通用編程和形式等。4.2遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)C語(yǔ)言實(shí)現(xiàn)4.2.1用遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)用遺傳算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)并用C語(yǔ)言編程實(shí)現(xiàn)以下函數(shù)已知訓(xùn)練樣本如下表所示,要求設(shè)計(jì)圖中所示的神經(jīng)網(wǎng)絡(luò)。輸入輸出樣本X1X2yX1X2y1.401.803.702.002.062.524.284.961.312.714.131.581.184.293.351.781.114.711.961.902.703.632.271.871.851.433.522.243.741.793.661.602.461.842.141.954.854.661.304.511.522.513.413.881.483.771.452.701.382.553.141.052.554.632.664.421.564.511.372.804.444.711.321.844.431.973.111.064.081.672.812.474.473.661.422.031.882.661.351.763.913.621.952.081.241.415.051.672.232.752.811.351.973.383.701.511.924.251.922.833.701.514.612.681.631.484.442.443.044.971.443.372.131.994.823.801.392.841.243.422.581.972.222.581.972.294.101.712.274.353.901.401.651.383.942.221.353.39遺傳算法(GA)用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練研究及其在C語(yǔ)言中的實(shí)現(xiàn)用GA算法來(lái)訓(xùn)練網(wǎng)絡(luò),要求:用C語(yǔ)言編制訓(xùn)練網(wǎng)絡(luò)的算法程序;畫出訓(xùn)練完成后的網(wǎng)絡(luò)圖,并標(biāo)出各權(quán)值;C)隨機(jī)產(chǎn)生10個(gè)檢驗(yàn)樣本來(lái)檢驗(yàn)網(wǎng)絡(luò),給出平均值、最大誤差、均方差4.2.2面向神經(jīng)網(wǎng)絡(luò)權(quán)值學(xué)習(xí)的遺傳算法通過(guò)以上各節(jié)所討論的內(nèi)容,本文選擇以下遺傳算子來(lái)訓(xùn)練網(wǎng)絡(luò)。編碼方式:神經(jīng)網(wǎng)絡(luò)的權(quán)值學(xué)習(xí)是一個(gè)復(fù)雜的連續(xù)參數(shù)優(yōu)化問(wèn)題,本文選擇二進(jìn)制進(jìn)行編碼,神經(jīng)網(wǎng)絡(luò)的各個(gè)權(quán)值按一定的順序級(jí)聯(lián)為一個(gè)長(zhǎng)串,串上的每一個(gè)位置對(duì)應(yīng)著網(wǎng)絡(luò)的一個(gè)權(quán)值。本文的每個(gè)權(quán)值的串長(zhǎng)度取值為10神經(jīng)網(wǎng)絡(luò)定義為2個(gè)輸入節(jié)點(diǎn),5個(gè)隱節(jié)點(diǎn),1個(gè)輸出節(jié)點(diǎn),2個(gè)閾值節(jié)點(diǎn),所以總共有21個(gè)權(quán)值,所以染色體串的長(zhǎng)度為10×21。2、評(píng)價(jià)函數(shù)f:將染色體上表示的各權(quán)值分配到給定的網(wǎng)絡(luò)結(jié)構(gòu)中,網(wǎng)絡(luò)以訓(xùn)練集樣本為輸入輸出,運(yùn)行后返回染色體的評(píng)價(jià)函數(shù)。3、初始化過(guò)程:初始染色體集中,網(wǎng)絡(luò)的各權(quán)值是以概率分布e-|γ|來(lái)隨機(jī)確定的,這點(diǎn)有別于BP算法。在BP算法中,初始權(quán)值一般取-1.0~1.0之間均勻分布的隨機(jī)數(shù)。遺傳算法的這種隨機(jī)分布的取法是通過(guò)以往的大量實(shí)驗(yàn)得出的,可以發(fā)現(xiàn),當(dāng)網(wǎng)絡(luò)收斂后,權(quán)值的絕對(duì)值一般都較小,但也有一些權(quán)值是較大的。采用以上初始化方法的原因是使遺傳算法能夠搜索所有可行解的范圍。4、遺傳算子:對(duì)于不同的應(yīng)用問(wèn)題,遺傳算子的形式多種多樣,這里采用了權(quán)值交叉和權(quán)值變異算子.權(quán)值交叉算子:對(duì)于子代染色體中的每個(gè)權(quán)值輸入位置,交叉算子從兩個(gè)親代染色體中隨機(jī)選取若干個(gè)交叉位置,并將這一代染色體在交叉位置進(jìn)行交叉運(yùn)算,這樣子代染色體便含有兩個(gè)親代的遺傳基因。權(quán)值變異算子:對(duì)于子代染色體中的每個(gè)權(quán)值輸入位置,變異算子以概率Pm在初始概率分布中隨機(jī)選擇一個(gè)值,然后與該輸入位置上的權(quán)值相加。5、選擇方式:這里不采用比例選擇方式,而使用親代度量S決定群體中每個(gè)個(gè)體被選中的概率[14],群體中的個(gè)體以下式所示的概率成為親代染色體。4.2.3參照以上的選擇算子,對(duì)于網(wǎng)絡(luò)訓(xùn)練的編程如下:#include"stdio.h"#include"stdlib.h"#include"time.h"#include"math.h"#include"process.h"#include"conio.h"/**********常量的定義************/#definepopsize40/*最大群體個(gè)數(shù)*/#definecmax1/*一個(gè)較大的數(shù)(用于適應(yīng)度的確定)*//**********神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的定義************/#defineSIZE50/*訓(xùn)練樣本數(shù)*/#defineIN2/*輸入層節(jié)點(diǎn)數(shù)*/#defineHN5/*隱層節(jié)點(diǎn)數(shù)*/#defineOUT1/*輸出層節(jié)點(diǎn)數(shù)*/#defineJD(IN+1)*HN+(HN+1)*OUT#defineW10/*用于檢驗(yàn)的樣本數(shù)*/doublew_h_i[HN][IN+1];/*輸入層到隱層權(quán)值*/doublew_o_h[HN+1][OUT];/*隱層到輸出層權(quán)值*/doubleo_o[SIZE][OUT];/*樣本網(wǎng)絡(luò)輸出值*//**********用戶數(shù)據(jù)定義************/#definelength10/*編碼長(zhǎng)度*/#definechromlength10*21/*染色體長(zhǎng)度*/longDecodeNum[JD];doublepc=0.65;/*交叉概率(0.4-0.99)*/doublepm=0.008; /*變異概率(0.0001-0.1)*/doubleB=2.5;intpop=40;/*群體大?。?0-100)*/intmaxgeneration=1000;/*最大遺傳代數(shù)(100-500)*//**********全局變量定義************/intgeneration;/*當(dāng)前遺傳代數(shù)*/intbest_index;/*當(dāng)代最佳染色體序號(hào)*/intworst_index;/*當(dāng)代最差染色體序號(hào)*/structindividual/*個(gè)體結(jié)構(gòu)定義*/{charchrom[chromlength+1];/*個(gè)體染色體編碼*/doublevalue;/*個(gè)體目標(biāo)值*/doublefitness;/*個(gè)體適應(yīng)度*/};structindividualbestindividual;/*當(dāng)代最佳個(gè)體*/structindividualworstindividual;/*當(dāng)代最差個(gè)體*/structindividualcurrentbest;/*目前最佳個(gè)體*/structindividualpopulation[popsize];/*群體數(shù)組*//**********訓(xùn)練樣本結(jié)構(gòu)及處理系數(shù)************/doubleXS=10.0;/*樣本處理系數(shù)*/structsamples{floatin_sign[IN];/*樣本輸入數(shù)組*/floattch_sign;/*樣本輸出值*/}samp[SIZE]={{1.40,1.80,3.70},{4.28,4.96,1.31},{1.18,4.29,3.35},{1.96,1.90,2.70},{1.38,2.55,3.14},{2.46,2.12,2.22},{2.66,4.42,1.56},{4.44,4.71,1.32},{3.11,1.06,4.08},{4.47,3.66,1.42},{1.35,1.76,3.91},{1.24,1.41,5.05},{1.85,1.43,3.52},{3.77,1.45,2.70},{4.84,4.32,1.33},{1.05,2.55,4.63},{4.51,1.37,2.80},{1.84,4.43,1.97},{1.67,2.81,2.47},{2.03,1.88,2.66},{3.62,1.95,2.08},{3.38,3.70,1.51},{2.83,3.70,1.51},{1.48,4.44,2.44},{3.37,2.13,1.99},{2.84,1.24,3.42},{1.19,1.53,4.99},{4.10,1.71,2.27},{1.65,1.38,3.94},{2.00,2.06,2.52},{2.71,4.13,1.58},{1.78,1.11,4.71},{3.63,2.27,1.87},{2.24,3.74,1.79},{1.81,3.18,2.20},{4.85,4.66,1.30},{3.41,3.88,1.48},{3.66,1.60,2.46},{3.64,2.14,1.95},{4.51,1.52,2.51},{2.81,1.35,1.97},{1.92,4.25,1.92},{4.61,2.68,1.63},{3.04,4.97,1.44},{4.82,3.80,1.39},{2.58,1.97,2.29},{4.14,4.76,1.33},{4.35,3.90,1.40},{2.22,1.35,3.39},{1.67,2.23,2.75}};/**********全局函數(shù)定義************/voidinitialpopulation(void);/*群體初始化*/voidnextpopulation(void);/*產(chǎn)生下代群體*/voidevaluatepopulation(void);/*群體評(píng)估*/longdecodechromosome(char*,int,int);/*解碼*/voidobjectvalue(void);/*目標(biāo)值計(jì)算*/voidfitnessvalue(void);/*適應(yīng)度計(jì)算*/voidfindbestandworstindividual(void);/*尋找最佳和最差個(gè)體*/voidperformevolution(void);/*利用"最優(yōu)保存策略"(ElitistModel)優(yōu)化進(jìn)化*/voidselectionoperator(void);/*選擇算子*/voidcrossoveroperator(void);/*交叉算子*/voidmutationoperator(void);/*變異算子*/voidoutputtextreport(void);/*當(dāng)代進(jìn)化情況報(bào)告*/voidSampleChang(void);/*樣本轉(zhuǎn)化*/voidGetW(void);/*權(quán)值的獲得*/voidNetOut(void);/*樣本網(wǎng)絡(luò)輸出*/voidcheck(void);/*結(jié)果檢驗(yàn)*/doublesigmoid(double);/*Sigmoid函數(shù)定義*//**********主函數(shù)************/main(){doublesum;inti;SampleChang();do{sum=0.0;generation=0;initialpopulation();evaluatepopulation();for(i=0;i<pop;i++)sum+=population[i].fitness;}while(sum==0.0);while(generation<maxgeneration){generation++;if(currentbest.fitness==0.98)B=3;nextpopulation();evaluatepopulation();if(currentbest.fitness>=0.92)break;performevolution();outputtextreport();}getch();check();getch();}/**********樣本處理函數(shù)************/voidSampleChang(void){inti;for(i=0;i<SIZE;i++){samp[i].tch_sign/=XS;}}/**********權(quán)值的獲得************/voidGetW(void){inti,j;ints=0;for(j=0;j<HN;j++){ for(i=0;i<=IN;i++) { w_h_i[j][i]=1.0*DecodeNum[s]/1023.0-0.5; s++; }for(i=0;i<OUT;i++) { w_o_h[j][i]=1.0*DecodeNum[s]/1023.0-0.5; s++;}}for(i=0;i<OUT;i++){ w_o_h[HN][i]=1.0*DecodeNum[s]/1023.0-0.5; s++;}}/**********網(wǎng)絡(luò)輸出計(jì)算************/voidNetOut(void){inti,j,l;doublenet;doubleo_h[SIZE][HN];for(i=0;i<SIZE;i++){for(j=0;j<HN;j++){net=0.0;for(l=0;l<IN;l++)net=net+samp[i].in_sign[l]*w_h_i[j][l];net=net+w_h_i[j][IN];o_h[i][j]=sigmoid(net);}for(j=0;j<OUT;j++){net=0.0;for(l=0;l<HN;l++)net=net+o_h[i][l]*w_o_h[l][j];net=net+w_o_h[HN][j];o_o[i][j]=sigmoid(net);}}}/**********變形的Sigmoid函數(shù)************/doublesigmoid(doublez){doublezout;zout=(exp(z)-exp(-z))/(exp(z)+exp(-z));/*zout=1.0/(1+exp(-z));*/return(zout);}/**********群體初始化函數(shù)************/voidinitialpopulation(void){inti,j;randomize();for(i=0;i<pop;i++){for(j=0;j<chromlength;j++)population[i].chrom[j]=(random(10)<5)?'0':'1';population[i].chrom[chromlength]='\0';}}/**********產(chǎn)生下一代群體************/voidnextpopulation(void){selectionoperator();crossoveroperator();mutationoperator();}/**********群體的評(píng)價(jià)************/voidevaluatepopulation(void){objectvalue();fitnessvalue();findbestandworstindividual();}/**********編碼解碼************/longdecodechromosome(char*string,intpoint,intleng){longdecimal=0L;char*pointer;inti;for(i=0,pointer=string+point;i<leng;i++,pointer++){decimal+=(*pointer-'0')<<(leng-1-i);}return(decimal);}/**********目標(biāo)值計(jì)算************/voidobjectvalue(void){inti,h,j,s;doubleo=0.0;doubleout[SIZE];for(i=0;i<SIZE;i++)for(j=0;j<OUT;j++) o_o[i][j]=0;for(h=0;h<pop;h++){for(s=0;s<JD;s++) DecodeNum[s]=decodechromosome(population[h].chrom,length*s,length);GetW();NetOut();for(i=0;i<SIZE;i++){ for(j=0;j<OUT;j++) {out[i]=o_o[i][j]-samp[i].tch_sign;} /*o=o+out[i]*out[i]/2.0;*/ o+=fabs(out[i]);}population[h].value=o/SIZE;}}/**********適應(yīng)度計(jì)算************/voidfitnessvalue(void){inti;doubletemp;for(i=0;i<pop;i++){if(population[i].value<cmax)temp=cmax-population[i].value;elsetemp=0.0;population[i].fitness=pow(temp,B);/*population[i].fitness=1-population[i].value

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論