摘 要:經典的PSO算法以只考慮了解應當完全朝著最優的方向前進,而忽視了以前走過的路徑以及搜索結果,因此,考慮使用混沌時間序列的方法,記錄每個搜索節點每n步的記錄,推測出最佳的第n+1步記錄,然后再重新回到經典改良算法的循環。就好比鳥在覓食的時候每只鳥不是一味的只顧著搜尋食物,而是適時的停歇下來回顧自己的覓食路徑反思經驗。另外,給出一個改良的評價函數來指導自適應性搜索。
關鍵詞;PSO算法混沌時間序列評價函數
中圖分類號;O174文獻標識碼;A文章編號;1674-098X(2011)09(b)-0023-01
1粒子群算法
粒子位置向量表示為
;粒子速度向量表示為;;粒子個體歷史最優位置記為群體歷史最優位置(記為粒子根據如下的公式來更新自己的速度和新的位置
其中v[]是粒子的速度,persent[]是當前粒子的位置.pbest[] and gbest[]如前定義rand()是介于(0,1)之間的隨機數.c1,c2是學習因子.通常c1=c2=2.在每一維粒子的速度都會被限制在一個最大速度Vmax,如果某一維更新后的速度超過用戶設定的Vmax,那么這一維的速度就被限定為Vmax
2混沌時間序列估計對粒子位置的擾動
2.1 PSO算法的一些缺點
首先,通過實驗發現,PSO算法的在實際應用中,運行效果與它所采用的參數設置有較大的關系,這些參數如何取值仍然是一個待解決的問題。此外,在實驗中發現,當PSO算法在接近或進入最優點區域時,它的收斂速度相對比較緩慢。為了解決這個問題,引入混沌時間序列估計對粒子位置作出適當的擾動,從而弱化初始參數導致的誤差同時加快最優點附近的收斂速度。
2.2 混沌時間序列預測方法
根據Takens定理,時間序列可以看作是動態的系統在一個一維空間的映射。該系統的真實機理未知,卻可通過相空間重構得到與之等價的系統。故混沌時間序列的預測算法通常是以重構相空間理論為基礎,它是給定相空間中的一串迭代序列,如何構造一個非線性映射來表示這一動力系統,這樣的非線性映射就作為預測模型。在本文的應用背景下,用混沌時間序列預測的方法來對PSO算法中的例子位置作擾動。
2.3 混沌時間序列的象空間和關聯維數
設采樣的時間間隔為τ,嵌入相空間維數為m,則形成時間漂移序列;
計算向量的歐拉距離,由于N個點,共有個點對,定義評價指標r的平均距離為其中如果吸引子存在,那么有,即于是,有最佳的吸引子分為數D,。而我們出于對后面算法的實際情況考慮,在此取時間間隔,而嵌入維數由于受算法迭代數的約束同時也要保證有不太小的N,滿足關系式。
由實驗發現當k取10時,m=3,N=6.
2.4 一階加權模型的改進構造
加權一階局域就是將相空間軌跡的最后一點作為中心點,把離中心點最近的若干軌跡點作為相關點,找出并根據“歷史上情況最相似的情況”估計軌跡下一點的走向,最后從預測出的軌跡點的坐標中分離出預測值。
首先構造點的權值其中,為參數,常常取1。
下面對N=6的情況有一階擬合函數如m維向量。a,b需要估計。由最小二乘法
。
a,b求偏導,令其為0,得到:
于是,可以用以往的數據,推算出最為擬合的新的數據,從而可以將該數據作為新的一輪循環的初始值。實際中處于對算法時間復雜度的考慮,可以借助專家系統或者構造經驗表來判別a,b的取值。
2.5 算法的思想
在執行PSO經典算法的循環過程中,對于每個粒子for i=0;i<=m;i++每隔k步記錄forj=k-s:(k-s)—k的所有值(j表示算法進行的時間指針)。對每個記錄的向量的各個維度for s=1;s<=d;s++進行混沌時間序列預測,即代入(2.2)式,從而得出第k+1個新的值,從而得到新的向量,清空記錄矩陣。將作為新的搜索點繼續原來的經典算法。
2.6 算法時間復雜度的增加記
為Z
則在一次矩陣乘法中復雜度為
在一次加法中
。
一次運算增加的復雜度大約是
2.7 仿真實驗結果及討論用matlab隨機生成矩陣進行仿真模擬。以此仿真算法矩陣規模以及算法間隔次數對時間復雜度的影響。繪制結果曲面
實驗上看k取10時,m=3,N=6.效果最好。
參考文獻
[1]王云鵬.線性時間選擇算法時間復雜度深入研究.軟件開發與設計.