歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Particle Swarm Optimization(粒子群)——Introduction

Particle Swarm Optimization(粒子群)——Introduction

日期:2017/3/1 10:07:44   编辑:Linux編程

Explanation of terms

Particle swarm optimization :粒子群優化理論

Stochastic OptimizationTechnique:隨機優化技術

Evolutionary Computation Techniques:用計算機的計算來模仿生物的進化過程,演化計算技術

Genetic Algorithms:遺傳算法

the Problem Space :所要解決的問題的解空間。

Fitness:適應度值

pbest:personal best,個體最優值

lbest:local best,局部最優值

gbest:global best,全局最優值

Text

Particle swarm optimization (PSO) is a population based stochastic optimization technique developed by Dr. Eberhart and Dr. Kennedy in 1995, inspired by social behavior of bird flocking or fish schooling.

粒子群優化理論(簡稱粒子群)於1995年由 Eberhart 和 Kennedy博士首次在IEEE雜志公開發表。它是一種當今流行的基於隨機優化的技術,模仿鳥群或者魚群的社會行為(比如捕食過程)。

PSO shares many similarities with evolutionary computation techniques such as Genetic Algorithms (GA). The system is initialized with a population of random solutions and searches for optima by updating generations. However, unlike GA, PSO has no evolution operators such as crossover and mutation. In PSO, the potential solutions, called particles, fly through the problem space by following the current optimum particles.

粒子群在一定程度上與演化計算技術(比如遺傳算法)有很大的相似之處。PSO 初始化為一群隨機粒子(隨機解)。然後通過迭代找到最優解。在每一次迭代中,粒子通過跟蹤兩個"極值"(下文會提到pbest和lbest,即此處說的optima)來更新自己。然而,與遺傳算法不同的是。粒子群沒有交叉和變異這兩種進化操作。在粒子群中,“粒子”本身就是潛在的解,通過跟隨當前最佳粒子(下文中會有各種最佳粒子,注意結合過程來區別)來搜索問題的解空間。

Each particle keeps track of its coordinates in the problem space which are associated with the best solution (fitness) it has achieved so far. (The fitness value is also stored.) This value is called pbest. Another "best" value that is tracked by the particle swarm optimizer is the best value, obtained so far by any particle in the neighbors of the particle. This location is called lbest. when aparticle takes all the population as its topological neighbors, the best value is a global best and is called gbest.

每一個粒子(上文中隨機初始化出來的)在解空間中跟蹤自己所能到達的最優解(用適應度值來表征,且總是會被更好的所更新)來形成自己的路線。(也就是說,在解空間中,粒子依據更好的適應度值來調整自己,最後形成一條自己的軌跡)(經過自己的軌跡之後,會得到一個pbest)這個值叫做pbest。另一個“最優解”由任一個粒子與其周圍的鄰居比較之後產生。這個解(這裡的location就是解,也是粒子,後面他會說明粒子本身有兩個屬性,一個是位置,即它自身的解,一個是速度,起到改變自身位置的作用,不改變那咋進化呢?:))叫做lbest(即適用部分種群拿來作為一個粒子的周圍鄰居來優化,可以不用)。當所選的粒子種群中的所有粒子(這裡的all the population是初始化出來的種群,當然有時候種群太小,相對容易掉入局部最優解中)都被遍歷之後,從所有的lbest中會得到一個真正的全局最優解,叫做gbest。

The particle swarm optimization concept consists of, at each time step, changing the velocity of (accelerating) each particle toward its pbest and lbest locations (local version of PSO). Acceleration is weighted by a random term, with separate random numbers being generated for acceleration toward pbest and lbest locations.

粒子群優化的概念包括(每一步迭代過程):改變粒子群沖向pbest和lbest的速度。兩個速度隨機產生,相互獨立。(公式中很容易看出來,至於公式的解釋,另外解釋)

In past several years, PSO has been successfully applied in many research and application areas. It is demonstrated that PSO gets better results in a faster, cheaper way compared with other methods.

在過去的一些年裡,粒子群技術已經成功應用到很多的研究和應用領域中。這些研究表明粒子群與其他優化技術相比具有很快,更高性價比的優勢。

Another reason that PSO is attractive is that there are few parameters to adjust. One version, with slight variations, works well in a wide variety of applications. Particle swarm optimization has been used for approaches that can be used across a wide range of applications, as well as for specific applications focused on a specific requirement.

導致粒子群如此吸引人的另外一個因素是:需要調整的參數很少。模型公式中只要改變很少的參數就可以應用到非常廣泛的領域。當然,對一些特殊領域中的一些特殊要求,粒子群同樣適用,簡直就是“經濟適用男”,親,要不要來一個試試:)~~~

附一個標准模型公式:

在每次迭代過程中,粒子通過個體極值和群體極值更新自身的速度和位置,即

其中,w為慣性權重;d=1,2…,D;i=1,2…,n;k為當前迭代次數;Vid為粒子的速度;c1和c2是非負的常數,稱為加速度因子,通常設為c1=c2=2;r1和r2分布於[0,1]區間的隨機數。為防止粒子的盲目搜索,一般建議將其位置和速度限制在一定的區間[-Xmax,Xmax]、[-Vmax,Vmax]。

Copyright © Linux教程網 All Rights Reserved