この論文で提示された数学を変換しようとしています:
http://www.bouncechairs.net/pskalman-lategecco.pdf
3ページあたりで作業コードに進みます。アルゴリズム自体は 6 ページあたりに記載されていますが、私はギリシャ語も数学も話せません。ので、とりあえず行き詰まっています。
コードを理解していれば、次のように実行されるはずです。
vt = particle velocity, 1d array
vbest = best particle velocity 1d array
v_prime = 1d storage array
v_hat = 1d storage array
alpha = 0.45
sigma = 0.60
denom = float
denom_best = float
準備:
for(int i = 0; i < vt.length; i++)
{
denom += vt[i] ^ 2
denom_best += vbest[i] ^ 2
}
denom = denom ^ (1/2)
denom_best = denom_best ^ (1/2)
式 7:
for(int i = 0; i < vt.length; i++)
{
v_prime[i] = alpha * (vt[i]/denom) + (1 - alpha) * (vbest[i]/denom_best)
}
式 8:
for(int i = 0; i < vt.length; i++)
{
v_hat[i] = Rand_Gauss(v_prime[i], sigma) //gaussian random number with
//v_prime[i] average, and sigma StDev
}
式 9:
for(int i = 0; i < vt.length; i++)
{
vt[i] = (alpha * denom + (1 - alpha) * denom_best) * v_hat[i]
}
これは数学が言っていることに近いですか?
事前に感謝します、-JW