本書介紹了一種實(shí)現(xiàn)簡(jiǎn)單、易于使用、可靠快速的全局優(yōu)化算法——差分進(jìn)化算法。主要內(nèi)容有:差分進(jìn)化算法的研究動(dòng)機(jī)、主要內(nèi)容、標(biāo)準(zhǔn)測(cè)試、問(wèn)題域、架構(gòu)和計(jì)算環(huán)境、編程以及各種應(yīng)用。
本書可作為相關(guān)專業(yè)的教材使用,同時(shí)也適合對(duì)優(yōu)化問(wèn)題感興趣的所有讀者。
Kenneth VPrice:獻(xiàn)給我的父親。
Rainer MStorn :獻(xiàn)給曾給我支持的父母、我深愛的妻子Marion、我可愛的孩子Maja和Robin.Jouni ALampinen:獻(xiàn)給曾與我在鄉(xiāng)村和城鎮(zhèn)一起愉快生活的、也是我非常要好的朋友——小狗Tonique.前言優(yōu)化問(wèn)題廣泛存在于科學(xué)研究和工程領(lǐng)域中。什么形狀的機(jī)翼能夠提供最大的升力?何種多項(xiàng)式最能擬合給定數(shù)據(jù)?哪種配置的聚焦透鏡組合能夠生成最銳利的圖像?這些問(wèn)題是研究人員在工作中經(jīng)常會(huì)碰到的基本問(wèn)題,毫無(wú)疑問(wèn),他們需要一種魯棒性的優(yōu)化算法去解決這些問(wèn)題。
一般來(lái)說(shuō),解決一個(gè)難度大的“優(yōu)化問(wèn)題”,其問(wèn)題本身不應(yīng)很難,如,一個(gè)擁有豐富機(jī)械理論知識(shí)的結(jié)構(gòu)工程師可能不需要具備同樣程度的優(yōu)化知識(shí)去修改他的設(shè)計(jì)。除了易于使用之外,一個(gè)全局優(yōu)化算法應(yīng)能足夠有效地收斂到真實(shí)最優(yōu)解。此外,搜尋解的計(jì)算時(shí)間不應(yīng)過(guò)長(zhǎng)。因此,一個(gè)真正有效的全局優(yōu)化算法應(yīng)該實(shí)現(xiàn)簡(jiǎn)單、易于使用、可靠快速。
差分進(jìn)化算法(Differential Evolution,以下簡(jiǎn)稱DE)正是這種方法。自1995年發(fā)表以來(lái),DE被譽(yù)為一種非常高效的全局優(yōu)化器。但DE并非萬(wàn)能,它良好的可靠性及魯棒性需要每個(gè)科學(xué)家及工程師的智慧。
DE源于遺傳退火算法(Genetic Annealing Algorithm),由Kenneth Price提出并發(fā)表在Dr.Dobb′s Journal (DDJ) 1994年10月刊上,這是一本很流行的程序員雜志。遺傳退火算法是一種基于種群的組合優(yōu)化算法,實(shí)現(xiàn)了經(jīng)由閾值的退火準(zhǔn)則。遺傳退火算法在DDJ上出現(xiàn)后,Ken與Rainer Storn博士(來(lái)自西門子當(dāng)時(shí)在加州伯克利大學(xué)的國(guó)際計(jì)算機(jī)科學(xué)研究所,現(xiàn)就職于德國(guó)慕尼黑的R&S公司(Rohde & Schwarz GmbH)一起應(yīng)用遺傳退火算法解決了切比雪夫多項(xiàng)式擬合問(wèn)題(Chebyshev polynomial fitting problem)。而很多人認(rèn)為用一種通用的優(yōu)化算法確定切比雪夫多項(xiàng)式的系數(shù)是一項(xiàng)非常困難的任務(wù)。
Ken最終用遺傳退火算法解決了五維切比雪夫問(wèn)題,但收斂過(guò)程很慢且有效的控制參數(shù)很難確定。在此之后,Ken改進(jìn)了遺傳退火算法,使用浮點(diǎn)數(shù)替換位串編碼并用算術(shù)運(yùn)算替換邏輯運(yùn)算,然后他發(fā)現(xiàn)了DE的基礎(chǔ)差分變異操作。綜合起來(lái),這些有效的改進(jìn)形成了一種數(shù)值優(yōu)化的組合算法,即首次迭代DE。為了更好地適應(yīng)并行計(jì)算機(jī)體系,Rainer提出創(chuàng)建單獨(dú)的父代種群和子代種群。不同于遺傳退火算法,DE在處理33維切比雪夫多項(xiàng)式多項(xiàng)式系數(shù)問(wèn)題時(shí)并不困難。
DE的有效性并不只在切比雪夫多項(xiàng)式中得到了證明,在許多其他函數(shù)測(cè)試中也有不俗的表現(xiàn)。1995年,Rainer和Ken在ICSI的技術(shù)報(bào)告TR95012中發(fā)表了早期的研究結(jié)果:“差分進(jìn)化:一種用于求解連續(xù)空間中全局優(yōu)化的簡(jiǎn)單、有效的自適應(yīng)模式”(Differential Evolution—A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces);诓罘诌M(jìn)化算法的成功表現(xiàn),Rainer和Ken參加了1996年5月在日本名古屋市同時(shí)舉辦的首屆國(guó)際進(jìn)化算法大賽(ICEO)和IEEE國(guó)際進(jìn)化計(jì)算會(huì)議。DE算法取得了第三名的佳績(jī),雖然前兩名的算法在競(jìng)賽函數(shù)測(cè)試中得分很高,但這兩種算法不夠靈活,不能定義為通用的優(yōu)化算法。排名第一位的算法只適用于可分量的競(jìng)賽函數(shù),而排名第二的算法因要計(jì)算拉丁方而無(wú)法處理大量參數(shù)。受此鼓舞,Rainer與Ken于1997年4月在DDJ上又發(fā)表了一篇名為Different Evolution—A Simple Evolution Strategy for Fast Optimization的文章,文章深受好評(píng),并將DE介紹給全世界的讀者。
前言前言許多研究者閱讀了Rainer與Ken在1997年12月發(fā)表在The Journal of Global Optimization雜志上的文章Differential Evolution—A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces, 文章給出了大量DE在各種測(cè)試函數(shù)中魯棒性的實(shí)驗(yàn)性證據(jù)。大約在同一時(shí)期,Rainer建立了一個(gè)DE的網(wǎng)站(http://www.icsi.berkeley.edu/~storn/code/html),該網(wǎng)站有DE的詳細(xì)代碼、DE的應(yīng)用及改進(jìn)。
Ken參加了于1997年4月在美國(guó)印第安納州的印第安納波利斯舉辦的第二屆國(guó)際進(jìn)化算法大賽(ICEO),由于種種原因?qū)е赂?jìng)賽結(jié)果未公開,但DE表現(xiàn)優(yōu)秀。在本次會(huì)議中,Ken遇見了David博士,隨后邀請(qǐng)他撰寫了DE的概要介紹,名為New Ideas in Optimization(1999)。從此以后,Ken專注于精煉DE算法,并進(jìn)行理論研究來(lái)解釋算法性能。Rainer致力于在有限資源設(shè)備上實(shí)現(xiàn)DE,并開發(fā)了多種編程語(yǔ)言的軟件應(yīng)用程序。此外Rainer還將DE作為高效工具應(yīng)用在濾波器設(shè)計(jì)、中心設(shè)計(jì)和組合優(yōu)化問(wèn)題中。
芬蘭的Jouni Lampinen教授(拉彭蘭塔理工大學(xué),芬蘭,拉彭蘭塔)于1998年開始研究DE。除了對(duì)DE的理論有所貢獻(xiàn)外,他還證明了DE在機(jī)械工程應(yīng)用中的成效,Jouni也針對(duì)特別需求的約束多目標(biāo)優(yōu)化問(wèn)題設(shè)計(jì)了簡(jiǎn)單高效的DE自適應(yīng)算法。Jouni還建立了DE的文獻(xiàn)目錄網(wǎng)站(http://www.lut.fi/~jlampine/debiblio.html)。
就像DE算法一樣,本書的目的是使讀者對(duì)DE便于理解和應(yīng)用。本書主要講解了DE的工作原理,及適合于在哪些場(chǎng)合使用。第1章“差分進(jìn)化的研究動(dòng)機(jī)”,以一個(gè)常見的優(yōu)化問(wèn)題開始,通過(guò)對(duì)傳統(tǒng)方法優(yōu)劣的討論
目錄
前言
第1章差分進(jìn)化的研究動(dòng)機(jī)1
11參數(shù)優(yōu)化引論1
111引言1
112單點(diǎn)求導(dǎo)型優(yōu)化4
113單點(diǎn)非求導(dǎo)型的優(yōu)化及步長(zhǎng)問(wèn)題8
12局部?jī)?yōu)化與全局優(yōu)化對(duì)比11
121模擬退火12
122多點(diǎn)求導(dǎo)型方法13
123多點(diǎn)非求導(dǎo)型方法14
124差分進(jìn)化的第一印象21
參考文獻(xiàn)25
第2章差分進(jìn)化算法28
21引言28
211種群結(jié)構(gòu)28
212初始化28
213變異29
214交叉29
215選擇30
216初識(shí)差分進(jìn)化算法31
217可視化DE32
218注釋36
22參數(shù)表示36
221二進(jìn)制比特串36
222浮點(diǎn)數(shù)37
223浮點(diǎn)約束39
23初始化39
231初始化邊界40
232初始化分布42
24基向量選擇46
241選擇基向量索引(r0)46
242一對(duì)一基向量選擇47
243幾種隨機(jī)基索引選擇方法的比較48
244退化向量組合49
245索引值互異51
246測(cè)試退化組合的影響:球面函數(shù)52
247偏基向量選擇方案54
25差分變異54
251變異縮放因子55
252隨機(jī)化縮放因子58
26重組66
261交叉66
目錄目錄262Cr在優(yōu)化中的作用70
263算術(shù)重組75
264相圖79
265異或算法83
27選擇84
271生存準(zhǔn)則85
272錦標(biāo)賽選擇86
273一對(duì)一生存(者)準(zhǔn)則87
274局部選擇和全局選擇的比較88
275置換選擇的不變性89
276依賴交叉的選擇壓力89
277并行性能90
278延伸90
28終止條件91
281達(dá)到目標(biāo)91
282限制代數(shù)91
283統(tǒng)計(jì)種群92
284限制時(shí)間92
285人工監(jiān)測(cè)92
286特定應(yīng)用92
參考文獻(xiàn)92
第3章差分進(jìn)化的標(biāo)準(zhǔn)測(cè)試97
31關(guān)于測(cè)試97
32性能評(píng)估98
33幾種DE的比較100
331算法100
332測(cè)試集102
333相圖103
334小結(jié)110
34DE與其他優(yōu)化算法的比較113
341可比的性能:針對(duì)30維函數(shù)113
342比較研究:非約束優(yōu)化120
343其他問(wèn)題域上的性能比較123
344基于應(yīng)用的性能比較126
35總結(jié)131
參考文獻(xiàn)131
第4章問(wèn)題領(lǐng)域138
41引言138
42函數(shù)及參數(shù)量化138
421均勻量化138
422非均勻量化139
423目標(biāo)函數(shù)量化140
424參數(shù)量化142
425混合變量145
43約束優(yōu)化145
431邊界約束146
432不等式約束148
433等式約束156
44組合問(wèn)題162
441旅行商問(wèn)題164
442置換矩陣方法164
443相對(duì)位置索引165
444Onwubolu方法166
445鄰接矩陣方法167
446總結(jié)169
45設(shè)計(jì)中心問(wèn)題171
451發(fā)散、自導(dǎo)向性和池化171
452設(shè)計(jì)中心的計(jì)算173
46多目標(biāo)優(yōu)化174
461目標(biāo)函數(shù)加權(quán)和175
462Pareto優(yōu)化175
463Pareto前沿的兩個(gè)例子176
464優(yōu)化多目標(biāo)的適應(yīng)性DE178
47動(dòng)態(tài)目標(biāo)函數(shù)182
471穩(wěn)定優(yōu)化183
472不穩(wěn)定優(yōu)化185
參考文獻(xiàn)186
第5章架構(gòu)和計(jì)算環(huán)境191
51基于多處理器的差分進(jìn)化算法191
511背景191
512相關(guān)工作191
513標(biāo)準(zhǔn)模型的缺點(diǎn)194
514改進(jìn)的標(biāo)準(zhǔn)模型194
515主處理器195
52基于資源有限設(shè)備的差分進(jìn)化算法198
521隨機(jī)數(shù)198
522排列數(shù)生成器200
523高效的排序202
524內(nèi)存節(jié)省型的差分進(jìn)化算法202
參考文獻(xiàn)204
第6章計(jì)算機(jī)編碼206
61差分進(jìn)化的MATLAB實(shí)現(xiàn)——DeMat206
611DeMat的總體結(jié)構(gòu)206
612命名和代碼約定207
613數(shù)據(jù)流程圖207
614怎樣使用圖形210
62DeWin——Windows下使用C語(yǔ)言的DE212
621DeWin總體的結(jié)構(gòu)212
622命名和代碼規(guī)范215
623數(shù)據(jù)流程圖216
624怎樣使用圖形217
625graphicsh的功能219
63隨書光盤上的軟件220
參考文獻(xiàn)221
第7章應(yīng)用222
71遺傳算法和相關(guān)技術(shù)優(yōu)化SiH簇:差分進(jìn)化的優(yōu)點(diǎn)分析223
711引言223
712系統(tǒng)模型224
713計(jì)算細(xì)節(jié)225
714結(jié)果和討論226
715總結(jié)231
參考文獻(xiàn)231
72差分進(jìn)化在非成像光學(xué)設(shè)計(jì)中的應(yīng)用232
721引言233
722目標(biāo)函數(shù)233
723逆向工程方法檢驗(yàn)235
724更難的問(wèn)題:擴(kuò)展源237
725總結(jié)238
參考文獻(xiàn)239
73工業(yè)壓縮機(jī)供應(yīng)系統(tǒng)的優(yōu)化239
731引言239
732測(cè)試問(wèn)題的背景信息240
733系統(tǒng)優(yōu)化240
734需求概況241
735改進(jìn)的差分進(jìn)化及擴(kuò)展DE的通性241
736數(shù)據(jù)庫(kù)中的組件選擇242
737交叉方法242
738測(cè)試步驟245
739獲取100%的確定結(jié)果246
7310結(jié)果246
7311總結(jié)247
參考文獻(xiàn)247
74基于差分進(jìn)化算法的多傳感器融合的極小化表示248
741引言248
742多傳感器融合的極小化表示250
743用差分進(jìn)化解決多傳感器融合253
744實(shí)驗(yàn)結(jié)果255
745對(duì)比二進(jìn)制遺傳算法260
746總結(jié)262
參考文獻(xiàn)263
75測(cè)定地震震源:差分進(jìn)化算法的一個(gè)挑戰(zhàn)265
751引言265
752方向性問(wèn)題解決方案的簡(jiǎn)要說(shuō)明267
753人造定位測(cè)試268
754收斂屬性269
755總結(jié)271
參考文獻(xiàn)272
76并行差分進(jìn)化在3D醫(yī)學(xué)