基本遺傳算法,又稱為Sga算法,其中包括了詳盡的注釋,執(zhí)行效果還不錯!
標簽: 算法
上傳時間: 2015-09-28
上傳用戶:baiom
GA(Simple Genetic Algorithm)是一種強大的智能多變量優(yōu)化算法,它模仿種群繁殖規(guī)律來進行優(yōu)化。 本Sga可以優(yōu)化變量,求最小值,最大值(當把函數(shù)倒數(shù)也就求最小值啦) 并且支持浮點編碼,grey編碼,二進制編碼;輪賭法選擇,錦標賽選擇;單點交叉,均布交叉,浮點交叉;單點變異,浮點變異;
標簽: Algorithm Genetic Simple 多變量
上傳時間: 2013-12-18
上傳用戶:英雄
王小平《遺傳算法——理論、應用與軟件實現(xiàn)》隨書光盤,內(nèi)容有: \GA 本書中所附源程序C或C++代碼文件及其可執(zhí)行文件 Scs.cpp 基本分類算法源程序,輸入數(shù)據(jù)文件cfile.txt,efile.txt,gfile.txt,pfile.txt,rfile.txt,tfile.txt Sga.c 基本遺傳算法源程序, 輸入數(shù)據(jù)文件input,輸出文件output A_life.c 基于遺傳算法的人工生命模擬源程序, 輸入數(shù)據(jù)文件world GA_nn.c 基于遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)源程序,輸入數(shù)據(jù)文件sample Patmat.c 基于遺傳算法提取基元圖形源程序 \Sources 遺傳算法相關(guān)自由軟件及代碼。
標簽: 算法 光盤 軟件實現(xiàn)
上傳時間: 2016-10-04
上傳用戶:skhlm
基本遺傳算法的matlab源程序,bstr2rval.m為基本編碼轉(zhuǎn)為實際值子函數(shù),createPop.m創(chuàng)建初始種群子函數(shù),crossOper.m基因交叉子函數(shù),indiEval.m個體實際值子函數(shù),mutateOper.m基因變異子函數(shù),selectOper.m選擇算子子函數(shù),Sga.m基本遺傳算法子函數(shù)
上傳時間: 2014-01-01
上傳用戶:er1219
很經(jīng)典的一個算法。大家做工程和通信用的著。遺傳算法(Genetic Algorithm)是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優(yōu)解的方法,它是有美國Michigan大學J.Holland教授于1975年首先提出來的,并出版了頗有影響的專著《Adaptation in Natural and Artificial Systems》,GA這個名稱才逐漸為人所知,J.Holland教授所提出的GA通常為簡單遺傳算法(Sga)。
上傳時間: 2017-02-09
上傳用戶:wkchong
關(guān)于Oracle的性能調(diào)整,一般包括兩個方面,一是指Oracle數(shù)據(jù)庫本身的調(diào)整,比如Sga、PGA的優(yōu)化設(shè)置,二是連接Oracle的應用程序以及SQL語句的優(yōu)化。做好這兩個方面的優(yōu)化,就可以使一套完整的Oracle應用系統(tǒng)處于良好的運行狀態(tài)。 本 文主要是把一些Oracle Tuning的文章作了一個簡單的總結(jié),力求以實際可操作為目的,配合講解部分理論知識,使大部分具有一般Oracle知識的使用者能夠?qū)racle Tuning有所了解,并且能夠根據(jù)實際情況對某些參數(shù)進行調(diào)整。關(guān)于更加詳細的知識,請參見本文結(jié)束部分所提及的推薦書籍,同時由于該話題內(nèi)容太多且復 雜,本文必定有失之偏頗甚至錯誤的地方,請不吝賜教,并共同進步。
上傳時間: 2017-02-25
上傳用戶:zhanditian
由我收集或?qū)懗龅腉A源碼,包括GA、Sga、AGA、TSPGA、GAPID、NSga、NSga2等。
標簽: 源碼
上傳時間: 2014-01-14
上傳用戶:evil
一個用于學習GA的簡單程序,自己編寫的Sga,不是使用的工具箱函數(shù)
標簽: 程序
上傳時間: 2014-10-28
上傳用戶:frank1234
Oracle數(shù)據(jù)庫性能調(diào)優(yōu),包括了對SHARED POOL、Sga的調(diào)優(yōu),也包括了SQL語句調(diào)優(yōu),是一本好書。
標簽: Oracle 數(shù)據(jù)庫 性能
上傳時間: 2017-08-03
上傳用戶:ve3344
遺傳算法為群體優(yōu)化算法,也就是從多個初始解開始進行優(yōu)化,每個解稱為一個染色體,各染色體之間通過競爭、合作、單獨變異,不斷進化。 優(yōu)化時先要將實際問題轉(zhuǎn)換到遺傳空間,就是把實際問題的解用染色體表示,稱為編碼,反過程為解碼,因為優(yōu)化后要進行評價,所以要返回問題空間,故要進行解碼。Sga采用二進制編碼,染色體就是二進制位串,每一位可稱為一個基因;解碼時應注意將染色體解碼到問題可行域內(nèi)。 遺傳算法模擬“適者生存,優(yōu)勝劣汰”的進化機制,染色體適應生存環(huán)境的能力用適應度函數(shù)衡量。對于優(yōu)化問題,適應度函數(shù)由目標函數(shù)變換而來。一般遺傳算法求解最大值問題,如果是最小值問題,則通過取倒數(shù)或者加負號處理。Sga要求適應度函數(shù)>0,對于<0的問題,要通過加一個足夠大的正數(shù)來解決。這樣,適應度函數(shù)值大的染色體生存能力強。 遺傳算法有三個進化算子:選擇(復制)、交叉和變異。 Sga中,選擇采用輪盤賭方法,也就是將染色體分布在一個圓盤上,每個染色體占據(jù)一定的扇形區(qū)域,扇形區(qū)域的面積大小和染色體的適應度大小成正比。如果輪盤中心裝一個可以轉(zhuǎn)動的指針的話,旋轉(zhuǎn)指針,指針停下來時會指向某一個區(qū)域,則該區(qū)域?qū)娜旧w被選中。顯然適應度高的染色體由于所占的扇形區(qū)域大,因此被選中的幾率高,可能被選中多次,而適應度低的可能一次也選不中,從而被淘汰。算法實現(xiàn)時采用隨機數(shù)方法,先將每個染色體的適應度除以所有染色體適應度的和,再累加,使他們根據(jù)適應度的大小分布于0-1之間,適應度大的占的區(qū)域大,然后隨機生成一個0-1之間的隨機數(shù),隨機數(shù)落到哪個區(qū)域,對應的染色體就被選中。重復操作,選出群體規(guī)模規(guī)定數(shù)目的染色體。這個操作就是“優(yōu)勝劣汰,適者生存”,但沒有產(chǎn)生新個體。 交叉模擬有性繁殖,由兩個染色體共同作用產(chǎn)生后代,Sga采用單點交叉。由于Sga為二進制編碼,所以染色體為二進制位串,隨機生成一個小于位串長度的隨機整數(shù),交換兩個染色體該點后的那部分位串。參與交叉的染色體是輪盤賭選出來的個體,并且還要根據(jù)選擇概率來確定是否進行交叉(生成0-1之間隨機數(shù),看隨機數(shù)是否小于規(guī)定的交叉概率),否則直接進入變異操作。這個操作是產(chǎn)生新個體的主要方法,不過基因都來自父輩個體。 變異采用位點變異,對于二進制位串,0變?yōu)?,1變?yōu)?就是變異。采用概率確定變異位,對每一位生成一個0-1之間的隨機數(shù),看是否小于規(guī)定的變異概率,小于的變異,否則保持原狀。這個操作能夠使個體不同于父輩而具有自己獨立的特征基因,主要用于跳出局部極值。 遺傳算法認為生物由低級到高級進化,后代比前一代強,但實際操作中可能有退化現(xiàn)象,所以采用最佳個體保留法,也就是曾經(jīng)出現(xiàn)的最好個體,一定要保證生存下來,使后代至少不差于前一代。大致有兩種類型,一種是把出現(xiàn)的最優(yōu)個體單獨保存,最后輸出,不影響原來的進化過程;一種是將最優(yōu)個體保存入子群,也進行選擇、交叉、變異,這樣能充分利用模式,但也可能導致過早收斂。 由于是基本遺傳算法,所以優(yōu)化能力一般,解決簡單問題尚可,高維、復雜問題就需要進行改進了。 下面為代碼。函數(shù)最大值為3905.9262,此時兩個參數(shù)均為-2.0480,有時會出現(xiàn)局部極值,此時一個參數(shù)為-2.0480,一個為2.0480。算法中變異概率pm=0.05,交叉概率pc=0.8。如果不采用最優(yōu)模式保留,結(jié)果會更豐富些,也就是算法最后不一定收斂于極值點,當然局部收斂現(xiàn)象也會有所減少,但最終尋得的解不一定是本次執(zhí)行中曾找到過的最好解。
標簽: 遺傳算法
上傳時間: 2015-06-04
上傳用戶:芃溱溱123
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1