第-讲演化计算-演化策略-及遗传程式设计优秀文档.ppt
上传人:天马****23 上传时间:2024-09-10 格式:PPT 页数:34 大小:199KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

第-讲演化计算-演化策略-及遗传程式设计优秀文档.ppt

第-讲演化计算-演化策略-及遗传程式设计优秀文档.ppt

预览

免费试读已结束,剩余 24 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第10講演化計算:演化策略及遺傳程式設計另一個模擬自然演化的方法是20世紀60年代早期在德國提出的。和基因演算法不同,這種稱為演化策略的方法用於解決技術最佳化的問題。1963年,柏林技術大學的兩個學生IngoRechenberg和Hans-PaulSchwefel致力於研究流體的最佳化形狀。在工作中,他們使用了InstituteofFlowEngineering的風洞。由於這是一個艱苦且需要依靠直覺的工作,他們決定按照自然突變的例子來隨機改變形狀的參數,結果便產生了演化策略。演化策略是可替代工程師直覺的一種方法。和基因演算法不同,演化策略僅用到突變運算。演化策略步驟2:在每個參數各自的可行範圍內隨機選擇初始值。這些參數值的集合就是親代參數的初始種群:步驟4:透過增加常態分佈的隨機變數a(其均值為0)及預先定義的變異數δ為每個親代參數建立新的參數(後代):步驟6:比較子代參數和親代參數的解決方案。如果子代的解決方案比較好,就用子代種群替代親代種群。否則,保留親代參數。步驟7:回到步驟4,重複這個過程,直到得到滿意的解決方案,或者達到了指定的遺傳代數為止。最好的S運算式的適應性演化策略反映了染色體的本質。固定長度的編碼相當的困難。基因演算法最基本的困難在於問題的表達,也就是固定長度的編碼,表達效果不佳限制了基因演算法的能力,甚至導致錯誤的結論。數字21,符號X和字串“Thisisastring”都是LISP原子的例子。函數可以用標準算術運算、標準程式設計運算、標準數學函數、邏輯函數或特定領域的函數來表示。圖7-16解釋了遺傳程式設計中突變的基本概念。步驟3:定義適應性函數在LISP中,所有的資料和程式都是S運算式。演化計算:演化策略及遺傳程式設計適應性函數的選擇取決於要解決的問題。表是由原子或其他表組成的物件。最好的S運算式的適應性電腦科學的一個核心問題就是如何能讓電腦在沒有明確程式設計的情況下知道如何解決問題。遺傳程式設計提供了解決這個問題的方法,即透過自然選擇的方法來使電腦程式演化。實際上遺傳程式設計是傳統基因演算法的擴展,但遺傳程式設計的目的不僅僅是用位元字串來表示問題,而是要編寫解決問題的程式。遺傳程式設計是演化計算領域最新發展成果。在20世紀90年代,JohnKoza對遺傳程式設計的發展產生了很大的作用。根據Koza的理論,遺傳程式設計為非常適合待解決的問題的程式搜尋電腦程式設計的可能空間。任何的電腦程式都是應用到值(參數)的一系列運算(函數)。但不同的程式語言包含有不同的描述、運算及語法限制。這些適應性案例是在變數a和b的範圍內隨機選擇的。(5)選擇指定執行結果的方法。演化計算:演化策略及遺傳程式設計可以用畢氏定理來說明這些預備步驟,並證明遺傳程式設計的潛力。基因演算法最基本的困難在於問題的表達,也就是固定長度的編碼,表達效果不佳限制了基因演算法的能力,甚至導致錯誤的結論。演化計算:演化策略及遺傳程式設計原子是LISP語法中不可分割的最小元素。步驟2:選擇基本函數集這些適應性案例是在變數a和b的範圍內隨機選擇的。在LISP中,所有的資料和程式都是S運算式。任何的電腦程式都是應用到值(參數)的一系列運算(函數)。在突變中,函數僅能用函數取代,終端也僅能用終端取代。為了測量至今還未發現的電腦程式的性能,我們在這裏使用不同的適應性案例。實際上遺傳程式設計是傳統基因演算法的擴展,但遺傳程式設計的目的不僅僅是用位元字串來表示問題,而是要編寫解決問題的程式。演化策略反映了染色體的本質。(4)確定控制執行的參數。LISP具有高度符號導向的結構。其基本資料結構是原子和表。原子是LISP語法中不可分割的最小元素。數字21,符號X和字串“Thisisastring”都是LISP原子的例子。表是由原子或其他表組成的物件。LISP表可以寫為圓括號中項目的有序集合。例如:此表要求呼叫減號函數(-)處理兩個引數,也就是表(*AB)和原子C。首先,LISP對原子A和B使用乘函數(*),得到列表(*AB)的結果,然後用減函數(-)計算整個(-(*AB)C)的結果。原子和表都稱作符號運算式或S運算式。在LISP中,所有的資料和程式都是S運算式。因此,LISP可以像運算元一樣運算程式。也就是說,LISP程式可以修改它們自己,甚至編寫出其他的LISP程式。LISP的這個重要的特點對於遺傳程式設計而言非常有吸引力。任何LISP的S運算式都可以表達成一棵用節點標記成有根的、具有有序分支的樹。LISPS運算式(-(*AB)C)如何使用遺傳程式設計來解決問題?在使用遺傳程式設計來解決問題前,必須先執行五個預備步驟:可以用畢氏定理來說明這些預備步驟,並證明遺傳程式設計的潛力。畢氏定理