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