next up previous
Next: アルゴリズム Up: 粒子群最適化(Particle Swarm Optimization) Previous: 粒子群最適化(Particle Swarm Optimization)

定義

エージェントのグループがある目的関数$f$を最適化すると仮定する. 各エージェント$i$は,時刻$t$における各自の位置 $\mbox{\boldmath$x$}_i^t$,移動速度 $\mbox{\boldmath$v$}_i^t$,および今まで経験した目的関数の最良値$pbest_i$とそのときの位置 $\mbox{\boldmath$x$}^*_i$を記憶している.
$\displaystyle pbest_i$ $\textstyle =$ $\displaystyle \min_{\tau=0,1,\cdots,t} f(\mbox{\boldmath$x$}_i^\tau)$ (3)
$\displaystyle \mbox{\boldmath$x$}_i^*$ $\textstyle =$ $\displaystyle \mbox{arg}\min_{\tau=0,1,\cdots,t}f(\mbox{\boldmath$x$}_i^\tau)$ (4)

さらに,各エージェントは,グループ中のエージェントが経験した目的関数の最良値$gbest$とそのときの位置 $\mbox{\boldmath$x$}_G^*$の情報を共有する.
$\displaystyle gbest$ $\textstyle =$ $\displaystyle \min_i pbest_i$ (5)
$\displaystyle \mbox{\boldmath$x$}_G^*$ $\textstyle =$ $\displaystyle \mbox{arg}\min_i f(\mbox{\boldmath$x$}_i^*)$ (6)

このとき,時刻$t+1$におけるエージェントの移動速度は,以下のように求められる.
$\displaystyle v_{ij}^{t+1} = w v_{ij}^t$ $\textstyle +$ $\displaystyle c_1 rand (x^*_{ij}-x^t_{ij})$ (7)
  $\textstyle +$ $\displaystyle c_2 rand (x^*_{Gj}-x^t_{ij})$  

ただし,$w$は慣性重み(inertia weight),$rand$は区間$[0,1]$の一様乱数であり,各成分毎に生成する. $c_1$は``cognitive'',$c_2$は``social''とよばれるパラメータであり,自己の最良位置およびグループの最良位置への探索に対する重み付けを表現している.

式(7)から,時刻$t+1$におけるエージェントの位置が以下のように求められる.

\begin{displaymath}
\mbox{\boldmath$x$}^{t+1}_i = \mbox{\boldmath$x$}^t_i + \mbox{\boldmath$v$}^{t+1}_i
\end{displaymath} (8)



takahama 2007-07-13