粒子群演算法原理
① 為什麼要進行知識建模,知識建模的方法是什麼
1.為什麼要進行知識建模:因為知識建模通常是知識的邏輯體系化過程,主要指應用知識來解決各種工程問題,自動完成工程中各種繁瑣和重復的工作。
2.知識建模的方法:
一、主成分分析
降維,找到數據中的主成分,並利用這些主成分表徵原始數據,從而達到降維的目的。
1. 對樣本數據進行中心化處理;
2. 求樣本協方差矩陣;
3. 對協方差矩陣進行特徵值分解,將特徵值從大到小排列;
4. 取特徵值前 n 個最大的對應的特徵向量 W1, W2, …, Wn ,這樣將原來 m 維的樣本降低到 n 維。
通過 PCA ,就可以將方差較小的特徵給拋棄,這里,特徵向量可以理解為坐標轉換中新坐標軸的方向,特徵值表示在對應特徵向量上的方差,特徵值越大,方差越大,信息量也就越大。這也是為什麼選擇前 n 個最大的特徵值對應的特徵向量,因為這些特徵包含更多重要的信息。
PCA 是一種線性降維方法,這也是它的一個局限性。不過也有很多解決方法,比如採用核映射對 PCA 進行拓展得到核主成分分析(KPCA),或者是採用流形映射的降維方法,比如等距映射、局部線性嵌入、拉普拉斯特徵映射等,對一些 PCA 效果不好的復雜數據集進行非線性降維操作。
二、線性判別分析:還需要一個投影方向,適合帶類別信息。
三、獨立成分分析:PCA特徵轉換降維,提取的是不相關的部分,ICA獨立成分分析,獲得的是相互獨立的屬性。ICA演算法本質尋找一個線性變換 z = Wx,使得 z 的各個特徵分量之間的獨立性最大。
四、隨機森林:集成思想,涉及到決策樹和集成學習,將若干個弱分類器的分類結果進行投票選擇,從而組成一個強分類器。
隨機森林的既可以用於回歸也可以用於分類任務,並且很容易查看模型的輸入特徵的相對重要性。隨機森林演算法被認為是一種非常方便且易於使用的演算法,因為它是默認的超參數通常會產生一個很好的預測結果。超參數的數量也不是那麼多,而且它們所代表的含義直觀易懂。隨機森林有足夠多的樹,分類器就不會產生過度擬合模型。由於使用大量的樹會使演算法變得很慢,並且無法做到實時預測。一般而言,這些演算法訓練速度很快,預測十分緩慢。越准確的預測需要越多的樹,這將導致模型越慢。在大多數現實世界的應用中,隨機森林演算法已經足夠快,但肯定會遇到實時性要求很高的情況,那就只能首選其他方法。當然,隨機森林是一種預測性建模工具,而不是一種描述性工具。也就是說,如果您正在尋找關於數據中關系的描述,那建議首選其他方法。
五、FP-growth演算法:FP代表頻繁模式(Frequent Pattern)。
這里有幾點需要強調一下:
第一,FP-growth演算法只能用來發現頻繁項集,不能用來尋找關聯規則。
第二,FP-growth演算法發現頻繁集的效率比較高,Apriori演算法要對於每個潛在的頻繁項集都會掃描數據集來判定是否頻繁,FP-growth演算法只需要對數據集進行兩次掃描。這種演算法的執行速度要快於Apriori,卜悔御通常性能要好型岩兩個數量級以上。
第三,FP-growth演算法基於Apriori演算法構建,在完成相同任務的時候採用了一些不同技術。
發現頻繁項集的基本過程:
1、構建FP樹
2、從FP樹中挖掘頻繁項集
優點:一般要快於Apriori
缺點:實現比較困難,在某些數據集上性能會下降。
適用數據類型:標稱型數據。
六、粒子群演算法:優化、最優解
七、靈敏度分析:線性規劃問題
八、層次分析法:主要用於決策、確定權重
九、模擬退火演算法:在解空間隨機尋找目標函數的全局最優解
十、遺傳演算法:最優解,將方程求解問題轉化為生存問題。
十一、幾種問題:
P問題:P類問題就是所有復雜度為多項式時間的問題的集合。
NP問題:可以在多項式時間內驗證一個解是否正確的問題稱為NP問題。(它包括P問題)
十二、機理分析法:機理分析是根據對現實對象特性的認識,分析其因果關系,找出反映內部機理的規律。機理分析建模常用:常微分方程、偏微分方程、邏輯方法、比例方法、代數方法
建立微分方程模型時應用已知物理定律,可事半功倍。也可利用平衡與增長式微元法或者分析法。
求解常微分方程模型的常用方法:微分方程的數值解、微分方程的定性分析。
常微分方程數值解的定義:
在生產和科研中所處理的微分方程往往很復雜,且大多得不出一般解。而實際問題中對初值問題的求解,一般是要求得到在若干個點上滿足規定精確前攔度的近似值,或者得到一個滿足精確度要求的便於計算的表達式。
建立數值解法的一些途徑:
Ø 用差商代替導數
Ø 使用數值積分
Ø 使用泰勒公式,以此方法為基礎,有龍格-庫塔法、線性多步法等方法。
Ø 數值公式的精度
歐拉法是一階公式,改進的歐拉法是二階公式.
龍格-庫塔法有二階公式和四階公式.
線性多步法有四階亞當斯外插公式和內插公式.
雖然動態過程的變化規律一般要用微分方程建立的動態模型來描述,但是對於某些實際問題,建模的主要目的並不是要尋求動態過程每個瞬時的性態,而是研究某種意義下穩定狀態的特徵,特別是當時間充分長以後動態過程的變化趨勢。譬如在什麼情況下描述過程的變數會越來越接近某些確定的數值,在什麼情況下又會越來越遠離這些數值 而導致過程不穩定。
為了分析這種穩定與不穩定的規律常常不需要求解微分方程,而可以利用微分方程穩定性理論,直接研究平衡狀態的穩定性就行了。
十三、動態規劃: 動態規劃是用來解決多階段決策過程最優化的一種數量方法。其特點在於,它可以把一個n 維決策問題變換為幾個一維最優化問題,從而一個一個地去解決。
需指出:動態規劃是求解某類問題的一種方法,是考察問題的一種途徑,而不是一種演算法。必須對具體問題進行具體分析,運用動態規劃的原理和方法,建立相應的模型,然後再用動態規劃方法去求解。
多階段線性規劃典型為:1、生產決策問題2、機器負荷分配問題
能用動態規劃方法求解的多階段決策過程是一類特殊的多階段決策過程,即具有無後效性的多階段決策過程。
十四、有限差分方法:有限差分法求解流動控制方程的基本過程是:首先將求解區域劃分為差分網格,用有限個網格點代替連續的求解域,將待求解的流動變數(如密度、速度等)存儲在各網格點上,並將偏微分方程中的微分項用相應的差商代替,從而將偏微分方程轉化為代數形式的差分方程,得到含有離散點上的有限個未知變數的差分方程組。求出該差分方程組的解,也就得到了網格點上流動變數的數值解。
十六、幾種特徵工程技巧:
(1) 數據分箱
(2) 獨熱編碼
(3) 特徵哈希
(4) 嵌套法
(5) 取對數
(6) 特徵縮放與標准化
(7) 特徵交互
② pso是什麼
粒子群優化(Particle Swarm Optimization, PSO),又稱微粒群演算法
③ 優化演算法筆記(二)優化演算法的分類
(以下描述,均不是學術用語,僅供大家快樂的閱讀)
在分類之前,我們先列舉一下常見的優化演算法(不然我們拿什麼分類呢?)。
1遺傳演算法Genetic algorithm
2粒子群優化演算法Particle Swarm Optimization
3差分進化演算法Differential Evolution
4人工蜂群演算法Artificial Bee Colony
5蟻群演算法Ant Colony Optimization
6人工魚群演算法Artificial Fish Swarm Algorithm
7杜鵑搜索演算法Cuckoo Search
8螢火蟲演算法Firefly Algorithm
9灰狼演算法Grey Wolf Optimizer
10鯨魚演算法Whale Optimization Algorithm
11群搜索演算法Group search optimizer
12混合蛙跳演算法Shuffled Frog Leaping Algorithm
13煙花演算法fireworks algorithm
14菌群優化演算法Bacterial Foraging Optimization
以上優化演算法是我所接觸過的演算法,沒接觸過的演算法不能隨便下結論,知之為知之,不知為不知。其實到目前為止優化演算法可能已經有幾百種了,我們不可能也不需要全面的了解所有的演算法,而且優化演算法之間也有較大的共性,深入研究幾個之後再看其他優化演算法上手速度會灰常的快。
優化演算法從提出到現在不過50-60年(遺傳演算法1975年提出),雖種類繁多但大多較為相似,不過這也很正常,比較香蕉和人的基因相似度也有50%-60%。當然演算法之間的相似度要比香蕉和人的相似度更大,畢竟人家都是優化演算法,有著相同的目標,只是實現方式不同。就像條條大路通羅馬,我們可以走去,可以坐汽車去,可以坐火車去,也可以坐飛機去,不管使用何種方式,我們都在去往羅馬的路上,也不會說坐飛機去要比走去更好,交通工具只是一個工具,最終的方案還是要看我們的選擇。
上面列舉了一些常見的演算法,即使你一個都沒見過也沒關系,後面會對它們進行詳細的介紹,但是對後面的分類可能會有些許影響,不過問題不大,就先當總結看了。
再對優化演算法分類之前,先介紹一下演算法的模型,在筆記(一)中繪制了優化演算法的流程,不過那是個較為簡單的模型,此處的模型會更加復雜。上面說了優化演算法有較大的相似性,這些相似性主要體現在演算法的運行流程中。
優化演算法的求解過程可以看做是一個群體的生存過程。
有一群原始人,他們要在野外中尋找食物,一個原始人是這個群體中的最小單元,他們的最終目標是尋找這個環境中最容易獲取食物的位置,即最易存活下來的位置。每個原始人都去獨自尋找食物,他們每個人每天獲取食物的策略只有採集果實、製作陷阱或者守株待兔,即在一天之中他們不會改變他們的位置。在下一天他們會根據自己的策略變更自己的位置。到了某一天他們又聚在了一起,選擇了他們到過的最容易獲取食物的位置定居。
一群原始人=優化演算法中的種群、群體;
一個原始人=優化演算法中的個體;
一個原始人的位置=優化演算法中個體的位置、基因等屬性;
原始人變更位置=優化演算法中總群的更新操作;
該位置獲取食物的難易程度=優化演算法中的適應度函數;
一天=優化演算法中的一個迭代;
這群原始人最終的定居位置=優化演算法所得的解。
優化演算法的流程圖如下:
對優化演算法分類得有個標准,按照不同的標准分類也會得到不一樣的結果。首先說一下我所使用的分類標准(動態更新,有了新的感悟再加):
按由來分類比較好理解,就是該演算法受何種現象啟發而發明,本質是對現象分類。
可以看出演算法根據由來可以大致分為有人類的理論創造而來,向生物學習而來,受物理現象啟發。其中向生物學習而來的演算法最多,其他類別由於舉例有偏差,不是很准確,而且物理現象也經過人類總結,有些與人類現象相交叉,但仍將其獨立出來。
類別分好了,那麼為什麼要這么分類呢?
當然是因為要湊字數啦,啊呸,當然是為了更好的理解學習這些演算法的原理及特點。
向動物生存學習而來的演算法一定是一種行之有效的方法,能夠保證演算法的效率和准確性,因為,如果使用該策略的動物無法存活到我們可以對其進行研究,我們也無法得知其生存策略。(而這也是一種倖存者偏差,我們只能看到行之有效的策略,但並不是我們沒看到的策略都是垃圾,畢竟也發生過小行星撞地球這種小概率毀滅性事件。講個冷笑話開cou心一shu下:一隻小恐龍對他的小夥伴說,好開心,我最喜歡的那顆星星越來越亮了(完)。)但是由於生物的局限性,人們所創造出的演算法也會有局限性:我們所熟知的生物都生存在三維空間,在這些環境中,影響生物生存的條件比較有限,反應到演算法中就是這些演算法在解決較低維度的問題時效果很好,當遇到超高維(維度>500)問題時,結果可能不容樂觀,沒做過實驗,我也不敢亂說。
按更新過程分類相對復雜一點,主要是根據優化演算法流程中更新位置操作的方式來進行分類。更新位置的操作按我的理解可大致分為兩類:1.跟隨最優解;2.不跟隨最優解。
還是上面原始人的例子,每天他有一次去往其他位置狩獵的機會,他們採用何種方式來決定今天自己應該去哪裡呢?
如果他們的策略是「跟隨最優解」,那麼他們選取位置的方式就是按一定的策略向群體已知的最佳狩獵位置(歷史最佳)或者是當前群體中的最佳狩獵位置(今天最佳)靠近,至於是直線跑過去還是蛇皮走位繞過去,這個要看他們群體的策略。當然,他們的目的不是在最佳狩獵位置集合,他們的目的是在過去的途中看是否能發現更加好的狩獵位置,去往已經到過的狩獵地點再次狩獵是沒有意義的,因為每個位置獲取食物的難易程度是固定的。有了目標,大家都會朝著目標前進,總有一日,大家會在謀個位置附近相聚,相聚雖好但不利於後續的覓食容易陷入局部最優。
什麼是局部最優呢?假設在當前環境中有一「桃花源」,擁有上帝視角的我們知道這個地方就是最適合原始人們生存的,但是此地入口隱蔽「山有小口,彷彿若有光」、「初極狹,才通人。」,是一個難以發現的地方。如果沒有任何一個原始人到達了這里,大家向著已知的最優位置靠近時,也難以發現這個「桃源之地」,而當大家越聚越攏之後,「桃源」被發現的可能性越來越低。雖然原始人們得到了他們的解,但這並不是我們所求的「桃源」,他們聚集之後失去了尋求「桃源」的可能,這群原始人便陷入了局部最優。
如果他們的策略是「不跟隨最優解」,那麼他們的策略是什麼呢?我也不知道,這個應該他們自己決定。畢竟「是什麼」比「不是什麼」的范圍要小的多。總之不跟隨最優解時,演算法會有自己特定的步驟來更新個體的位置,有可能是隨機在自己附近找,也有可能是隨機向別人學習。不跟隨最優解時,原始人們應該不會快速聚集到某一處,這樣一來他們的選擇更具多樣性。
按照更新過程對上面的演算法分類結果如下
可以看出上面不跟隨最優解的演算法只有遺傳演算法和差分進化演算法,他們的更新策略是與進化和基因的重組有關。因此這些不跟隨最優解的演算法,他們大多依據進化理論更新位置(基因)我把他們叫做進化演算法,而那些跟隨群體最優解的演算法,他們則大多依賴群體的配合協作,我把這些演算法叫做群智能演算法。
目前我只總結了這兩種,分類方法,如果你有更加優秀的分類方法,我們可以交流一下:
目錄
上一篇 優化演算法筆記(一)優化演算法的介紹
下一篇 優化演算法筆記(三)粒子群演算法(1)
④ 粒子群演算法考研考嗎
考。粒子群演算法是在1995年由Eberhart博士和Kennedy博士一起提出的,是一種基於群體的隨機優化技術,考研時會考。考研在考智能計算及應用這一滑棗模塊時,涉及到進化計算鍵明概念、遺傳演算法概念與原理、粒子群算信亮拆法與蟻群演算法。
⑤ 粒子群演算法優化中Pbest,Gbest怎樣確定出來呢
Pbest是粒子本身經歷咐高銷過的念粗最優位置,Gbest是粒子群經歷過的最優位置。
則每次迭代中衡游,每個粒子獲得新位置的適應值與自身經歷過的最優位置和整個粒子群經歷過的最優位置進行比較,如果優,則更新Pbest或Gbest。
⑥ 緩慢的意思
緩慢詞語解釋:
⒈ 徐緩;不敏捷。
⒉ 怠慢。
一、緩慢反義詞
快速、迅速、火速、急促碰岩、敏捷、飛快、趕快、趕緊、快捷、急速、緊急、輕快
二、緩慢造句:
1、國家也一直在努力推動治理白色污染的科技攻關,但一些部門沒有引起足夠的重視,成為相關科研進展緩慢的深層障礙之一。
2、16平方公里……長期以來發展緩慢的鐵北紅山地區,將華麗轉身一躍成為城北的核心區。
3、針對遺傳型的歧視,只能通過啟發人們認識歷史上種族歧視的邪惡與現在可憎的種族歧視的日常事情,這是一個緩慢的過程。
4、就在這樣即將變得更淡漠的時候,那個從遙遠的夢境中突然伸出手臂,緩慢地摟住我的脖子的阿童木--它還有著經典的黑色發型和紅色著裝,用和我接觸的那部分外表,突然地把一切都包裹起來。重新落回那個對錢一無所知的過去,看見陽光下有個爸爸怎麼拿著新買的玩具,走過狹長的小道。
5、簡要介紹了基於模擬退火思想的粒子群演算法的基本原理,並將之應用於盲源分離算笑蠢御法中,以解決基本粒子群演算法收斂速度緩慢的問題。
6、重要的是,緩慢的勞動力市場復甦限制了勞動收入的增長,增加了對職位的穩定性和工作前景的不確定性,抑制了市場信心。
7、機器轟鳴聲中,粗壯的吊臂慢慢豎起,吊鉤緊緊抓起拴住船體的鋼纜,牽纜慢慢拉伸綳直,沉船開始緩慢翻轉。
8、大食蟻獸是貧齒目食蟻獸科,是一種專食蟻類為生的動物,性情溫和,行檔核動緩慢,一般不危害人畜。
9、據了解,梅林路「開膛破肚」幾個月來,施工進展緩慢,加上沒有明確標識,因此時常造成交通擁擠,市民怨言頗多。
⑦ 梯度下降法和粒子群優化演算法的區別
粒子群(PSO)演算法是近幾年來最為流行的進化演算法,最早是由Kenned和Eberhart於1995年提出.PSO 演算法和其他進化演算法類似,也採用「群體」和「進化」的概念,通過個體間的協作與競爭,實現復雜空間中最優解的搜索.PSO 先生成初始種群,即在可行解空間中隨機初始化一群粒子,每個粒子都為優化問題的一個可行解,並由目標函數為之確定一個適應值(fitness value).PSO 不像其他進化演算法那樣對於個體使用進化運算元,而是將每個個體看作是在n 維搜索空間中的一個沒有體積和重量的粒子,每個粒子將在解空間中運動,並由一個速度決定其方向和距離.通常粒子將追隨當前的最優粒子而運動,並經逐代搜索最後得到最優解.在每一代中,粒子將跟蹤兩個極值,一為粒子本身迄今找到的最優解 pbest ,另一為全種群迄今找到的最優解 gbest.由於認識到 PSO 在函數優化等領域所蘊含的廣闊的應用前景,在 Kenned 和 Eberhart 之後很多學者都進行了這方面的研究.目前已提出了多種 PSO改進演算法,並廣泛應用到許多領域。
⑧ pso的來源背景
為了說明粒子群優化演算法的發展和形成背景,首先介紹一下早期的簡單模型,即Boid(Bird-oid)模型。這個模型是為了模擬鳥群的行為而設計的,它也是粒子群優化演算法的直接來源。
一個最簡單的模型是這樣的:每一個鳥的個體用直角坐標繫上的點表示,隨機地給它們賦一個初速度和初位置,程序運行的每一步都按照「最近鄰速度匹配」規則,很快就會使得所有點的速度變得一樣。因為這個模擬太簡單而且遠離真實情況,於是在速度項中增加了一個隨機變數,即在迭代的每一步,除了滿足「最近鄰速度匹配」之外,每一步速度還要添加一個隨機變化的量,這樣使得整個模擬看起來更為真實。
Heppner設計了一個「谷地模型」來模擬鳥群的覓食行為。假設在平面上存在一個「谷地」,即食物所在地,鳥群開始時隨機地分散在平面上,為了尋覓食物所在地,它們按照如下規則運動:
首先假設谷地的位置坐標為(x0,y0),單個鳥的位置和速度坐標分別為和(x,y),用當前位置到谷地的距離s:來衡量當前位置和速度的「好壞程度」,離谷地的距離越近,則越「好」,反之越「壞」。假設每一個鳥具有記憶能力,能夠記住曾經達到的最好位置,記作pBest,並記a為系統規定的速度調節常數,rand為一個[0,1]間的隨機數,設定速度項按照下述規則變化:
然後假設群體之間可以以某種方式通訊,每個個體能夠知道並記住到當前為止整個群體的最好位置,記為gBest,記b為系統規定的速度調節常數,Rand為一個[0,1]間的隨機數,則速度項在經過以上調整後,還必須按照下述規則變化:
在計算機上模擬的結果顯示:當a/b較大時,所有的個體很快地聚集到「谷地」上;反之,粒子緩慢地搖擺著聚集到「谷地」的四周。通過這個簡單的模擬,發現群體能很快地找到一個簡單函數(2-1)的最優點。受該模型啟發,Kennedy和Eberhart設計出了一種演化優化演算法,並通過不斷的試驗和試錯,最後將此演算法的基本型固定為:
其中符號的意義同上。研究者認為每個個體被抽象為沒有質量和體積,而僅僅具有速度和位置的微粒,故將此方法稱為「粒子群」優化演算法。
據此,可對粒子群演算法小結如下:粒子群演算法是一種基於種群的搜索過程,其中每個個體稱作微粒,定義為在D維搜索空間中待優化問題的潛在解,保存有其歷史最優位置和所有粒子的最優位置的記憶,以及速度。在每一演化代,微粒的信息被組合起來調整速度關於每一維上的分量,繼而被用來計算新的微粒位置。微粒在多維搜索空間中不斷改變它們的狀態,直到到達平衡或最優狀態,或者超過了計算限制為止。問題空間的不同維度之間唯一的聯系是通過目標函數引入的。很多經驗證據已經顯示該演算法是一個非常有效的優化工具。微粒群優化演算法的流程圖見圖2-1。
以下給出微粒群演算法的比較完整的形式化表述。在連續空間坐標系中,微粒群演算法的數學描述如下:設微粒群體規模為N,其中每個微粒在D維空間中的坐標位置向量表示為,速度向量表示為,微粒個體最優位置(即該微粒經歷過的最優位置)記為,群體最優位置(即該微粒群中任意個體經歷過的最優位置)記為。不失一般性,以最小化問題為例,在最初版本的微粒群演算法中,個體最優位置的迭代公式為:
群體最優位置為個體最優位置中最好的位置。速度和位置迭代公式分別為:
由於初始版本在優化問題中應用時效果並不太好,所以初始演算法提出不久之後就出現了一種改進演算法,在速度迭代公式中引入了慣性權重ω,速度迭代公式變為:
雖然該改進演算法與初始版本相比復雜程度並沒有太大的增加,但是性能卻有了很大的提升,因而被廣泛使用。一般的,將該改進演算法稱為標准微粒群演算法,而將初始版本的演算法稱為原始微粒群演算法。
通過分析PSO演算法的收斂行為,Clerc介紹了一種帶收縮因子的PSO演算法變種,收縮因子保證了收斂性並提高了收斂速度。此時的速度迭代公式為:
顯然,迭代公式(2-7)和(2-8)並無本質區別,只要適當選取參數,二者完全相同。
微粒群演算法有兩種版本,分別稱為全局版本和局部版本。在全局版本中,微粒跟蹤的兩個極值為自身最優位置pBest和種群最優位置gBest。對應的,在局部版本中,微粒除了追隨自身最優位置pBest之外,不跟蹤種群最優位置gBest,而是跟蹤拓撲鄰域中的所有微粒的最優位置nBest。對於局部版本,速度更新公式(2-7)變為:
其中為局部鄰域中的最優位置。
每一代中任意微粒迭代的過程見圖2-2所示。從社會學的角度來看速度迭代公式,其中第一部分為微粒先前速度的影響,表示微粒對當前自身運動狀態的信任,依據自身的速度進行慣性運動,因此參數ω稱為慣性權重(Inertia Weight);第二部分取決於微粒當前位置與自身最優位置之間的距離,為「認知(Cognition)」部分,表示微粒本身的思考,即微粒的運動來源於自己經驗的部分,因此參數c1稱為認知學習因子(也可稱為認知加速因子);第三部分取決於微粒當前位置與群體中全局(或局部)最優位置之間的距離,為「社會(Social)」部分,表示微粒間的信息共享與相互合作,即微粒的運動來源於群體中其他微粒經驗的部分,它通過認知模擬了較好同伴的運動,因此參數c2稱為社會學習因子(也可稱為社會加速因子)。
自從PSO演算法被提出以來,由於它直觀的背景,簡單而容易實現的特點,以及對於不同類型函數廣泛的適應性,逐漸得到研究者的注意。十餘年來,PSO演算法的理論與應用研究都取得了很大的進展,對於演算法的原理已經有了初步的了解,演算法的應用也已經在不同學科中得以實現。
PSO演算法是一種隨機的、並行的優化演算法。它的優點是:不要求被優化函數具有可微、可導、連續等性質,收斂速度較快,演算法簡單,容易編程實現。然而,PSO演算法的缺點在於:(1)對於有多個局部極值點的函數,容易陷入到局部極值點中,得不到正確的結果。造成這種現象的原因有兩種,其一是由於待優化函數的性質;其二是由於微粒群演算法中微粒的多樣性迅速消失,造成早熟收斂。這兩個因素通常密不可分地糾纏在一起。(2)由於缺乏精密搜索方法的配合,PSO演算法往往不能得到精確的結果。造成這種問題的原因是PSO演算法並沒有很充分地利用計算過程中獲得的信息,在每一步迭代中,僅僅利用了群體最優和個體最優的信息。(3)PSO演算法雖然提供了全局搜索的可能,但是並不能保證收斂到全局最優點上。(4)PSO演算法是一種啟發式的仿生優化演算法,當前還沒有嚴格的理論基礎,僅僅是通過對某種群體搜索現象的簡化模擬而設計的,但並沒有從原理上說明這種演算法為什麼有效,以及它適用的范圍。因此,PSO演算法一般適用於一類高維的、存在多個局部極值點而並不需要得到很高精度解的優化問題。
當前針對PSO演算法開展的研究工作種類繁多,經歸納整理分為如下八個大類:(1)對PSO演算法進行理論分析,試圖理解其工作機理;(2)改變PSO演算法的結構,試圖獲得性能更好的演算法;(3)研究各種參數配置對PSO演算法的影響;(4)研究各種拓撲結構對PSO演算法的影響;(5)研究離散版本的PSO演算法;(6)研究PSO演算法的並行演算法;(7)利用PSO演算法對多種情況下的優化問題進行求解;(8)將PSO演算法應用到各個不同的工程領域。以下從這八大類別著手,對PSO演算法的研究現狀作一梳理。由於文獻太多,無法面面俱到,僅撿有代表性的加以綜述。
⑨ 模擬退火演算法和粒子群演算法的優缺點有那些具體點,謝啦
他們有類似之處,但差別也不小。
蒙特卡洛演算法是數值計算方法,原理是利用隨機數來解決計算問題。與它對應的是確定性演算法。也就是說該種演算法屬於隨機演算法,得到的解是近似解。
而遺傳演算法、粒子群、模擬退火雖然也是隨機近似演算法,但這三種都是仿生智能演算法,且比蒙特卡洛演算法要復雜,應用的領域也不太相同。
顯然,蒙特卡洛演算法很輕巧,求解問題更快速。
⑩ 粒子群演算法
粒子群演算法(particle swarm optimization,PSO)是計算智能領域中的一種生物啟發式方法,屬於群體智能優化演算法的一種,常見的群體智能優化演算法主要有如下幾類:
除了上述幾種常見的群體智能演算法以外,還有一些並不是廣泛應用的群體智能演算法,比如螢火蟲演算法、布穀鳥演算法、蝙蝠演算法以及磷蝦群演算法等等。
而其中的粒子群優化演算法(PSO)源於對鳥類捕食行為的研究,鳥類捕食時,找到食物最簡單有限的策略就是搜尋當前距離食物最近的鳥的周圍。
設想這樣一個場景:一群鳥在隨機的搜索食物。在這個區域里只有一塊食物,所有的鳥都不知道食物在哪。但是它們知道自己當前的位置距離食物還有多遠。那麼找到食物的最優策略是什麼?最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。
Step1:確定一個粒子的運動狀態是利用位置和速度兩個參數描述的,因此初始化的也是這兩個參數;
Step2:每次搜尋的結果(函數值)即為粒子適應度,然後記錄每個粒子的個體歷史最優位置和群體的歷史最優位置;
Step3:個體歷史最優位置和群體的歷史最優位置相當於產生了兩個力,結合粒子本身的慣性共同影響粒子的運動狀態,由此來更新粒子的位置和速度。
位置和速度的初始化即在位置和速度限制內隨機生成一個N x d 的矩陣,而對於速度則不用考慮約束,一般直接在0~1內隨機生成一個50x1的數據矩陣。
此處的位置約束也可以理解為位置限制,而速度限制是保證粒子步長不超限制的,一般設置速度限制為[-1,1]。
粒子群的另一個特點就是記錄每個個體的歷史最優和種群的歷史最優,因此而二者對應的最優位置和最優值也需要初始化。其中每個個體的歷史最優位置可以先初始化為當前位置,而種群的歷史最優位置則可初始化為原點。對於最優值,如果求最大值則初始化為負無窮,相反地初始化為正無窮。
每次搜尋都需要將當前的適應度和最優解同歷史的記錄值進行對比,如果超過歷史最優值,則更新個體和種群的歷史最優位置和最優解。
速度和位置更新是粒子群演算法的核心,其原理表達式和更新方式:
每次更新完速度和位置都需要考慮速度和位置的限制,需要將其限制在規定范圍內,此處僅舉出一個常規方法,即將超約束的數據約束到邊界(當位置或者速度超出初始化限制時,將其拉回靠近的邊界處)。當然,你不用擔心他會停住不動,因為每個粒子還有慣性和其他兩個參數的影響。
粒子群演算法求平方和函數最小值,由於沒有特意指定函數自變數量綱,不進行數據歸一化。