差分進化算法Python實現(xiàn)

本文you清華大學碩士大神金天撰寫,歡迎大家轉載,不過請保留這段版權信息,對本文內容有疑問歡迎聯(lián)系作者微信:jintianiloveu探討焕蹄,多謝合作~

導語

差分進化算法是一種尋優(yōu)算法,提出時間比遺傳算法阀溶,粒子群算法晚腻脏,但是我在實現(xiàn)差分進化算法的時候看不出任何牛逼之處,唯一我覺得牛逼的一點是不像遺傳算法一樣使用二進制編碼令人頭大银锻,實數(shù)編碼好理解一點永品,而且變異,交叉击纬,選擇這三大過程也很簡單鼎姐。本篇文章就是傳授老夫多年的科研裝逼手藝,如果覺得好掉弛,可以小小的贊一下症见,嘿嘿喂走。

洪荒初始-差分進化算法的步驟

差分進化算法和遺傳算法沒有任何區(qū)別殃饿,如果你甚至沒有聽過遺傳算法沒有關系,它只有簡單的以下幾步:

  • 初始化
    對于像進化差分這樣的貪婪算法來說芋肠,首先需要形成一個初始種群乎芳,就像采花高手一樣一開始喜歡廣撒網,網撒的好才不會有漏網之魚帖池。
  • 變異
    變異針對個體級別奈惑,變異的原理就是
h_i = x_g_without_i[1] + f*(x_g_without_i[2] - x_g_without_i[3])

這里的h_i指的是對上一代種群中第i個個體進行變異,變異方法是從上一代種群中睡汹,除了第i個個體以外的剩下個體中隨機抽取三個肴甸,按照上面的公式得到第i個的變異個體。

  • 交叉
    交叉操作主要針對每個個體囚巴,我們優(yōu)化的函數(shù)可能有多個變量原在,也就是多目標優(yōu)化,一個擁有x彤叉,y庶柿,z,w秽浇,f浮庐,g,b柬焕,k....這樣超多變量的函數(shù)給你優(yōu)化审残,你要是用高等數(shù)學的方法來尋找指定區(qū)間上的最優(yōu)點基本上不太可能梭域,這時候我們就需要進化差分算法,每個個體的元素個數(shù)就是要優(yōu)化的多目標數(shù)搅轿。
  • 選擇
    選擇操作當然就是根據(jù)適應度函數(shù)來決定我選取變異交叉后的個體還是保留原來的個體
  • 迭代
    重復之前的操作碰辅。

差分進化算法詳細講解

上面只是給大家一個感性的認識,真正你看了上面就理解了進化差分算法要么你牛逼要么我牛逼介时,不過為了把算法解釋清楚没宾,我決定在詳細講解一下

共識

首先我們要明確我們要優(yōu)化什么?優(yōu)化的量是什么沸柔?怎么跟差分進化算法里面的東西對應起來循衰?
我們要優(yōu)化的東西無非就是一個函數(shù),這個函數(shù)可能只有一個變量褐澎,也可能有兩個会钝,當然更多的情況是有很多參數(shù),比如一個量子對撞機控制系統(tǒng)工三,影響因素就很多迁酸,當然我們的進化算法還無法牛逼到處理辣么復雜的問題。
而函數(shù)的參數(shù)就是我們算法里面的個體俭正,參數(shù)的個數(shù)就是個體的元素個數(shù)奸鬓。對,就是這樣掸读。

還有啥

還有啥要說的呢串远,基本上沒有了,小學生應該也懂了儿惫,好了開始上代碼

Talk is cheap澡罚, show me the code

接下來開源進化差分算法的代碼,用python實現(xiàn)的喲肾请,如果代碼中有任何問題歡迎加我微信:jintianiloveu或者加入文章結尾二維碼群留搔。

Screen Shot 2016-10-11 at 10.44.32 AM.png
ECEEC40D57CF165D6E9AB7488C6C8685.jpg
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铛铁,隨后出現(xiàn)的幾起案子隔显,更是在濱河造成了極大的恐慌,老刑警劉巖避归,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣月,死亡現(xiàn)場離奇詭異,居然都是意外死亡梳毙,警方通過查閱死者的電腦和手機哺窄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人萌业,你說我怎么就攤上這事坷襟。” “怎么了生年?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵婴程,是天一觀的道長。 經常有香客問我抱婉,道長档叔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任蒸绩,我火速辦了婚禮衙四,結果婚禮上,老公的妹妹穿的比我還像新娘患亿。我一直安慰自己传蹈,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布步藕。 她就那樣靜靜地躺著惦界,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咙冗。 梳的紋絲不亂的頭發(fā)上沾歪,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音乞娄,去河邊找鬼瞬逊。 笑死,一個胖子當著我的面吹牛仪或,可吹牛的內容都是我干的。 我是一名探鬼主播士骤,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼范删,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拷肌?” 一聲冷哼從身側響起到旦,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巨缘,沒想到半個月后添忘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡若锁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年搁骑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡仲器,死狀恐怖煤率,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情乏冀,我是刑警寧澤蝶糯,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站辆沦,受9級特大地震影響昼捍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜肢扯,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一端三、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹃彻,春花似錦郊闯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谨履,卻和暖如春欢摄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笋粟。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工怀挠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人害捕。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓绿淋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尝盼。 傳聞我的和親對象是個殘疾皇子吞滞,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內容