




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10講演化計算
:演化策略
及遺傳程式設計
演化策略
遺傳程式設計
總結
第10講演化策略另一個模擬自然演化的方法是20世紀60年代早期在德國提出的。和基因演算法不同,這種稱為演化策略的方法用於解決技術最佳化的問題。演化策略另一個模擬自然演化的方法是20世紀60年代早期在德國提出的。1963年,柏林技術大學的兩個學生IngoRechenberg和Hans-PaulSchwefel致力於研究流體的最佳化形狀。在工作中,他們使用了InstituteofFlowEngineering的風洞。由於這是一個艱苦且需要依靠直覺的工作,他們決定按照自然突變的例子來隨機改變形狀的參數,結果便產生了演化策略。演化策略是可替代工程師直覺的一種方法。和基因演算法不同,演化策略僅用到突變運算。1963年,柏林技術大學的兩個學生IngoRechenbe演化策略演化策略最簡單的形式是(1+1)演化策略,即使用常態分佈突變使每代一個雙親只產生一個後代。(1+1)演化策路的實現方法如下:定義每個參數的標準差和需要最佳化的函數。步驟1:選擇表示問題的N個參數,然後確定每個參數的可行的範圍:演化策略演化策略最簡單的形式是(1+1)演化策略,即使用常態步驟2:在每個參數各自的可行範圍內隨機選擇初始值。這些參數值的集合就是親代參數的初始種群:x1,x2,...,xNX=f(x1,x2,...,xN)步驟3:計算親代參數的解決方案:步驟2:在每個參數各自的可行範圍內隨機選擇初始值。這些參數步驟4:透過增加常態分佈的隨機變數a(其均值為0)及預先定義的變異數δ為每個親代參數建立新的參數(後代):均值為0的常態分佈的突變反映了演化的自然過程,即較小變化的發生的機率遠遠大於較大的變化發生的機率。
步驟5:計算後代參數的解決方案:
i=1,2,...,N步驟4:透過增加常態分佈的隨機變數a(其均值為0)及預先定步驟6:比較子代參數和親代參數的解決方案。如果子代的解決方案比較好,就用子代種群替代親代種群。否則,保留親代參數。
步驟7:回到步驟4,重複這個過程,直到得到滿意的解決方案,或者達到了指定的遺傳代數為止。步驟6:比較子代參數和親代參數的解決方案。如果子代的解決方演化策略反映了染色體的本質。單個的基因可能會同時影響到生物體的幾個特徵。另一方面,生物體的單個特徵也可能由幾個基因同時確定。自然選擇作用在一組基因而不是單個基因上。
演化策略反映了染色體的本質。電腦科學的一個核心問題就是如何能讓電腦在沒有明確程式設計的情況下知道如何解決問題。遺傳程式設計提供了解決這個問題的方法,即透過自然選擇的方法來使電腦程式演化。實際上遺傳程式設計是傳統基因演算法的擴展,但遺傳程式設計的目的不僅僅是用位元字串來表示問題,而是要編寫解決問題的程式。遺傳程式設計(基因規劃法)
geneticprogramming
電腦科學的一個核心問題就是如何能讓電腦在沒有明確程式設計的情遺傳程式設計是演化計算領域最新發展成果。在20世紀90年代,JohnKoza對遺傳程式設計的發展產生了很大的作用。根據Koza的理論,遺傳程式設計為非常適合待解決的問題的程式搜尋電腦程式設計的可能空間。任何的電腦程式都是應用到值(參數)的一系列運算(函數)。但不同的程式語言包含有不同的描述、運算及語法限制。遺傳程式設計是演化計算領域最新發展成果。在20世紀90年代,由於遺傳程式設計是用遺傳運算來操作程式,因此,程式語言應該允許電腦程式可以像資料一樣運算,並且新建立的資料可以作為程式執行。由於上述的原因,通常選擇LISP作為遺傳程式設計的主要語言。由於遺傳程式設計是用遺傳運算來操作程式,因此,程式語言應該允LISP具有高度符號導向的結構。其基本資料結構是原子和表。原子是LISP語法中不可分割的最小元素。數字21,符號X和字串“Thisisastring”都是LISP原子的例子。表是由原子或其他表組成的物件。LISP表可以寫為圓括號中項目的有序集合。LISP結構LISP具有高度符號導向的結構。其基本資料結構是原子和表。原例如:此表要求呼叫減號函數(-)處理兩個引數,也就是表(*AB)和原子C。首先,LISP對原子A和B使用乘函數(*),得到列表(*AB)的結果,然後用減函數(-)計算整個(-(*AB)C)的結果。(-(*AB)C)LISP結構例如:(-(*AB)C)LISP結構原子和表都稱作符號運算式或S運算式。在LISP中,所有的資料和程式都是S運算式。因此,LISP可以像運算元一樣運算程式。也就是說,LISP程式可以修改它們自己,甚至編寫出其他的LISP程式。LISP的這個重要的特點對於遺傳程式設計而言非常有吸引力。任何LISP的S運算式都可以表達成一棵用節點標記成有根的、具有有序分支的樹。LISPS運算式的表示圖
原子和表都稱作符號運算式或S運算式。在LISP中,所有的資料LISPS運算式(-(*AB)C)LISPS運算式(-(*AB)C)如何使用遺傳程式設計來解決問題?
在使用遺傳程式設計來解決問題前,必須先執行五個預備步驟:(1)確定終端集合。(2)選擇基本函數集。(3)定義適應性函數。(4)確定控制執行的參數。(5)選擇指定執行結果的方法。如何使用遺傳程式設計來解決問題?(1)確定終端集合。可以用畢氏定理來說明這些預備步驟,並證明遺傳程式設計的潛力。畢氏定理說明,直角三角形的斜邊c和兩個直角邊a、b有以下關係:遺傳程式設計的目的是找到和這個函數匹配的程式。可以用畢氏定理來說明這些預備步驟,並證明遺傳程式設計的潛力。為了測量至今還未發現的電腦程式的性能,我們在這裏使用不同的適應性案例。畢氏定理的適應性案例用表7-4所示的直角三角形表示。這些適應性案例是在變數a和b的範圍內隨機選擇的。邊a邊b斜邊c邊a邊b斜邊c355.830952121015.62049981416.12451521621.84033018218.110770748.062258321133.837849162428.844410435.000000299.219545為了測量至今還未發現的電腦程式的性能,我們在這裏使用不同的適步驟1:確定終端集合
找到與電腦程式的輸入相對應的終端。本例中有兩個輸入,a和b。步驟2:選擇基本函數集
函數可以用標準算術運算、標準程式設計運算、標準數學函數、邏輯函數或特定領域的函數來表示。本例使用標準算術函數+、-、*、/
和一個數學函數sqrt。步驟1:確定終端集合步驟3:定義適應性函數
適應性函數用來評估某個電腦程式解決問題的能力。適應性函數的選擇取決於要解決的問題。每個問題的適應性函數可能有很大不同。本例中,電腦程式的適應性可以透過程式產生的實際結果和適應性案例給出的結果之間的誤差來衡量。一般情況下,只有一個案例時不測量誤差,而是要計算一組適應性案例的絕對誤差的總和。總和越接近於0,電腦程式就越好。步驟3:定義適應性函數步驟4:確定控制執行的參數
為了控制執行,遺傳程式設計使用的主要參數和基因演算法一樣。它包含種群大小和最大遺傳代數。步驟5:選擇指定執行結果的方法
通常在遺傳程式設計中指定目前最好的遺傳程式的結果作為執行結果。步驟4:確定控制執行的參數一旦這五個步驟執行完畢,就可以開始執行
了。遺傳程式設計的執行從電腦程式的初始種
群的隨機選擇的一代開始。每個程式由+、-、
*、/和sqrt以及終端節點a、b組成。在最初的種群中,所有電腦程式的適應性都很
差,但某些個體的適應性要比其他個體好。就
像適應性較強的染色體被選中進行繁殖的機率
更高一樣,適應性較好的電腦程式透過複製自
己進入下一代的機率也更高。一旦這五個步驟執行完畢,就可以開始執行
了。遺傳遺傳程式設計中的交配
:兩個親代的S運算式遺傳程式設計中的交配:兩個親代的S運算式遺傳程式設計中的交配
:兩個子代的S運算式遺傳程式設計中的交配:兩個子代的S運算式突變運算可以任意改變LISP的S運算式中的函數或終端。在突變中,函數僅能用函數取代,終端也僅能用終端取代。圖7-16解釋了遺傳程式設計中突變的基本概念。
遺傳程式設計中的突變突變運算可以任意改變LISP的S運算式中的函數或終端。在突變原始S運算式遺傳程式設計中的突變
:原始S運算式遺傳程式設計中的突變:遺傳程式設計中的突變
:突變後的S運算式遺傳程式設計中的突變:突變後的S運算式步驟1:指定執行的最大遺傳代數以及複製、交配和突變的機率。注意,複製、交配和突變三者機率的和必須為1。步驟2:產生長度為N、由隨機選擇的終端和函數組成的電腦程式的初始種群。總之,遺傳程式設計透過執行下述步驟來建立電腦程式:步驟1:指定執行的最大遺傳代數以及複製、交配和突變的機率。步驟3:在種群中執行每個電腦程式,用合適的適應性函數計算其適應性,指定最好的個體作為執行的結果。步驟4:用指定的機率選擇遺傳運算,以執行複製、交配和突變。步驟3:在種群中執行每個電腦程式,用合適的適應性函數計算其步驟5:如果選擇的是複製運算,則從現有種群中選擇一個程式,複製該程式後將其放入下一代種群中。·如果選擇的是交配運算,則從現有種群中選擇一對程式,建立一對後代程式放入下一代種群中。·如果選擇的是突變運算,則從現有種群中選擇一個程式,執行突變運算並將其突變的結果放入下一代種群中。步驟5:如果選擇的是複製運算,則從現有種群中選擇一個程式,步驟6:重複執行步驟4,直到新種群的程式數量和初始種群一樣多(等於N)為止。步驟7:用新的(子代)種群取代目前的(親代)種群。步驟8:回到步驟3,重複執行,直到達到滿足終止條件為止。
步驟6:重複執行步驟4,直到新種群的程式數量和初始種群一樣最好的S運算式的適應性
最好的S運算式的適應性遺傳程式設計和基因演算法使用相同的演化方法。但是遺傳程式設計不再用位元字串表示編碼方法,而是用完整的電腦程式解決具體的問題。基因演算法最基本的困難在於問題的表達,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LY/T 3407-2024生物质成型燃料用竹基粘结剂
- 统编版三年级语文下册期末达标测试卷(全真演练二)(含答案)
- 2019-2025年消防设施操作员之消防设备基础知识模拟考试试卷B卷含答案
- 2019-2025年军队文职人员招聘之军队文职管理学全真模拟考试试卷A卷含答案
- 2019-2025年消防设施操作员之消防设备基础知识提升训练试卷A卷附答案
- 2025年消防设施操作员之消防设备高级技能押题练习试卷A卷附答案
- 管理学原理b试题及答案
- 遗产继承房产分割合同
- 高等教育自学考试《00065国民经济统计概论》模拟试卷二
- 2024年新疆公务员《行政职业能力测验》试题真题及答案
- 北京服装学院招聘考试题库2024
- 金融科技概论-课件 第十五章 金融科技监管与监管科技
- 2024年江苏省南京市中考数学试卷真题(含答案解析)
- 物资装卸培训课件
- DB5101-T 71-2020 成都市电动汽车充电设施 安全管理规范
- 2025年北京电子科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年乌兰察布医学高等专科学校高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年二级建造师之二建机电工程实务考试题库含完整答案
- 高教版2023年中职教科书《语文》(基础模块)下册教案全册
- 《社群运营》全套教学课件
- 2024入团知识题库(含答案)
评论
0/150
提交评论