❶ 遺傳演算法是什麼
遺傳演算法(Genetic Algorithm)是一類借鑒生物界的進化規律(適者生存,優勝劣汰遺傳機制)演化而來的隨機化搜索方法。
遺傳演算法(Genetic Algorithms簡稱GA)是由美國Michigan大學的John Holland教授於20世紀60年代末創建的。它來源於達爾文的進化論和孟德爾、摩根的遺傳學理論,通過模擬生物進化的機制來構造人工系統。遺傳演算法作為一種全局優化方法,提供了一種求解復雜系統優化問題的通用框架,它不依賴於問題的具體領域,對優化函數的要求很低並且對不同種類的問題具有很強的魯棒性,所以廣泛應用於計算機科學、工程技術和社會科學等領域。John Holland教授通過模擬生物進化過程設計了最初的遺傳演算法,我們稱之為標准遺傳演算法。
標准遺傳演算法流程如下:
1)初始化遺傳演算法的群體,包括初始種群的產生以及對個體的編碼。
2)計算種群中每個個體的適應度,個體的適應度反映了其優劣程度。
3)通過選擇操作選出一些個體,這些個體就是母代個體,用來繁殖子代。
4)選出的母代個體兩兩配對,按照一定的交叉概率來進行交叉,產生子代個體。
5)按照一定的變異概率,對產生的子代個體進行變異操作。
6)將完成交叉、變異操作的子代個體,替代種群中某些個體,達到更新種群的目的。
7)再次計算種群的適應度,找出當前的最優個體。
8)判斷是否滿足終止條件,不滿足則返回第3)步繼續迭代,滿足則退出迭代過程,第7)步中得到的當前最優個體,通過解碼,就作為本次演算法的近似最優解。
具體你可以到網路文庫去搜索遺傳演算法相關的論文,很多的。
你也可以參考網路里對遺傳演算法的介紹。
❷ 請問什麼是遺傳演算法,並給兩個例子
遺傳演算法(Genetic Algorithm, GA)是近幾年發展起來的一種嶄新的全局優化演算法,它借
用了生物遺傳學的觀點,通過自然選擇、遺傳、變異等作用機制,實現各個個體的適應性
的提高。這一點體現了自然界中"物競天擇、適者生存"進化過程。1962年Holland教授首次
提出了GA演算法的思想,從而吸引了大批的研究者,迅速推廣到優化、搜索、機器學習等方
面,並奠定了堅實的理論基礎。 用遺傳演算法解決問題時,首先要對待解決問題的模型結構
和參數進行編碼,一般用字元串表示,這個過程就將問題符號化、離散化了。也有在連續
空間定義的GA(Genetic Algorithm in Continuous Space, GACS),暫不討論。
一個串列運算的遺傳演算法(Seguential Genetic Algoritm, SGA)按如下過程進行:
(1) 對待解決問題進行編碼;
(2) 隨機初始化群體X(0):=(x1, x2, … xn);
(3) 對當前群體X(t)中每個個體xi計算其適應度F(xi),適應度表示了該個體的性能好
壞;
(4) 應用選擇運算元產生中間代Xr(t);
(5) 對Xr(t)應用其它的運算元,產生新一代群體X(t+1),這些運算元的目的在於擴展有限
個體的覆蓋面,體現全局搜索的思想;
(6) t:=t+1;如果不滿足終止條件繼續(3)。
GA中最常用的運算元有如下幾種:
(1) 選擇運算元(selection/reproction): 選擇運算元從群體中按某一概率成對選擇個
體,某個體xi被選擇的概率Pi與其適應度值成正比。最通常的實現方法是輪盤賭(roulett
e wheel)模型。
(2) 交叉運算元(Crossover): 交叉運算元將被選中的兩個個體的基因鏈按概率pc進行交叉
,生成兩個新的個體,交叉位置是隨機的。其中Pc是一個系統參數。
(3) 變異運算元(Mutation): 變異運算元將新個體的基因鏈的各位按概率pm進行變異,對
二值基因鏈(0,1編碼)來說即是取反。
上述各種運算元的實現是多種多樣的,而且許多新的運算元正在不斷地提出,以改進GA的
某些性能。系統參數(個體數n,基因鏈長度l,交叉概率Pc,變異概率Pm等)對演算法的收斂速度
及結果有很大的影響,應視具體問題選取不同的值。
GA的程序設計應考慮到通用性,而且要有較強的適應新的運算元的能力。OOP中的類的繼
承為我們提供了這一可能。
定義兩個基本結構:基因(ALLELE)和個體(INDIVIDUAL),以個體的集合作為群體類TP
opulation的數據成員,而TSGA類則由群體派生出來,定義GA的基本操作。對任一個應用實
例,可以在TSGA類上派生,並定義新的操作。
TPopulation類包含兩個重要過程:
FillFitness: 評價函數,對每個個體進行解碼(decode)並計算出其適應度值,具體操
作在用戶類中實現。
Statistic: 對當前群體進行統計,如求總適應度sumfitness、平均適應度average、最好
個體fmax、最壞個體fmin等。
TSGA類在TPopulation類的基礎上派生,以GA的系統參數為構造函數的參數,它有4個
重要的成員函數:
Select: 選擇運算元,基本的選擇策略採用輪盤賭模型(如圖2)。輪盤經任意旋轉停止
後指針所指向區域被選中,所以fi值大的被選中的概率就大。
Crossover: 交叉運算元,以概率Pc在兩基因鏈上的隨機位置交換子串。
Mutation: 變異運算元,以概率Pm對基因鏈上每一個基因進行隨機干擾(取反)。
Generate: 產生下代,包括了評價、統計、選擇、交叉、變異等全部過程,每運行一
次,產生新的一代。
SGA的結構及類定義如下(用C++編寫):
[code] typedef char ALLELE; // 基因類型
typedef struct{
ALLELE *chrom;
float fitness; // fitness of Chromosome
}INDIVIDUAL; // 個體定義
class TPopulation{ // 群體類定義
public:
int size; // Size of population: n
int lchrom; // Length of chromosome: l
float sumfitness, average;
INDIVIDUAL *fmin, *fmax;
INDIVIDUAL *pop;
TPopulation(int popsize, int strlength);
~TPopulation();
inline INDIVIDUAL &Indivial(int i){ return pop[i];};
void FillFitness(); // 評價函數
virtual void Statistics(); // 統計函數
};
class TSGA : public TPopulation{ // TSGA類派生於群體類
public:
float pcross; // Probability of Crossover
float pmutation; // Probability of Mutation
int gen; // Counter of generation
TSGA(int size, int strlength, float pm=0.03, float pc=0.6):
TPopulation(size, strlength)
{gen=0; pcross=pc; pmutation=pm; } ;
virtual INDIVIDUAL& Select();
virtual void Crossover(INDIVIDUAL &parent1, INDIVIDUAL &parent2,
INDIVIDUAL &child1, INDIVIDUAL &child2);
&child1, INDIVIDUAL &child2);
virtual ALLELE Mutation(ALLELE alleleval);
virtual void Generate(); // 產生新的一代
};
用戶GA類定義如下:
class TSGAfit : public TSGA{
public:
TSGAfit(int size,float pm=0.0333,float pc=0.6)
:TSGA(size,24,pm,pc){};
void print();
}; [/code]
由於GA是一個概率過程,所以每次迭代的情況是不一樣的;系統參數不同,迭代情況
也不同。在實驗中參數一般選取如下:個體數n=50-200,變異概率Pm=0.03, 交叉概率Pc=
0.6。變異概率太大,會導致不穩定。
參考文獻
● Goldberg D E. Genetic Algorithm in Search, Optimization, and machine
Learning. Addison-Wesley, Reading, MA, 1989
● 陳根社、陳新海,"遺傳演算法的研究與進展",《信息與控制》,Vol.23,
NO.4, 1994, PP215-222
● Vittorio Maniezzo, "Genetic Evolution of the Topology and Weight Distri
bution of the Neural Networks", IEEE, Trans. on Neural Networks, Vol.5, NO
.1, 1994, PP39-53
● Xiaofeng Qi, Francesco Palmieri, "Theoretical Analysis of Evolutionary
Algorithms with an Infinite Population Size in Continuous Space. Part Ⅰ
l Networks, Vol.5, NO.1, 1994, PP102-119
● Xiaofeng Qi, Francesco Palmieri, "Theoretical Analysis of Evolutionary
Algorithms with an Infinite Population Size in Continuous Space. Part Ⅱ
al Networks, Vol.5, NO.1, 1994, PP102-119
● Gunter Rudolph, Convergence Analysis of Canonical Genetic Algorithms, I
EEE, Trans. on Neural Networks, Vol.5, NO.1, 1994, PP96-101
● A E Eiben, E H L Aarts, K M Van Hee. Gloable convergence of genetic alg
orithms: A Markov chain analysis. in Parallel Problem Solving from Nat
ure. H.-P.Schwefel, R.Manner, Eds. Berlin and Heidelberg: Springer, 1991
, PP4-12
● Wirt Atmar, "Notes on the Simulation of Evolution", IEEE, Trans. on Neu
ral Networks, Vol.5, NO.1, 1994, PP130-147
● Anthony V. Sebald, Jennifer Schlenzig, "Minimax Design of Neural Net Co
ntrollers for Highly Uncertain Plants", IEEE, Trans. on Neural Networks, V
ol.5, NO.1, 1994, PP73-81
● 方建安、邵世煌,"採用遺傳演算法自學習模型控制規則",《自動化理論、技術與應
用》,中國自動化學會 第九屆青年學術年會論文集,1993, PP233-238
● 方建安、邵世煌,"採用遺傳演算法學習的神經網路控制器",《控制與決策》,199
3,8(3), PP208-212
● 蘇素珍、土屋喜一,"使用遺傳演算法的迷宮學習",《機器人》,Vol.16,NO.5,199
4, PP286-289
● M.Srinivas, L.M.Patnaik, "Adaptive Probabilities of Crossover and Mutat
ion", IEEE Trans. on S.M.C, Vol.24, NO.4, 1994 of Crossover and Mutation",
IEEE Trans. on S.M.C, Vol.24, NO.4, 1994
● Daihee Park, Abraham Kandel, Gideon Langholz, "Genetic-Based New Fuzzy
Reasoning Models with Application to Fuzzy Control", IEEE Trans. S. M. C,
Vol.24, NO.1, PP39-47, 1994
● Alen Varsek, Tanja Urbancic, Bodgan Filipic, "Genetic Algorithms in Con
troller Design and Tuning", IEEE Trans. S. M. C, Vol.23, NO.5, PP1330-13
39, 1993
❸ 遺傳演算法ai影響
遺傳演算法(GA)是基於自然選擇和遺傳學概念的基於搜索的演算法。遺傳演算法是稱為進化計算的更大分支的一個子集。
GAs 由 John Holland 及其在密歇根大學的學生和同事開發,最著名的是 David E.Goldberg。自那以來,它一直在嘗試各種優化問題並取得了很高的成功。
在 GAs 中,我們為給定問題提供了一系列可能的解決方案。這些解決方案然後經歷重組和突變(如在自然遺傳學中),產生新的兒童,並且該過程在各代重復。每個個體(或候選解決方案)都被分配一個適應值(基於其目標函數值),並且適合者個體被賦予更高的配偶並產生更適合個體的機會。這符合達爾文適者生存理論。
因此,它不斷發展更好的個人或解決方案,直到達到停止標准。
遺傳演算法在本質上具有充分的隨機性,但它們比隨機局部搜索(我們只是嘗試隨機解決方案,追蹤迄今為止最好的)的性能好得多,因為它們也在利用歷史信息。
❹ 遺傳演算法的特點
遺傳演算法是解決搜索問題的一種通用演算法,對於各種通用問題都可以使用。搜索演算法的共同特徵為:
① 首先組成一組候選解
② 依據某些適應性條件測算這些候選解的適應度
③ 根據適應度保留某些候選解,放棄其他候選解
④ 對保留的候選解進行某些操作,生成新的候選解。
在遺傳演算法中,上述幾個特徵以一種特殊的方式組合在一起:基於染色體群的並行搜索,帶有猜測性質的選擇操作、交換操作和突變操作。這種特殊的組合方式將遺傳演算法與其它搜索演算法區別開來。
遺傳演算法還具有以下幾方面的特點:
(1)遺傳演算法從問題解的串集開始搜索,而不是從單個解開始。這是遺傳演算法與傳統優化演算法的極大區別。傳統優化演算法是從單個初始值迭代求最優解的;容易誤入局部最優解。遺傳演算法從串集開始搜索,覆蓋面大,利於全局擇優。
(2)遺傳演算法同時處理群體中的多個個體,即對搜索空間中的多個解進行評估,減少了陷入局部最優解的風險,同時演算法本身易於實現並行化。
(3)遺傳演算法基本上不用搜索空間的知識或其它輔助信息,而僅用適應度函數值來評估個體,在此基礎上進行遺傳操作。適應度函數不僅不受連續可微的約束,而且其定義域可以任意設定。這一特點使得遺傳演算法的應用范圍大大擴展。
(4)遺傳演算法不是採用確定性規則,而是採用概率的變遷規則來指導他的搜索方向。
(5)具有自組織、自適應和自學習性。遺傳演算法利用進化過程獲得的信息自行組織搜索時,適應度大的個體具有較高的生存概率,並獲得更適應環境的基因結構。
(6)此外,演算法本身也可以採用動態自適應技術,在進化過程中自動調整演算法控制參數和編碼精度,比如使用模糊自適應法 。
❺ 關於遺傳演算法
遺傳演算法(Genetic Algorithm,簡稱GA)是美國 Michigan大學的 John Golland提出的一種建立在自然選擇和群體遺傳學機理基礎上的隨機、迭代、進化、具有廣泛適用性的搜索方法。現在已被廣泛用於學習、優化、自適應等問題中。圖4-1 給出了 GA搜索過程的直觀描述。圖中曲線對應一個具有復雜搜索空間(多峰空間)的問題。縱坐標表示適應度函數(目標函數),其值越大相應的解越優。橫坐標表示搜索點。顯然,用解析方法求解該目標函數是困難的。採用 GA時,首先隨機挑選若干個搜索點,然後分別從這些搜索點開始並行搜索。在搜索過程中,僅靠適應度來反復指導和執行 GA 搜索。在經過若干代的進化後,搜索點後都具有較高的適應度並接近最優解。
一個簡單GA由復制、雜交和變異三個遺傳運算元組成:
圖4-2 常規遺傳演算法流程圖
❻ 什麼叫遺傳演算法,遺傳演算法有什麼用
遺傳演算法是計算數學中用於解決最佳化的搜索演算法,是進化演算法的一種。
❼ 遺傳演算法概念
遺傳演算法是模擬達爾文的生物進化理論,結合進化中優勝劣汰的概念,是一種基於自然選擇和遺傳學原理的搜索演算法。
❽ 遺傳演算法的基本原理
遺傳演算法的基本原理是:
遺傳演算法是一種基於自然選擇和群體遺傳機理的搜索演算法,它模擬了自然選擇和自然遺傳過程中的繁殖、雜交和突變現象,在利用遺傳演算法求解問題時,問題的每一個可能解都被編碼成一個"染色體",即個體,若干個個體構成了群體(所有可能解)。在遺傳演算法開始時總是隨機的產生一些個體(即初始解),根據預定的目標函數對每一個個體進行評估,給出一個適應度值,基於此適應度值,選擇一些個體用來產生下一代,選擇操作體現了適者生存的原理,」好「的個體被用來產生下代,「壞」的個體則被淘汰,然後選擇出來的個體經過交叉和變異,運算元進行再組合生成新的一代,這一代的個體由於繼承了上代的一些優良性狀,因而在性能上上要優於上一代,這樣逐步朝著最優解的方向進化,因此,遺傳演算法可以看成是一個由可行解組成的群體初步進化的過程。
❾ 能通俗的介紹一下什麼是遺傳演算法嗎
遺傳演算法(Genetic Algorithms or GAs)是基於自然選擇和自然遺傳機制的搜索演算法,它是一種有效的解決最優化問題的方法。遺傳演算法最早是由美國Michigan大學的John Holland和他的同事及學生提出的。類似於自然界演化的基本法則,「適者生存」是遺傳演算法的核心機制,同樣,「復制(reproce)」、「雜交(crossover)」、「變異(mutation)」等自然界的生物演化規則在遺傳演算法中都得到類似的體現。
用遺傳演算法解最優化問題,首先應對可行域中的個體進行編碼,然後在可行域中隨機挑選指定群體大小的一些個體組成作為進化起點的第一代群體,並計算每個個體的目標函數值,即該個體的適應度。接著就像自然界中一樣,利用選擇機制從群體中隨機挑選個體作為繁殖過程前的個體樣本。選擇機制保證適應度較高的個體能夠保留較多的樣本;而適應度較低的個體則保留較少的樣本,甚至被淘汰。在接下去的繁殖過程中,遺傳演算法提供了交叉和變異兩種演算法對挑選後的樣本進行交換和基因突變。交叉演算法交換隨機挑選的兩個個體的某些位,變異運算元則直接對一個個體中的隨機挑選的某一位進行突變。這樣通過選擇和繁殖就產生了下一代群體。重復上述選擇和繁殖過程,直到結束條件得到滿足為止。進化過程最後一代中的最優解就是用遺傳演算法解最優化問題所得到的最終結果。
與其他演算法相比,遺傳演算法主要有以下四個方面的不同: 遺傳演算法所面向的對象是參數集的編碼,而不是參數集本身; 遺傳演算法的搜索是基於若干個點,而不是基於一個點; 遺傳演算法利用目標函數的信息,而不是導數或者其他輔助信息; 遺傳演算法的轉化規則是概率性的,而不是確定性的。