日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法...

發布時間:2023/12/4 循环神经网络 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考資料

《精通MATLAB最優化計算(第二版)》

編程工具

Matlab 2019a

目錄

石中居士:最優化計算與Matlab實現——目錄?zhuanlan.zhihu.com


權重改進的粒子群算法

在微粒群算法的可調整參數中,慣性權重

是最重要的參數,較大的 有利于提高算法的全局搜索能力,而較小的 會增強算法的局部搜索能力,根據不同的權重變化公式,可得到不同的PSO算法,常見的有線性遞減權重法、自適應權重法、隨機權重法。


線性遞減權重法

  • 原理

由于較大的慣性因子有利于跳出局部極小點,便于全局搜索,而較小的慣性因子則有利于對當前的搜索區域進行精確局部搜索,以利于算法收斂,因此針對PSO算法容易早熟以及算法后期易在全局最優解附近產生振蕩現象,可以采用線性變化的權重,讓慣性權重從最大值

線性減小到最小值 , 隨算法迭代次數的變化公式為:

其中,

、 分別表示 的最大值和最小值, 表示當前迭代步數, 表示最大迭代步數,通常取 。
  • 算法步驟

線性遞減粒子群算法的基本步驟如下:

【1】隨機初始化種群中各微粒的位置和速度;

【2】評價每個微粒的適應度,將當前各微粒的位置和適應值存儲在各微粒的pbest中,將所有pbest中適應值最優個體的位置和適應值存儲于gbest中;

【3】用下式更新粒子的速度和位移:

【4】更新權重

【5】對每個微粒,將其適應值與其經歷過的最好位置作比較,如果較好,則將其作為當前的最好位置;比較當前所有pbest和gbest的值,更新gbest;

【6】若滿足停止條件(通常為預設的運算精度或迭代次數),搜索停止,輸出結果,否則返回【3】繼續搜索。

  • Matlab代碼與試算

用線性遞減權重的粒子群算法求函數

的最小值。其中粒子數取40,學習因子都取2,最大權重取0.9,最小權重取0.4,迭代步數取10000。

解:此函數的最小點為

,最小值為 。

建立目標函數文件fitness.m

fitness.m

function

test.m

[

LDW_PSO.m

function

命令行窗口

x_optimization

對于本例題中的函數而言,用線性遞減權重的粒子群算法求得了非常精確的最優點。但是在實際問題中,對于不同問題,其每次迭代所需的比例關系并不相同,所以

的線性遞減只對某些問題很有效。

此外,如果在進化初期搜索不到最優點,隨著

的逐漸減小,算法局部收斂能力加強,容易陷入局部最優;如果在進化初期探測到次好點,這時 的相對取小就可使算法很快搜索到最優點,而 的線性遞減降低了算法的收斂速度。

自適應權重法

  • 原理

為了平衡PSO算法的全局搜索能力和局部改良能力,還可采用非線性的動態慣性權重系數公式,其表達式如下:

其中

分別表示 的最大值和最小值, 表示粒子當前的目標函數值, 和 分別表示當前所有微粒的平均目標值和最小目標值。在上式中,慣性權重隨著微粒的目標函數值而自動改變,因此稱為自適應權重。

當各微粒的目標值趨于一致或者趨于局部最優時,將使慣性權重增加,而各微粒的目標值比較分散時,將使慣性權重減小,同時對于目標函數值優于平均目標值的微粒,其對應的慣性權重因子較小,從而保護了該微粒,反之對于目標函數值差于平均目標值的微粒,其對應的慣性權重因子較大,使得該微粒向較好的搜索區域靠攏。

  • 算法步驟

自適應權重粒子群算法的基本步驟如下:

【1】隨機初始化種群中各微粒的位置和速度;

【2】評價每個微粒的適應度,將當前各微粒的位置和適應值存儲在各微粒的pbest中,將所有pbest中適應值最優個體的位置和適應值存儲于gbest中;

【3】用下式更新粒子的速度和位移:

【4】更新權重

【5】對每個微粒,將其適應值與其經歷過的最好位置作比較,如果較好,則將其作為當前的最好位置;比較當前所有pbest和gbest的值,更新gbest;

【6】若滿足停止條件(通常為預設的運算精度或迭代次數),搜索停止,輸出結果,否則返回【3】繼續搜索。

  • Matlab代碼與試算

用自適應權重的粒子群算法求函數

的最小值。取粒子數為40,學習因子都取2,最大慣性權重取0.9,最小慣性權重取0.6,迭代步數取10000。

解:建立fitness.m文件

fitness.m

function

test.m

[

AW_PSO.m

function

命令行窗口

x_optimization =1.0e-06 *0.172784775909731-0.008767853535804f_optimization =0

本例題中的函數的最小點為

,最小值為0,自適應權重的粒子群算法求得的結果的精度還是可以的。


隨機權重法

  • 原理

將PSO算法中設定

為服從某種隨機分布的隨機數,這樣一定程度上可從兩方面來克服 的線性遞減所帶來的不足。

首先,如果在進化初期接近最好點,隨機

可能產生相對小的 值,加快算法的收斂速度,另外,如果在算法初期找不到最好點, 的線性遞減,使得算法最終收斂不到此最好點,而 的隨機生成可以克服這種局限。

計算公式如下:

其中

表示標準正態分布的隨機數, 表示0到1之間的隨機數。
  • 算法步驟

隨機權重粒子群算法的基本步驟如下:

【1】隨機初始化種群中各微粒的位置和速度;

【2】評價每個微粒的適應度,將當前各微粒的位置和適應值存儲在各微粒的pbest中,將所有pbest中適應值最優個體的位置和適應值存儲于gbest中;

【3】用下式更新粒子的速度和位移:

【4】更新權重

【5】對每個微粒,將其適應值與其經歷過的最好位置作比較,如果較好,則將其作為當前的最好位置;比較當前所有pbest和gbest的值,更新gbest;

【6】若滿足停止條件(通常為預設的運算精度或迭代次數),搜索停止,輸出結果,否則返回【3】繼續搜索。

  • Matlab代碼與試算

求下面函數的最小值

取粒子數為40,學習因子都取2,隨機權重平均值的最大值取0.8,隨機權重平均值的最小值取0.5,隨機權重平均值的方差取0.2,迭代步數取10000。

解:首先建立目標函數文件fitness.m文件

fitness.m

function

test.m

[

RW_PSO.m

function

命令行窗口

x_optimization =-0.0898420111454120.712656402204421f_optimization =-1.031628453489878

本題中的函數的理論最小點有兩個,分別為

和 ,最小值為 ,隨機權重的粒子群算法求得的結果精度還可以。

目錄

石中居士:最優化計算與Matlab實現——目錄?zhuanlan.zhihu.com

總結

以上是生活随笔為你收集整理的matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。