粒子群演算法(2)—-標準的粒子群演算法

來源:互聯網
上載者:User

 標準的粒子群演算法

          在上一節的敘述中,唯一沒有給大家介紹的就是函數的這些隨機的點(粒子)是如何運動的,只是說按照一定的公式更新。這個公式就是粒子群演算法中的位置速度更新公式。下面就介紹這個公式是什麼。在上一節中我們求取函數y=1-cos(3*x)*exp(-x)的在[0,4]最大值。並在[0,4]之間放置了兩個隨機的點,這些點的座標假設為x1=1.5; x2=2.5;這裡的點是一個標量,但是我們經常遇到的問題可能是更一般的情況--x為一個向量的情況,比如二維的情況 z=2*x1+3*x22的情況。這個時候我們的每個粒子為二維,記粒子P1=(x11,x12),P2=(x21,x22),P3=(x31,x32),......Pn=(xn1,xn2)。這裡n為粒子群群體的規模,也就是這個群中粒子的個數,每個粒子的維數為2。更一般的是粒子的維數為q,這樣在這個種群中有n個粒子,每個粒子為q 維。

       由n個粒子組成的群體對Q維(就是每個粒子的維數)空間進行搜尋。每個粒子表示為:xi=(xi1,xi2,xi3,...,xiQ),每個粒子對應的速度可以表示為vi=(vi1,vi2,vi3,....,viQ),每個粒子在搜尋時要考慮兩個因素:

1。自己搜尋到的曆史最優值 pi ,pi=(pi1,pi2,....,piQ),i=1,2,3,....,n。

2。全部粒子搜尋到的最優值pg,pg=(pg1,pg2,....,pgQ),注意這裡的pg只有一個。

下面給出粒子群演算法的位置速度更新公式:

        這裡有幾個重要的參數需要大家記憶,因為在以後的講解中將會經常用到:

它們是:

是保持原來速度的係數,所以叫做慣性權重。

是粒子跟蹤自己曆史最優值的權重係數,它表示粒子自身的認識,所以叫“認知”。通常設定為2。

是粒子跟蹤群體最優值的權重係數,它表示粒子對整個群體知識的認識,所以叫做“社會知識”,經常叫做“社會”。通常設定為2。

是[0,1]區間內均勻分布的隨機數。

是對位置更新的時候,在速度前面加的一個係數,這個係數我們叫做約束因子。通常設定為1。

    這樣一個標準的粒子群演算法就結束了。

下面對整個基本的粒子群的過程給一個簡單的圖形表示:

判斷終止條件可是設定適應值到達一定的數值或者迴圈一定的次數。

         注意:這裡的粒子是同時跟蹤自己的曆史最優值與全域(群體)最優值來改變自己的位置預速度的,所以又叫做全域版本的標準粒子群最佳化演算法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.