導航:首頁 > 源碼編譯 > 遺傳演算法代溝

遺傳演算法代溝

發布時間:2022-11-28 14:30:45

⑴ 遺傳演算法為什麼要使用重插入reins

一般在進行選擇操作時,會通過GGAP代溝來減少子種群數量。比如初始種群是100個染色體,代溝GGAP=0.9,那麼在選擇操作中會選擇90個染色體,最後再通過重插入Reins把那10個補上。

⑵ matlab 遺傳演算法報錯 求解決

沒有定義這個變數target

⑶ 遺傳演算法中的交叉概率,變異概率和代溝是什麼

1、交叉概率用於判斷兩兩個體是否需要交叉;變異概率用於判斷任一個體是否需要變異。
2、在一次進化迭代中,交叉通常是採用兩兩互相不重復交叉的方式,即個體1和個體2,個體3和個體4...個體n-1和個體n,或者個體1和個體n/2,個體2和個體n/2+1...個體n/2-1和個體n。以第一種方式為例,對於個體1和個體2,產生一個[0,1]之間的隨機數,如果該隨機數小於交叉概率,則個體1和個體2進行交叉操作,否則繼續產生隨機數判斷之後的兩個個體。
當然也可以採用隨機交叉的方式,這時的交叉次數不能確定。
3、兩兩個體之間的交叉操作有不同的交叉方式,即:如果採用十進制編碼,會有不同的交叉公式;如果採用二進制編碼,有單點交叉和多點交叉。

⑷ 遺傳演算法代溝與精度問題

我也不懂哎,不好意思哈

⑸ 遺傳演算法中為什麼GGAP=0.9而不是1呢不是默認GGAP=1嗎還有子種群subpop什麼意思,是並行演算法

GGAP代表了代溝,一般情況下我們會取0.6到0.9之間,
說明我們在選擇父代的時候有所取捨。
而且得到的子種群數量肯定減小了,因此,為了維系種群的整體規模,必須重插入部分個體進入子種群,使得父代與子代在數量上保持一致。
重插入的方法有很多,一般選擇輪盤賭法。
遺傳演算法是典型的並行演算法之一,在種群初始化,選擇,交叉,變異等操作中都可以設置為並行運算,大大降低運行速度。

⑹ 請問遺傳演算法中代溝是什麼啊

就是上一代(假設總數為100)通過輪盤法篩選後要舍棄部分適應度低的基因(假設為20),則下一代就剩下80個基因.代購就是80/100=0.8,以此類推.

⑺ 遺傳演算法里的「代溝」(gap)是什麼意思

代溝是用於控制每代中種群被替換的比例,即每代有N*(1-G)個父代個體被選中進入下一代種群。G=50%意味著一半的種群將被置換。

⑻ 求教matlab遺傳演算法問題

clc
clear all
close all
%% 畫出函數圖
figure(1);
lbx=0;ubx=8; %函數自變數x范圍【0,8】
lby=0;uby=8; %函數自變數y范圍【0,8】
ezmesh('sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y)',[lbx,ubx,lby,uby],50); %畫出函數曲線
hold on;
%% 定義遺傳演算法參數
NIND=40; %個體數目
MAXGEN=50; %最大遺傳代數
PRECI=20; %變數的二進制位數
GGAP=0.95; %代溝
px=0.7; %交叉概率
pm=0.01; %變異概率
trace=zeros(3,MAXGEN); %尋優結果的初始值
FieldD=[PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; %區域描述器
Chrom=crtbp(NIND,PRECI*2); %初始種群
%% 優化
gen=0; %代計數器
XY=bs2rv(Chrom,FieldD); %計算初始種群的十進制轉換
X=XY(:,1);Y=XY(:,2);
ObjV=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y); %計算目標函數值
while gen<MAXGEN
FitnV=ranking(-ObjV); %分配適應度值
SelCh=select('sus',Chrom,FitnV,GGAP); %選擇
SelCh=recombin('xovsp',SelCh,px); %重組
SelCh=mut(SelCh,pm); %變異
XY=bs2rv(SelCh,FieldD); %子代個體的十進制轉換
X=XY(:,1);Y=XY(:,2);
ObjVSel=sin(pi*x)/(pi*x)*sin(pi*y)/(pi*y); %計運算元代的目標函數值
[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新種群
XY=bs2rv(Chrom,FieldD);
gen=gen+1; %代計數器增加
%獲取每代的最優解及其序號,Y為最優解,I為個體的序號
[Y,I]=max(ObjV);
trace(1:2,gen)=XY(I,:); %記下每代的最優值
trace(3,gen)=Y; %記下每代的最優值
end
plot3(trace(1,:),trace(2,:),trace(3,:),'bo'); %畫出每代的最優點
grid on;
plot3(XY(:,1),XY(:,2),ObjV,'bo'); %畫出最後一代的種群
hold off
%% 畫進化圖
figure(2);
plot(1:MAXGEN,trace(3,:));
grid on
xlabel('遺傳代數')
ylabel('解的變化')
title('進化過程')
bestZ=trace(3,end);
bestX=trace(1,end);
bestY=trace(2,end);
fprintf(['最優解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\nZ=',num2str(bestZ),'\n'])

⑼ 遺傳演算法研究進展

遺傳演算法[56,53]研究的興起是在20世紀80年代末和90年代初期,但它的歷史起源可追溯到20世紀60年代初期。早期的研究大多以對自然遺傳系統的計算機模擬為主。早期遺傳演算法的研究特點是側重於對一些復雜的操作的研究。雖然其中像自動博弈、生物系統模擬、模式識別和函數優化等給人以深刻的印象,但總的來說這是一個無明確目標的發展時期,缺乏帶有指導性的理論和計算工具的開拓。這種現象直到20世紀70年代中期由於Holland和De Jong的創造性研究成果的發表才得到改觀。當然,早期的研究成果對於遺傳演算法的發展仍然有一定的影響,尤其是其中一些有代表性的技術和方法已為當前的遺傳演算法所吸收和發展。

在遺傳演算法作為搜索方法用於人工智慧系統中之前,已有不少生物學家用計算機來模擬自然遺傳系統。尤其是Fraser的模擬研究,他於1962年提出了和現在的遺傳演算法十分相似的概念和思想。但是,Fraser和其他一些學者並未認識到自然遺傳演算法可以轉化為人工遺傳演算法。Holland教授及其學生不久就認識到這一轉化的重要性,Holland認為比起尋找這種或那種具體的求解問題的方法來說,開拓一種能模擬自然選擇遺傳機制的帶有一般性的理論和方法更有意義。在這一時期,Holland不但發現了基於適應度的人工遺傳選擇的基本作用,而且還對群體操作等進行了認真的研究。1965年,他首次提出了人工遺傳操作的重要性,並把這些應用於自然系統和人工系統中。

1967年,Bagley在他的論文中首次提出了遺傳演算法(genetic algorithm)這一術語,並討論了遺傳演算法在自動博弈中的應用。他所提出的包括選擇、交叉和變異的操作已與目前遺傳演算法中的相應操作十分接近。尤其是他對選擇操作做了十分有意義的研究。他認識到,在遺傳進化過程的前期和後期,選擇概率應合適地變動。為此,他引入了適應度定標(scaling)概念,這是目前遺傳演算法中常用的技術。同時,他也首次提出了遺傳演算法自我調整概念,即把交叉和變異的概率融於染色體本身的編碼中,從而可實現演算法自我調整優化。盡管Bagley沒有對此進行計算機模擬實驗,但這些思想對於後來遺傳演算法的發展所起的作用是十分明顯的。

在同一時期,Rosenberg也對遺傳演算法進行了研究,他的研究依然是以模擬生物進化為主,但他在遺傳操作方面提出了不少獨特的設想。1970年Cavicchio把遺傳演算法應用於模式識別中。實際上他並未直接涉及到模式識別,而僅用遺傳演算法設計一組用於識別的檢測器。Cavicchio對於遺傳操作以及遺傳演算法的自我調整也做了不少有特色的研究。

Weinberg於1971年發表了題為《活細胞的計算機模擬》的論文。由於他和Rosenberg一樣注意於生物遺傳的模擬,所以他對遺傳演算法的貢獻有時被忽略。實際上,他提出的多層次或多級遺傳演算法至今仍給人以深刻的印象。

第一個把遺傳演算法用於函數優化的是Hollstien。1971年他在論文《計算機控制系統中的人工遺傳自適應方法》中闡述了遺傳演算法用於數字反饋控制的方法。實際上,他主要是討論了對於二變數函數的優化問題。其中,對於優勢基因控制、交叉和變異以及各種編碼技術進行了深入的研究。

1975年在遺傳演算法研究的歷史上是十分重要的一年。這一年,Holland出版了他的著名專著《自然系統和人工系統的適配》。該書系統地闡述了遺傳演算法的基本理論和方法,並提出了對遺傳演算法的理論研究和發展極為重要的模式理論(schemata theory)。該理論首次確認了結構重組遺傳操作對於獲得隱並行性的重要性。直到這時才知道遺傳操作到底在干什麼,為什麼又幹得那麼出色,這對於以後陸續開發出來的遺傳操作具有不可估量的指導作用。

同年,De Jong完成了他的重要論文《遺傳自適應系統的行為分析》。他在該論文中所做的研究工作可看作是遺傳演算法發展進程中的一個里程碑,這是因為他把Holland的模式理論與他的計算實驗結合起來。盡管De Jong和Hollstien一樣主要側重於函數優化的應用研究,但他將選擇、交叉和變異操作進一步完善和系統化,同時又提出了諸如代溝(generation gap)等新的遺傳操作技術。可以認為,De Jong的研究工作為遺傳演算法及其應用打下了堅實的基礎,他所得出的許多結論迄今仍具有普遍的指導意義。

進入20世紀80年代,遺傳演算法迎來了興盛發展時期,無論是理論研究還是應用研究都成了十分熱門的課題。尤其是遺傳演算法的應用研究顯得格外活躍,不但它的應用領域擴大,而且利用遺傳演算法進行優化和規則學習的能力也顯著提高,同時產業應用方面的研究也在摸索之中。此外一些新的理論和方法在應用研究中亦得到了迅速的發展,這些無疑均給遺傳演算法增添了新的活力。

隨著應用領域的擴展,遺傳演算法的研究出現了幾個引人注目的新動向:一是基於遺傳演算法的機器學習(Genetic Base Machine Learning),這一新的研究課題把遺傳演算法從歷來離散的搜索空間的優化搜索演算法擴展到具有獨特的規則生成功能的嶄新的機器學習演算法。這一新的學習機制對於解決人工智慧中知識獲取和知識優化精煉的瓶頸難題帶來了希望。二是遺傳演算法正日益和神經網路、模糊推理以及混沌理論等其他智能計算方法相互滲透和結合,這對開拓21世紀中新的智能計算技術將具有重要的意義。三是並行處理的遺傳演算法的研究十分活躍。這一研究不僅對遺傳演算法本身的發展,而且對於新一代智能計算機體系結構的研究都是十分重要的。四是遺傳演算法和另一個稱為人工生命的嶄新研究領域正不斷滲透。所謂人工生命即是用計算機模擬自然界豐富多彩的生命現象,其中生物的自適應、進化和免疫等現象是人工生命的重要研究對象,而遺傳演算法在這方面將會發揮一定的作用。五是遺傳演算法和進化規劃(Evolution Programming,EP)以及進化策略(Evolution Strategy,ES)等進化計算理論日益結合。EP和ES幾乎是和遺傳演算法同時獨立發展起來的,同遺傳演算法一樣,它們也是模擬自然界生物進化機制的智能計算方法,既同遺傳演算法具有相同之處,也有各自的特點。

隨著遺傳演算法研究和應用的不斷深入和發展,一系列以遺傳演算法為主題的國際會議十分活躍。從1985年開始,國際遺傳演算法會議,即ICGA(International Conference on Genetic Algorithm)每兩年舉行一次。在歐洲,從1990年開始也每隔一年舉辦一次類似的會議,即 PPSN(Parallel Problem Solving from Nature)會議。除了遺傳演算法外,大部分有關ES和EP的學術論文也出現在PPSN中。另外,以遺傳演算法的理論基礎為中心的學術會議有FOGA(Foundation of Genetic Algorithm)。它也是從1990年開始,隔年召開一次。這些國際學術會議論文集中反映了遺傳演算法近些年來的最新發展和動向。

⑽ matlab編寫遺傳演算法時約束條件如何處理

可以作為懲罰函數 比如 和距離1 越大 那麼累加到適應度上的數值也就反向越大

閱讀全文

與遺傳演算法代溝相關的資料

熱點內容
麗水四軸加工中心編程 瀏覽:689
國產系統怎麼解壓 瀏覽:552
戰雙程序員 瀏覽:483
him觸摸編程軟體 瀏覽:931
植物大戰僵屍存檔怎麼轉移安卓 瀏覽:852
java棧的元素 瀏覽:737
程序員與籃球事件 瀏覽:675
app反編譯不完整 瀏覽:788
電腦上的文件夾怎麼調整 瀏覽:7
伺服器無響應是什麼原因呀 瀏覽:984
wd文檔里的app怎麼製作 瀏覽:513
電腦里的文件夾沒有了一般能恢復嗎 瀏覽:418
哪裡有配加密鑰匙的 瀏覽:210
伺服器開不了機怎麼把數據弄出來 瀏覽:958
gif動態圖片怎麼壓縮 瀏覽:521
黑猴子棒球壓縮文件解壓密碼 瀏覽:631
如何讓app適應不同的手機屏幕大小 瀏覽:10
蘋果手機如何給安卓手機分享軟體 瀏覽:761
蘋果電腦怎麼運行騰訊雲伺服器 瀏覽:59
明日之後沙石堡命令助手 瀏覽:261