

摘 要:為了克服FCM算法易陷入局部最優和對初始值敏感的缺陷,本文提出一種基于BFO的FCM聚類算法。即引入BFO求得最優解作為FCM算法的初始聚類中心,然后利用FCM算法優化初始聚類中心,最后求得全局最優解。將該算法用于排水管網監測點優化,實驗結果表明,該算法可以快速、有效的優選監測點。
關鍵詞:細菌覓食算法 模糊C均值 聚類監測點優化
中圖分類號:TM715 文獻標識碼:A 文章編號:1674-098X(2015)04(a)-0086-01
監測點位設計的不合理,將導致監測全部投入和工作前功盡棄。本文提出一種基于細菌覓食算法(Bacterial Foraging Optimization,BFO)的模糊C均值(Fuzzy C-means,FCM)聚類算法對排水管網監測點進行優化。即引入BFO求得最優解作為FCM算法的初始聚類中心,然后利用FCM算法優化初始聚類中心,最后求得全局最優解,以改進FCM算法易陷入局部極小值和對初始值敏感的缺陷。
1 BFO-FCM聚類算法
FCM算法存在局部搜索性和對初始值敏感的問題。這里引入尋優能力較強的BFO算 法[1]求得的最優解作為FCM算法的初始聚類中心,然后利用FCM算法優化初始聚類中心,最優求得全局最優解。具體算法步驟如下。
Step1:參數初始化,包括給定聚類數目centerNum,允許誤差ε,l=1,模糊指數m;細菌種群大小N、細菌的移動步長C、細菌最大前進次數Ns、趨化算子次數Nc、繁殖算子次數Nre和遷徙算子次數Ned。
Step2:隨機初始化種群,任意產生聚類中心。
Step3:針對每個細菌,根據式計算隸屬度矩陣U。
Step4:按照式f(xi)=1/(JFCM+1)計算每個細菌的適應度值,JFCM根據式,計算,根據適應度度值記錄當前最優解。
Step 5:執行種群進化的三層循環,即外層循環,遷徙算子;中層循環,繁殖算子;內層循環,趨化算子。
Step 6:BOF算法結束,輸出群體最優解。
Step 7:根據更新細菌群體的隸屬度矩陣。
Step 8:根據更新群體的聚類中心,計算相鄰兩代隸屬度矩陣之差E,若E<ε,停止;否則轉Step 7。
2 仿真實例
文中以某市23個排水干管監測點為研究對象,23個初設監測點某天監測數據如表1所示。采用本文提出的基于BFO-FCM聚類算法對監測點進行優化。算法參數設置如下:聚類數目centerNum=10,允許誤差ε=10-3,l=1,模糊指數m=2;細菌種群大小N=50、細菌的移動步長C=0.05、細菌最大前進次數Ns=3、趨化算子次數Nc=5、繁殖算子次數Nre=2和遷徙算子次數Ned=2。優化結果產生10個監測點分別為6#、13#、9#、11#、16#、1#、12#、10#、4#和3#監測點。對選取監測點每天4個時刻的檢測數據進行F檢驗和T檢驗,顯著性水平取0.05。檢驗結果均為方差齊和無顯著差異,表明優選的10個監測點可以代替初設的23個監測點。
3 結語
文中提出一種基于BFO的FCM聚類算法對排水管網監測點進行優化。實驗結果表明,本文方法可以改進FCM算法易陷入局部極小值和對初始值敏感的缺陷,快速、有效的優選排水管網監測點。
參考文獻
[1]楊淑瑩,張樺.群體智能與仿生計算——Matlab技術實現[M].北京:電子工業出版社,2014.
[2]王宏力,何星,陸敬輝,等.蟻群聚類算法的T-S模糊模型辨識[J].計算機工程與應用,2011,47(21):153-156.