把電腦科學與演化論結合起來的嘗試始於50年代末,但由於缺乏一種通用的編碼方案
,人們只能依賴變異而非交配來產生新的基因結構,故而收效甚微。到60年代中期,美
國michigan大學的john hol-land在a.s.fraser和h.j.bremermann等人工作的基礎
上提出了位串編碼技術。這種編碼既適於變異操作,又適於交配(即雜交)操作,並且
強調將交配作為主要的遺傳操作。隨後,holland將該演算法用於自然和人工系統的自適應
行為的研究中,並於2023年出版了其開創性著作「adaptation in natural
andartificialsystems」.之後,holland等人將該演算法加以推廣,應用到優化及機器學
習等問題中,並正式定名為遺傳演算法。遺傳演算法的通用編碼技術和簡單有效的遺傳操作
為其廣泛、成功的應用奠定了基礎。
holland的遺傳演算法常被稱為簡單遺傳演算法(sga),其操作物件是一群二進位制串(
稱為染色體、個體),即種群(population)。在此,每個染色體都對應問題的乙個解
。從初始種群出發,採用基於適應值比例的選擇策略在當前種群中選擇個體,使用雜交
和變異來產生下一代種群。如此一代代演化下去,直到滿足期望的終止條件。需要指出
的是,目前的遺傳演算法已不再侷限於二進位制編碼。z.michalewicz將不同的編碼策略(
即不同的資料結構)與遺傳演算法的結合稱為演化程式(evolution program)。
典型的遺傳演算法的核心過程可以如下描述為:
{ 隨機初始化種**(0)={x1,x2,-,xn},t:=0;
計算p(0)中個體的適應度;
while(不滿足終止條件)do
{
根據個體的適應度以及選擇策略,計算種群內個體的選擇概率pi;
根據pi從中選擇n1(≤n)個個體進行遺傳操作(複製、雜交及變異等),用n1個後
代換掉p(t)中n1個較差的個體,生成新種**(t+1);
計算p(t+1)中個體的適應度,t=t+1;} }
關於遺傳演算法的有關基本理論和有關演算法中的一些過程的意義(如:複製過程,雜
交過程等)和一些具體的名詞(如:變異率等)以及各引數的選取方法,請參閱文獻[6
~8]。
遺傳演算法本身即是一種全域性隨機搜尋方法,可以採用一定的方式來設計遺傳演算法以
保證其收斂到全域性最優解。這樣可以克服基於迭代原理的各種數值方法對適用問題的局
限以及無法保證可以收斂到全域性最優解的缺點。對於需要進行全域性優化和難於進行解析
處理的問題,遺傳演算法通常能夠發揮其優勢。
遺傳演算法簡介
今天來講遺傳演算法,遺傳演算法有很多應用,比如尋路問題,八數碼問題,囚犯困境問題,動作控制,tsp問題,生產 排程問題,在乙個多邊形中尋找乙個包含在該多邊形內的乙個圓,函式求最值問題等等。之前講的模擬退火演算法是用 來求解最優化問題的,鏈結為 模擬退 火演算法用一句話概括就是 貪心過程中引入了隨機因...
遺傳演算法簡介
遺傳演算法借鑑了達爾文的演化論,是一種解決最佳化的搜尋演算法 具體步驟 1 初始化 先初始化一堆染色體,也就是一組編碼,常見的編碼方式有二進位制 浮點數編碼 2 適應度函式 根據要達成的目標進行乙個適應度排序 比如求要求乙個函式的最小值,那麼染色體所代表的資料越小,適應度越高 適應度決定了下乙個階段...
遺傳演算法 簡介
遺傳演算法 genetic algorithm 是模擬達爾文生物演化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程 搜尋最優解的方法。遺傳演算法是從代表問題可能潛在的解集的乙個種群 population 開始的,而乙個種群則由經過基因 gene 編碼的一定數目的個體 i...