轉:https://www.cnblogs.com/lomper/p/3831428.html
在工程運用中,經常是多准則和對目標的進行擇優設計。解決含多目標和多約束的優化問題稱為:多目標優化問題。經常,這些目標之間都是相互沖突的。如投資中的本金最少,收益最好,風險最小~~
多目標優化問題的一般數學模型可描述為:
Pareto最優解(Pareto Optimal Solution)
使用遺傳算法進行求解Pareto最優解:
- 權重系數變換法:
- 並列選擇法:
基本思想:
將種群全體按子目標函數的數目等分為子群體,對每一個子群體分配一個目標函數,進行擇優選擇,各自選擇出適應度高的個體組成一個新的子群體,然后將所有這些子群體合並成一個完整的群體,在這個群體里進行交叉變異操作,生成下一代完整群體,如此循環,最終生成Pareto最優解。如下圖:
- 排列選擇法:
基於Pareto最優個體的前提上,對群體中的各個個體進行排序,依據排序進行選擇,從而使拍在前面的Pareto最優個體將有更大的可能性進入下一代群體中。
- 共享函數法:
利用小生境遺傳算法的技術。算法對相同個體或類似個體是數目加一限制,以便能夠產生出種類較多的不同的最優解。
對於一個個體X,在它的附近還存在有多少種、多大程度相似的個體,是可以度量的,這種度量值稱為小生境數。計算方法:
s(d)為共享函數,它是個體之間距離d的單調遞減函數。d(X,Y)為個體X,Y之間的海明距離。
在計算出小生境數后,可以是小生境數較小的個體能夠有更多的機會被選中,遺傳到下一代群體中,即相似程度較小的個體能夠有更多的機會被遺傳到下一代群體中。
解決了多目標最優化問題中,使解能夠盡可能的分散在整個Pareto最優解集合內,而不是集中在其Pareto最優解集合內的某一個較小的區域上的問題。
- 混合法:
- 並列選擇過程:按所求多目標優化問題的子目標函數的個數,將整個群體均分為一些子群體,各個子目標函數在相應的子群體中產生其下一代子群體。
- 保留Pareto最優個體過程:對於子群體中的Pareto最優個體,不讓其參與個體的交叉和變異運算,而是直接保留到下一代子群體中。
- 共享函數處理過程:若所得到的Pareto最優個體的數量已經超過規定的群體規模,則使用共享函數來對它們進行挑選,以形成規定規模的新一代群體。