matlab遺傳算法程序,包括編碼,選擇,交叉,變異等步驟。
上傳時(shí)間: 2017-09-20
上傳用戶:wuyuying
這是一個(gè)應(yīng)用遺傳算法解決的函數(shù)優(yōu)化問題,通過一系列的交叉變異得到最優(yōu)的函數(shù)解。
標(biāo)簽: 算法 函數(shù)優(yōu)化
上傳時(shí)間: 2017-09-27
上傳用戶:1159797854
關(guān)于TSP 的完整MATLAB程序,選擇、交叉、變異等已寫好 需要的可以下載下來看一下
標(biāo)簽: TSP
上傳時(shí)間: 2015-03-11
上傳用戶:13236575766
簡(jiǎn)單函數(shù)的遺傳算法matlab實(shí)現(xiàn),交叉率,變異率,編碼解碼,最適應(yīng)函數(shù)等
標(biāo)簽: 函數(shù)優(yōu)化
上傳時(shí)間: 2015-05-11
上傳用戶:這可能最困難
遺傳算法為群體優(yōu)化算法,也就是從多個(gè)初始解開始進(jìn)行優(yōu)化,每個(gè)解稱為一個(gè)染色體,各染色體之間通過競(jìng)爭(zhēng)、合作、單獨(dú)變異,不斷進(jìn)化。 優(yōu)化時(shí)先要將實(shí)際問題轉(zhuǎn)換到遺傳空間,就是把實(shí)際問題的解用染色體表示,稱為編碼,反過程為解碼,因?yàn)閮?yōu)化后要進(jìn)行評(píng)價(jià),所以要返回問題空間,故要進(jìn)行解碼。SGA采用二進(jìn)制編碼,染色體就是二進(jìn)制位串,每一位可稱為一個(gè)基因;解碼時(shí)應(yīng)注意將染色體解碼到問題可行域內(nèi)。 遺傳算法模擬“適者生存,優(yōu)勝劣汰”的進(jìn)化機(jī)制,染色體適應(yīng)生存環(huán)境的能力用適應(yīng)度函數(shù)衡量。對(duì)于優(yōu)化問題,適應(yīng)度函數(shù)由目標(biāo)函數(shù)變換而來。一般遺傳算法求解最大值問題,如果是最小值問題,則通過取倒數(shù)或者加負(fù)號(hào)處理。SGA要求適應(yīng)度函數(shù)>0,對(duì)于<0的問題,要通過加一個(gè)足夠大的正數(shù)來解決。這樣,適應(yīng)度函數(shù)值大的染色體生存能力強(qiáng)。 遺傳算法有三個(gè)進(jìn)化算子:選擇(復(fù)制)、交叉和變異。 SGA中,選擇采用輪盤賭方法,也就是將染色體分布在一個(gè)圓盤上,每個(gè)染色體占據(jù)一定的扇形區(qū)域,扇形區(qū)域的面積大小和染色體的適應(yīng)度大小成正比。如果輪盤中心裝一個(gè)可以轉(zhuǎn)動(dòng)的指針的話,旋轉(zhuǎn)指針,指針停下來時(shí)會(huì)指向某一個(gè)區(qū)域,則該區(qū)域?qū)?yīng)的染色體被選中。顯然適應(yīng)度高的染色體由于所占的扇形區(qū)域大,因此被選中的幾率高,可能被選中多次,而適應(yīng)度低的可能一次也選不中,從而被淘汰。算法實(shí)現(xiàn)時(shí)采用隨機(jī)數(shù)方法,先將每個(gè)染色體的適應(yīng)度除以所有染色體適應(yīng)度的和,再累加,使他們根據(jù)適應(yīng)度的大小分布于0-1之間,適應(yīng)度大的占的區(qū)域大,然后隨機(jī)生成一個(gè)0-1之間的隨機(jī)數(shù),隨機(jī)數(shù)落到哪個(gè)區(qū)域,對(duì)應(yīng)的染色體就被選中。重復(fù)操作,選出群體規(guī)模規(guī)定數(shù)目的染色體。這個(gè)操作就是“優(yōu)勝劣汰,適者生存”,但沒有產(chǎn)生新個(gè)體。 交叉模擬有性繁殖,由兩個(gè)染色體共同作用產(chǎn)生后代,SGA采用單點(diǎn)交叉。由于SGA為二進(jìn)制編碼,所以染色體為二進(jìn)制位串,隨機(jī)生成一個(gè)小于位串長(zhǎng)度的隨機(jī)整數(shù),交換兩個(gè)染色體該點(diǎn)后的那部分位串。參與交叉的染色體是輪盤賭選出來的個(gè)體,并且還要根據(jù)選擇概率來確定是否進(jìn)行交叉(生成0-1之間隨機(jī)數(shù),看隨機(jī)數(shù)是否小于規(guī)定的交叉概率),否則直接進(jìn)入變異操作。這個(gè)操作是產(chǎn)生新個(gè)體的主要方法,不過基因都來自父輩個(gè)體。 變異采用位點(diǎn)變異,對(duì)于二進(jìn)制位串,0變?yōu)?,1變?yōu)?就是變異。采用概率確定變異位,對(duì)每一位生成一個(gè)0-1之間的隨機(jī)數(shù),看是否小于規(guī)定的變異概率,小于的變異,否則保持原狀。這個(gè)操作能夠使個(gè)體不同于父輩而具有自己獨(dú)立的特征基因,主要用于跳出局部極值。 遺傳算法認(rèn)為生物由低級(jí)到高級(jí)進(jìn)化,后代比前一代強(qiáng),但實(shí)際操作中可能有退化現(xiàn)象,所以采用最佳個(gè)體保留法,也就是曾經(jīng)出現(xiàn)的最好個(gè)體,一定要保證生存下來,使后代至少不差于前一代。大致有兩種類型,一種是把出現(xiàn)的最優(yōu)個(gè)體單獨(dú)保存,最后輸出,不影響原來的進(jìn)化過程;一種是將最優(yōu)個(gè)體保存入子群,也進(jìn)行選擇、交叉、變異,這樣能充分利用模式,但也可能導(dǎo)致過早收斂。 由于是基本遺傳算法,所以優(yōu)化能力一般,解決簡(jiǎn)單問題尚可,高維、復(fù)雜問題就需要進(jìn)行改進(jìn)了。 下面為代碼。函數(shù)最大值為3905.9262,此時(shí)兩個(gè)參數(shù)均為-2.0480,有時(shí)會(huì)出現(xiàn)局部極值,此時(shí)一個(gè)參數(shù)為-2.0480,一個(gè)為2.0480。算法中變異概率pm=0.05,交叉概率pc=0.8。如果不采用最優(yōu)模式保留,結(jié)果會(huì)更豐富些,也就是算法最后不一定收斂于極值點(diǎn),當(dāng)然局部收斂現(xiàn)象也會(huì)有所減少,但最終尋得的解不一定是本次執(zhí)行中曾找到過的最好解。
標(biāo)簽: 遺傳算法
上傳時(shí)間: 2015-06-04
上傳用戶:芃溱溱123
、MBGAS-3000采用傅里葉紅外光譜分析技術(shù) ,有效避免煙氣中水和各種氣體之間的交叉干擾,由于傅里葉紅外的分辨率遠(yuǎn)遠(yuǎn)高于高溫紅外,能很好的克服氣體之間的交叉干擾,分析更準(zhǔn)確。
標(biāo)簽: FTIR
上傳時(shí)間: 2016-03-01
上傳用戶:NinNin
兩種改進(jìn)的遺傳算法(自適應(yīng)交叉概率的遺傳算法,加入領(lǐng)域競(jìng)爭(zhēng)策略的遺傳算法)相比較的matlab程序,基于UCI的兩個(gè)數(shù)據(jù)集,可直接運(yùn)行程序觀察效果
標(biāo)簽: 遺傳算法 路徑
上傳時(shí)間: 2016-03-03
上傳用戶:HUSHAOYONG
放墨香商業(yè)版本, 巨陵-蠻牛掉元寶,願(yuàn)意打的就是高手 開放包袱商人會(huì)帶備稀而物品給各位大俠購(gòu)買 本服轉(zhuǎn)身請(qǐng)登入官網(wǎng)轉(zhuǎn)身 本服遊戲幣個(gè)人上限是40億 如果帶多了 轉(zhuǎn)圖重登都會(huì)變回40億 全球最強(qiáng)防外掛系統(tǒng),打造2016年最公平的墨湘 本服承諾,絕無任何嚴(yán)重bug,保證遊戲穩(wěn)定運(yùn)行 本服禁止空白名,定期自動(dòng)清理帶空名的玩家
標(biāo)簽: 墨香
上傳時(shí)間: 2016-04-11
上傳用戶:西子灣灣
遺傳算法,模擬達(dá)爾文進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型,一種選擇不斷選擇優(yōu)良個(gè)體的算法。談到遺傳,想想自然界動(dòng)物遺傳是怎么來的,自然主要過程包括染色體的選擇,交叉,變異(不明白這個(gè)的可以去看看生物學(xué)),這些操作后,保證了以后的個(gè)體基本上是最優(yōu)的,那么以后再繼續(xù)這樣下去就可以一直最優(yōu)了。
上傳時(shí)間: 2017-06-12
上傳用戶:tian610115
為了增加公司收入,F(xiàn) 公司新開設(shè)了物流業(yè)務(wù)。由于 F 公司在業(yè)界的良好口碑,物流業(yè)務(wù)一開通即受到了消費(fèi)者的歡迎,物流業(yè)務(wù)馬上遍及了城市的每條街道。然而,F(xiàn) 公司現(xiàn)在只安排了小明一個(gè)人負(fù)責(zé)所有街道的服務(wù)。 任務(wù)雖然繁重,但是小明有足夠的信心,他拿到了城市的地圖,準(zhǔn)備研究最好的方案。城市中有 n 個(gè)交叉路口,m 條街道連接在這些交叉路口之間,每條街道的首尾都正好連接著一個(gè)交叉路口。除開街道的首尾端點(diǎn),街道不會(huì)在其他位置與其他街道相交。每個(gè)交叉路口都至少連接著一條街道,有的交叉路口可能只連接著一條或兩條街道。 小明希望設(shè)計(jì)一個(gè)方案,從編號(hào)為1的交叉路口出發(fā),每次必須沿街道去往街道另一端的路口,再?gòu)? 新的路口出發(fā)去往下一個(gè)路口,直到所有的街道都經(jīng)過了正好一次。 輸入數(shù)據(jù)格式: 輸入的第一行包含兩個(gè)整數(shù)n, m(1≤n≤10, n-1≤m≤20),表示交叉路口的數(shù)量和街道的數(shù)量,交叉 路口從1到n標(biāo)號(hào)。 接下來m行,每行兩個(gè)整數(shù)a, b,表示和標(biāo)號(hào)為a的交叉路口和標(biāo)號(hào)為b的交叉路口之間有一條街道, 街道是雙向的,小明可以從任意一端走向另一端。兩個(gè)路口之間最多有一條街道。 輸出輸出格式: 如果小明可以經(jīng)過每條街道正好一次,則輸出一行包含m+1個(gè)整數(shù)p1, p2, p3, ..., pm+1,表示小明經(jīng)過的路口的順序,相鄰兩個(gè)整數(shù)之間用一個(gè)空格分隔。如果有多種方案滿足條件,則輸出字典序最小的一種方案,即首先保證p1最小,p1最小的前提下再保證p2最小,依此類推。 如果不存在方案使得小明經(jīng)過每條街道正好一次,則輸出一個(gè)整數(shù)-1。
標(biāo)簽: 代碼
上傳時(shí)間: 2019-07-04
上傳用戶:Rain
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1