前言
提醒:
文章內容為方便作者自己后日復習與查閱而進行的書寫與發布,其中引用內容都會使用鏈接表明出處(如有侵權問題,請及時聯系)。
其中內容多為一次書寫,缺少檢查與訂正,如有問題或其他拓展及意見建議,歡迎評論區討論交流。
內容由AI輔助生成,僅經筆者審核整理,請甄別食用。
文章目錄
- 前言
- 🔍 一、外部存檔的作用概述
- 🧠 二、為什么需要外部存檔?
- 📦 三、外部存檔的工作機制(分步驟詳解)
- 1. **初始化時:**
- 2. **每一代更新時:**
- a. 合并當前粒子和存檔:
- b. 再次篩選**非支配解**:
- c. 如果存檔大小超出最大容量(如 50):
- 👨?🏫 四、外部存檔在算法中的角色舉例
- 🎯 五、MOPSO 中沒有外部存檔會怎樣?
- 🧩 六、擴展說明:常見外部存檔機制
- ? 七、小結
在多目標粒子群優化(MOPSO)算法中,外部存檔(External Archive) 是一個關鍵機制,用于存儲算法迭代過程中發現的非支配解(Pareto optimal solutions)。它是多目標優化中保持帕累托解集多樣性和精英性的核心組件。
🔍 一、外部存檔的作用概述
功能 | 說明 |
---|---|
? 儲存非支配解 | 存檔中只保留當前發現的“最優且互不支配”的解 |
? 引導粒子搜索 | 存檔中的解用作 領導者(leader) 引導粒子向 Pareto 前沿逼近 |
? 保持多樣性 | 通過裁剪機制(如擁擠距離),保持解的分布均勻 |
? 輸出最優前沿 | 算法終止后,外部存檔即為近似的 Pareto 最優解集 |
🧠 二、為什么需要外部存檔?
在單目標 PSO中,全局最優解是一個點,容易更新。
但在多目標優化中,不存在單一最優解,而是一個Pareto 最優解集:
- 解之間是互不可比較的(即不支配彼此)
- 所以不能簡單用一個
gbest
表示最優解 - 因此引入外部存檔來保存當前最優解集合(非支配解)
📦 三、外部存檔的工作機制(分步驟詳解)
1. 初始化時:
- 從初始種群中篩選出所有非支配解,放入存檔
Rep
數學判斷標準(Dominates):
a?b??i,ai≤bi且?j,aj<bj\mathbf{a} \prec \mathbf{b} \iff \forall i,\, a_i \leq b_i\quad \text{且} \quad \exists j,\, a_j < b_j a?b??i,ai?≤bi?且?j,aj?<bj?
2. 每一代更新時:
a. 合并當前粒子和存檔:
Rep = [Rep, particle];
b. 再次篩選非支配解:
Rep = GetNonDominated(Rep);
c. 如果存檔大小超出最大容量(如 50):
通過 ReduceArchive 執行“擁擠度裁剪”:
- 計算所有解之間的距離矩陣
- 平均距離大 = 分布稀疏 → 保留
- 平均距離小 = 密集 → 優先刪除
目的是增強分布均勻性,避免解集中在某些區域
👨?🏫 四、外部存檔在算法中的角色舉例
組件 | 單目標 PSO | 多目標 MOPSO |
---|---|---|
最優記錄 | 記錄單個 gbest | 維護非支配解集 Rep |
引導搜索 | 所有粒子參考同一個 gbest | 每個粒子隨機選一個 leader ∈ Rep |
收斂性保障 | 通過 gbest 傳導優秀解 | 通過 Rep 傳導帕累托前沿 |
多樣性控制 | 靠參數或變異 | 外部存檔裁剪機制(如擁擠度) |
🎯 五、MOPSO 中沒有外部存檔會怎樣?
- 📉 失去收斂性保障:非支配解不能被記錄,可能被新的劣解覆蓋
- 🎲 缺乏搜索方向:沒有合理
leader
引導粒子逼近 Pareto 前沿 - 🔁 粒子重復搜索:多個粒子盲目收斂到相近區域,降低解的多樣性
- 📈 最終結果無法展示:算法結束時沒有一組可供分析的 Pareto 解集
🧩 六、擴展說明:常見外部存檔機制
技術 | 功能 | 示例算法 |
---|---|---|
非支配排序 + 擁擠度裁剪 | 保留邊界與分布均勻性 | MOPSO、NSGA-II |
ε-支配存檔 | 保證解集均勻覆蓋 | ε-MOPSO |
網格機制(Grid Archive) | 在解空間建立網格增強多樣性 | MOPSO with Adaptive Grid |
? 七、小結
外部存檔在 MOPSO 中是不可或缺的精英保存機制,它具有以下關鍵功能:
- 🧠 保持非支配帕累托解集
- 🚀 引導粒子朝帕累托前沿搜索
- 🎨 保證解的分布多樣性
- 📊 提供最終優化結果