2016年6月1日 星期三

粒子群演算法運用及Java程式碼


粒子群主要決策利用「自身經驗」與「其他人經驗」進行決策。

粒子每一次自身經驗都有適應值,可以衡量這次經驗的好壞,
並且有記憶性可以紀錄每次經驗的位置與適應值。

PSO流程圖


PSO表達式





Vid(t+1):下一次粒子的速度
Vid(t):這次粒子的速度
Pid(T):粒子所經過最好的位置(每個粒子都有一個最好位置)
Xid(t):粒子這次的位置
Gid(T):粒子群所經過最好的位置(一個粒子群只會有一個最好位置)
C1,C2:控制且避免數值太大
Xid(t+1):粒子下次的位置


演算法練習:

1.主要是初始化一開始粒子群Initialization,然後依據繁延代數,進行移動ParticleMove,在這個方法裡我有利用varyVector1、varyVector2來控制,避免數值太大,最後如果數值出過-4~4間,強迫介於在這,不然變化量太大造成位置移動有問題。

2.Parameter沒有使用到封裝,如果需要再自行更改程式碼。

3.利用JFreeChart free lib來畫出JFreeLineChart迭代圖



沒有留言:

張貼留言