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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

粒子群算法通识

發(fā)布時(shí)間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 粒子群算法通识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

粒子群算法(Particle swarm optimization,PSO)是模擬群體智能所建立起來的一種優(yōu)化算法,主要用于解決最優(yōu)化問題(optimization problems)。1995年由 Eberhart和Kennedy 提出,是基于對(duì)鳥群覓食行為的研究和模擬而來的。

假設(shè)一群鳥在覓食,在覓食范圍內(nèi),只在一個(gè)地方有食物,所有鳥兒都看不到食物(即不知道食物的具體位置。當(dāng)然不知道了,知道了就不用覓食了),但是能聞到食物的味道(即能知道食物距離自己是遠(yuǎn)是近。鳥的嗅覺是很靈敏的)。

假設(shè)鳥與鳥之間能共享信息(即互相知道每個(gè)鳥離食物多遠(yuǎn)。這個(gè)是人工假定,實(shí)際上鳥們肯定不會(huì)也不愿意),那么最好的策略就是結(jié)合自己離食物最近的位置和鳥群中其他鳥距離食物最近的位置這2個(gè)因素綜合考慮找到最好的搜索位置。
粒子群算法與《遺傳算法》等進(jìn)化算法有很多相似之處。也需要初始化種群,計(jì)算適應(yīng)度值,通過進(jìn)化進(jìn)行迭代等。但是與遺傳算法不同,它沒有交叉,變異等進(jìn)化操作。與遺傳算法比較,PSO的優(yōu)勢(shì)在于很容易編碼,需要調(diào)整的參數(shù)也很少。

一、基本概念

與遺傳算法類似,PSO也有幾個(gè)核心概念。

  • 粒子(particle):一只鳥。類似于遺傳算法中的個(gè)體。
  • 種群(population):一群鳥。類似于遺傳算法中的種群。
  • 位置(position):一個(gè)粒子(鳥)當(dāng)前所在的位置。
  • 經(jīng)驗(yàn)(best):一個(gè)粒子(鳥)自身曾經(jīng)離食物最近的位置。
  • 速度(velocity ):一個(gè)粒子(鳥)飛行的速度。
  • 適應(yīng)度(fitness):一個(gè)粒子(鳥)距離食物的遠(yuǎn)近。與遺傳算法中的適應(yīng)度類似。
  • 二、粒子群算法的過程

    可以看出,粒子群算法的過程比遺傳算法還要簡(jiǎn)單。
    1)根據(jù)問題需要,隨機(jī)生成粒子,粒子的數(shù)量可自行控制。
    2)將粒子組成一個(gè)種群。這前2個(gè)過程一般合并在一起。
    3)計(jì)算粒子適應(yīng)度值。
    4)更新種群中每個(gè)粒子的位置和速度。
    5)滿足退出條件就退出,不滿足就轉(zhuǎn)向步驟3)。

    三、核心—“速度更新”

    從上面PSO的算法流程中可以看出,核心步驟是更新種群中每個(gè)粒子的位置和速度,而速度的更新又是核心中的核心。

    下面直接給出速度更新公式:

    new_v=w?v+c1?rand()?(pbest?position)+c2?rand()?(gbest?position)

    v為粒子當(dāng)前的速度,w為慣性因子(有速度就有運(yùn)動(dòng)慣性)。rand()為隨機(jī)數(shù)生成函數(shù),能夠生成0-1之間的隨機(jī)數(shù)。position為粒子當(dāng)前的位置,pbest為本粒子歷史上最好的位置,gbest為種群中所有粒子中當(dāng)前最好的位置。c1和c2表示學(xué)習(xí)因子,分別向本粒子歷史最好位置和種群中當(dāng)前最好位置進(jìn)行學(xué)習(xí)。

    參數(shù)好像也有很多,需要設(shè)置的是3個(gè),w,c1和c2,但實(shí)際上一般都設(shè)置c1=c2=1,w一般設(shè)在0.5左右。所以也沒什么好設(shè)置的。

    從物理原理上來解釋這個(gè)速度更新公式,該公式由加號(hào)分割為3個(gè)部分:

    第一部分是慣性保持部分,粒子沿著當(dāng)前的速度和方向慣性飛行,不會(huì)偏移,直來直去。(牛頓運(yùn)動(dòng)學(xué)第一定理)。

    第二部分是自我認(rèn)知部分,粒子受到自身歷史最好位置的吸引力,有回到自身歷史最好位置的意愿。(牛頓運(yùn)動(dòng)學(xué)第二定理)。

    第三部分是社會(huì)認(rèn)知部分,粒子處在一個(gè)社會(huì)中(種群中),社會(huì)上有更好的粒子(成功人士),粒子受到成功人士的吸引力,有去社會(huì)中成功人士位置的意愿。(牛頓運(yùn)動(dòng)學(xué)第二定理)。

    速度更新公式的意義就是粒子在自身慣性和2種外力作用下,速度和方向發(fā)生的改變。

    注意這3部分都有重要含義。沒有慣性部分,粒子們將很快向當(dāng)前的自身最優(yōu)位置和全局最優(yōu)粒子位置靠攏,變成了一個(gè)局部算法了。有了慣性,不同粒子將有在空間中自由飛行的趨勢(shì),能夠在整個(gè)搜索區(qū)域內(nèi)尋找食物(最優(yōu)解)。而沒有自我認(rèn)知部分,粒子們將向當(dāng)前的全局最優(yōu)粒子位置靠攏,容易陷入局部最優(yōu)。沒有社會(huì)認(rèn)知部分,粒子們各自向自身最優(yōu)位置靠攏,各自陷入自身最優(yōu),整個(gè)搜索過程都不收斂了。

    最后,有了速度更新公式,位置更新就簡(jiǎn)單了:

    new_position=position+new_v?t
    t一般默認(rèn)取1。 這里寫鏈接內(nèi)容

    總結(jié)

    以上是生活随笔為你收集整理的粒子群算法通识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。