多目標(biāo)遺傳算法

本文最早發(fā)表于本人博客:http://www.gotoli.us/?p=1773

很多優(yōu)化問題是多目標(biāo)優(yōu)化問題,目標(biāo)之間一般都是互相沖突的较木。比如在公路路線設(shè)計中脆侮,需要兼顧至少兩個目標(biāo):1)路線經(jīng)過多的居民點她奥,方便大家出行敷硅,2)路線盡量少經(jīng)過居民點附近,減少土地征用和房屋拆遷費用鞠值。在遺傳算法出現(xiàn)之后媚创,有人提出了各種方法將遺傳算法應(yīng)用于多目標(biāo)優(yōu)化。多目標(biāo)遺傳算法按照選擇方法可以分為兩種類型:基于線性加權(quán)和基于Pareto排序彤恶。

1)基于線性加權(quán)的多目標(biāo)遺傳算法

這種算法的思路很簡單钞钙,將多目標(biāo)按照線性加權(quán)的方式轉(zhuǎn)化為單目標(biāo),然后應(yīng)用傳統(tǒng)遺傳算法求解声离,如下公式所示

其中w_i表示第i個目標(biāo)的權(quán)重芒炼,f_k表示歸一化之后的第i個目標(biāo)值。我們很容易知道术徊,這類方法的關(guān)鍵是怎么設(shè)計權(quán)重本刽。比如,Random Weight Genetic Algorithm (RWGA) 采用隨機權(quán)重的方式赠涮,每次計算適應(yīng)度都對所有個體隨機地產(chǎn)生不同目標(biāo)的權(quán)重子寓,然后進行選擇操作。 Vector-Evaluated Genetic Algorithm (VEGA) 也是基于線性加權(quán)的多目標(biāo)遺傳算法笋除。如果有K個目標(biāo)斜友,VEGA 會隨機地將種群分為K個同等大小子種群,在不同的子種群按照不同的目標(biāo)函數(shù)設(shè)定目標(biāo)值垃它,然后再進行選擇操作鲜屏。VEGA 實質(zhì)上是基于線性加權(quán)的多目標(biāo)遺傳算法。VEGA 是第一個多目標(biāo)遺傳算法国拇,開啟了十幾年的研究潮流洛史。

2)基于Pareto排序的多目標(biāo)遺傳算法

基于線性加權(quán)的多目標(biāo)遺傳算法給大家的感覺怪怪的,并不是真正多目標(biāo)優(yōu)化的實質(zhì)酱吝。那么什么是真正的多目標(biāo)優(yōu)化也殖。Pareto 在1986 年提出 Pareto 支配概念,其定義為:假設(shè)兩個解決方案 I1 和 I2务热,對所有目標(biāo)而言毕源,I1 均優(yōu)于 I2,則我們稱 I1 支配I2陕习。若 I1 沒有被其他解所支配霎褐,則 I1 稱為 Pareto 解。Pareto 解的集合被稱為Pareto front该镣。真正的多目標(biāo)優(yōu)化應(yīng)該求解出Pareto front冻璃,選擇Pareto front中的解應(yīng)該提交人工解決。基于Pareto 排序的多目標(biāo)遺傳算法便是致力求解出 Pareto front省艳。Multi Objective Genetic Algorithm (MOGA)娘纷、 Non -dominated Sorting Genetic Algorithm (NSGA) 和 improved Non-dominated Sorting Genetic Algorithm (NSGA-II) 都是常用的基于 Pareto 排序的多目標(biāo)遺傳算法。

基于 Pareto 排序的多目標(biāo)遺傳算法首先要解決的是適應(yīng)度函數(shù)設(shè)計問題跋炕。MOGA 采用的適應(yīng)度函數(shù)fitness(I) = 1 + nq(I)赖晶,其中nq(I)表示被個體 I 支配的個體數(shù)量。NSGA 和 NSGA-II 再采用另外一種計算適應(yīng)度函數(shù)的方法

  step 1: 令i=1
  step 2: 在種群 P 中找到所有不支配其他個體的個體辐烂,將它們的適應(yīng)度設(shè)為i遏插;
  step 3: 令i = i + 1
  step 4: 將step2中找到的個體從種群刪除。如果種群不為空纠修,則重新從step2開始執(zhí)行胳嘲;否則結(jié)束。

上面兩種適應(yīng)度函數(shù)都能夠挖掘種群中 Pareto 支配關(guān)系扣草,效果如下圖所示(左邊的圖表示 NSGA 和 NAGA-II 的適應(yīng)度函數(shù)了牛,右邊的圖是 MOGA 的適應(yīng)度函數(shù))。


基于Pareto排序的多目標(biāo)遺傳算法還有另一個關(guān)鍵點:我們要找的是 Pareto 解的集合辰妙,而不是一個 Pareto 解鹰祸,因此我們需要鼓勵多樣性。不同算法有不同鼓勵多樣性的手段密浑。MOGA 和 NSGA 采用的多樣性方法被稱為 fitness sharing 蛙婴。fitness sharing 方法首先用下面的公式計算不同個體之間的距離。


其中f_k{max}表示目前找到的最大k目標(biāo)值肴掷,同理可知f_k{min}敬锐。對于個體 I 背传,我們可以計算它的 niche count (求高手翻譯呆瞻,這個是啥玩意?)

再用個體的 niche count 調(diào)整個體的適應(yīng)度

NSGA-II采用的是另一種被稱為 crowding distance 的方法径玖。個體 I 的crowding distance 用 cd(I) 表示痴脾。適應(yīng)度值為i的個體用集合F_i表示。對于每個集合F_i梳星,我們執(zhí)行如下操作:

  step 1:對于每一個目標(biāo)k, 我們按照目標(biāo)值從小到大將集合F_i中個體排序赞赖;
  step 2:假設(shè)集合 F_i 中個體有l(wèi)個,則cd_k(I(1,k))和cd_k(I(l,k))等于無限冤灾,其他
  其中 I[i,k]表示按照第k個目標(biāo)值排在第i位的個體前域。
  step 3:計算cd(I) = \sum_{k=1}^{K}cd_k(I)。

計算得到每個個體的 crowding distance 之后韵吨,我們不用它去調(diào)整適應(yīng)度匿垄,而是用了一種別樣的選擇方法。我們隨機選擇兩個個體。如果兩個適應(yīng)度不同椿疗,則選擇適應(yīng)度大的個體漏峰;如果適應(yīng)度相同,則選擇 crowding distance 大的個體届榄。下圖就是 fitness sharing 和 crowding distance 的示意圖(左邊圖表示 fitness sharing, 右邊圖表示 crowding distance)浅乔。


自1985年VEGA發(fā)表之后,F(xiàn)onseca铝条、Deb 和 Goldberg 等大神引領(lǐng)著研究者們?yōu)榱烁玫亩嗄繕?biāo)遺傳算法貢獻自己的聰明才智靖苇,引發(fā)了一波研究潮流。時光荏苒攻晒,歲月如梭顾复。幾十年過去了,轉(zhuǎn)眼到了 2000 年后鲁捏,多目標(biāo)遺傳算法的坑大部分被填完芯砸,研究基本定型,便很難看到有影響力的多目標(biāo)遺傳算法研究了给梅。一篇 2006 年綜述對十幾年來的研究成果進行總結(jié)假丧,算是給多目標(biāo)遺傳算法的研究畫上了一句號。潮起了十幾年又潮落了动羽。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末包帚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子运吓,更是在濱河造成了極大的恐慌渴邦,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拘哨,死亡現(xiàn)場離奇詭異谋梭,居然都是意外死亡,警方通過查閱死者的電腦和手機倦青,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門瓮床,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人产镐,你說我怎么就攤上這事隘庄。” “怎么了癣亚?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵丑掺,是天一觀的道長。 經(jīng)常有香客問我述雾,道長街州,這世上最難降的妖魔是什么蓬豁? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮菇肃,結(jié)果婚禮上地粪,老公的妹妹穿的比我還像新娘。我一直安慰自己琐谤,他們只是感情好蟆技,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斗忌,像睡著了一般质礼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上织阳,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天眶蕉,我揣著相機與錄音,去河邊找鬼唧躲。 笑死造挽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弄痹。 我是一名探鬼主播饭入,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肛真!你這毒婦竟也來了谐丢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蚓让,失蹤者是張志新(化名)和其女友劉穎乾忱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體历极,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡窄瘟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了执解。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寞肖。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡纲酗,死狀恐怖衰腌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情觅赊,我是刑警寧澤右蕊,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站吮螺,受9級特大地震影響饶囚,放射性物質(zhì)發(fā)生泄漏帕翻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一萝风、第九天 我趴在偏房一處隱蔽的房頂上張望嘀掸。 院中可真熱鬧,春花似錦规惰、人聲如沸睬塌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揩晴。三九已至,卻和暖如春贪磺,著一層夾襖步出監(jiān)牢的瞬間硫兰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工寒锚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劫映,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓刹前,卻偏偏與公主長得像苏研,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腮郊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Funda T, El-Kassaby YA (2012) Seed orchard genetics. CAB ...
    董八七閱讀 872評論 0 2
  • 多目標(biāo)優(yōu)化問題詳解 2017年9月2日byxyjisaw 生活中 ,許多問題都是由相互沖突和影響的多個目標(biāo)組成摹蘑。人...
    jacke121閱讀 5,026評論 0 3
  • 本文最早發(fā)表在本人博客:http://www.gotoli.us/?p=1518 我們接著上面的例子。上面例子是一...
    algorithmdog閱讀 7,285評論 2 13
  • 外環(huán)路外轧飞,仰萬古長空衅鹿, 不見昨日望月。 佇聽蟬鳴过咬,戚戚滿別情大渤。 誤幾回,路際識君車掸绞, 爭知我泵三,凝思凌亂。 兩度春秋...
    四月天天閱讀 475評論 0 3
  • A.打開終端 打印代碼: B. 更換ruby鏡像: 終端輸入如下命令(把Ruby鏡像指向taobao衔掸,避免被墻烫幕,你...
    Mominglaile閱讀 416評論 0 0