城市群算法 (City Group Optimization, 簡稱CGO)是一個由城市群的空間結構演變而啟發的算法。在2015年由楊一君與段海濱教授提出。
基本介紹
- 中文名:城市群算法
- 外文名:City Group Optimization
- 原理:模仿城市群的空間拓撲結構
定義,變異策略,算法偽代碼,最佳化過程圖,結果對比,
定義
城市群最佳化算法 (City Group Optimization) 是通過模擬城市群在發展過程中的空間結構而提出的一種隨機搜尋算法。它屬於群體智慧型算法 (Swarm Intelligence Algorithm) 中的一種。
變異策略
城市群算法在解的變異策略上與差分進化算法 (Differential Evolution) 相類似,但在變異策略的拓撲結構上,城市群算法模擬了城市群發展過程中的空間結構,借鑑了城市群中的中心地理論。為每一個解的變異附加上一個參考中心點,這樣可以提高搜尋過程中的指向性,減少隨機性,提高搜尋效率。具體的變異策略如下:
![變異策略 變異策略](/img/8/692/nBnauITN4IDMxcDNihjM3ETMiN2MyIDZ0ETN4MGZ4YGZzYWO3MmYzY2YxczLtVGdp9yYpB3LltWahJ2Lt92YuUHZpFmYuMmczdWbp9yL6MHc0RHa.jpg)
在公式中,rand表示一個0-1之間的隨機數,P表示一個 (-1)-1之間的隨機數,G表示變異過程中的參考中心點,它是一個與解同維度的向量。在算法的具體實現中,參考中心點的更新可以採用不同策略,如高斯變異,柯西變異等等。
算法偽代碼
procedure CGO1..初始化參數2....對每一個解執行變異操作3..對所有變異後的解進行精英選擇4..更新中心參考點5..若滿足結束條件則執行第6步,否則跳回第2步6..結束 輸出最優解 end
最佳化過程圖
下面,用一個實例展示該算法的最佳化的過程。如下圖所示:
結果對比
使用 CEC 2013 的標準測試函式對城市群算法進行測試,並將實驗結果與經典的粒子群算法(PSO)進行對比。體現出城市群算法所具有的優越性。對比結果如下:
![CGO與PSO的對比結果 CGO與PSO的對比結果](/img/c/c5e/nBnauIjYxEWOmhDZmBTM1MGNjFTY3IDO3IGZ1MzMjBDM2ImN0IjNmNjNhZzLtVGdp9yYpB3LltWahJ2Lt92YuUHZpFmYuMmczdWbp9yL6MHc0RHa.jpg)