一種基於分解的多目標優化演算法 MOEA D

2021-10-04 20:21:17 字數 1912 閱讀 1244

本次實驗以測試函式zdt1為例,用moea/d演算法得到最佳帕累託解集。

帕累託解

在約束空間之內,再也找不到比解a更好的解了,那麼a就是其中乙個帕累託最優解。

zdt1測試函式

是乙個兩目標問題,其函式如下:

moea/d是一種基於分解的多目標進化演算法,它將多目標優化問題轉化為一系列單目標優化子問題,然後利用一定數量相鄰問題的資訊,採用進化演算法對這些子問題同時進行優化。由於分解操作的存在,該方法在保持解的分布性方面有著很大優勢,而通過分析相鄰問題的資訊來優化,能避免陷入區域性最優。

本文moea/d採用的分解策略:切比雪夫法。

下邊簡述一下相關基本概念,不懂概念可以暫時有個印象,本文著重寫演算法過程,建議根據演算法進行理解,另外,由於以下部分涉及公式較多,本人在word寫的,為防止亂碼,故截圖。

切比雪夫法

演算法大體框架

用moea/d演算法解決測試問題:

權重向量weights矩陣如下,每個種群的距離可對權重向量借助歐式距離得出。

distance是得出的距離矩陣:

對於101個種群來講,每乙個種群都有離它距離最近的t個鄰居,而neighbour存的便是離每個種群最近的種群編號!!!

隨機生成種群chrom矩陣,1個種群,30個自變數,故101x30,由於自變數均在[0,1]之間,所以矩陣值均在[0,1]之間。

而將每個種群的自變數代入zdt1函式便可得到目標函式1即f1(x)和目標函式2即f2(x):如下為目標矩陣obj

z矩陣是拿到每個目標函式的最小值:

以對當前種群(oldpoint種群)進行操作為例:

randarray為隨機生成的1xv矩陣,且值在[0,1],可以看到如果randarray對應值《變異率,則在select中設為1,否則置0

再對select為1的自變數值進行變異,結果就在oldpoint種群的基礎上得到了新種群newpoint:

因為得到的新種群有可能自變數值超過[0,1],所以將不合法的值替換為邊界值。

這裡用正太分布產生的隨機值矩陣可由以下函式得到:

newparam = min(max(normrnd(newpoint,sigma),min_range),max_range);

這裡切比雪夫聚合即由切比雪夫函式計算結果即可。

這裡得到了由切比雪夫法分解策略得到的zdt1函式帕累託解集。

最後**在本人上傳的資源裡,基本每行都有注釋!!!童叟無欺!!!位址如下:

SRA 基於多指標的多目標優化隨機排序演算法

參考文獻 bingdong li,student member ieee,ke tang,senior member ieee,jinlong li,member ieee,and xin yao fellow,ieee stochastic ranking algorithm for many o...

基於Halcon的多目標模板匹配演算法

1.基於灰度值的模板匹配基本原理 模板匹配,顧名思義,需要乙個模板。然後在影象中尋找與模板能匹配得上的區域。halcon中,基於灰度值的模板匹配的演算法中,演算法的基本原理比較簡單,就是簡單的灰度比對。找出灰度值與模板區域相近的區域作為找到的目標區域,具體演算法如下 即,當error滿足閾值時,則該...

基於粒子群演算法的多目標搜尋

工程優化問題,大多數問題屬於多目標優化問題。相對於單目標優化問題,多目標優化問題的顯著特徵是優化各個目標使其同時達到綜合的最優值。然而,由於多個目標有花紋的各個目標之間往往是衝突的。多目標優化問題求解中最重要的概念是非劣解和非劣解集 非劣解 noninferior solution 在多目標優化問題...