MATLAB实战系列(七)头脑风暴优化(BSO)算法求解旅行商问题(TSP)
生活随笔
收集整理的這篇文章主要介紹了
MATLAB实战系列(七)头脑风暴优化(BSO)算法求解旅行商问题(TSP)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 | BSO基本思想回顧
我們已經學習過BSO是和遺傳算法類似的群智能優化算法,但是BSO有其獨特的更新解的方式。假設現在種群數目為NIND,那么BSO更新解的方法如下所述:
STEP1:將種群中的NIND個個體分為m類,標準的BSO是采用k-means聚類的方法進行分類的。在matlab可以使用kmeans函數來實現k-means聚類,使用方法如下:
[idx,C,sumD,D] = kmeans(X,K,'Distance','cityblock','MaxIter',1000,'Replicates',5);其中輸入數據:
X——一個N行D列的矩陣,N是數據個數,D是數據維數
K——將X劃分為幾類
Distance——選擇計算一個個體與聚類中心之間距離的方式(默認為sqeuclidean)
cityblock——計算一個個體與聚類中心之間距離的一種方式
MaxIter——最大迭代次數(默認為100)
Replicates——使用新的初始群集質心位置重復群集的次數(默認為1)
輸出數據:
idx——N行1列的矩陣,存儲的是每個點的聚類標號
C——K行D列的矩陣,存儲K個聚類中心
sumD——K行1列的矩陣,存儲當前聚類中,所有點與這個聚類中心的距離之和
D——N行D列的矩陣,存儲每個點與所有聚類中心的距離
既然
總結
以上是生活随笔為你收集整理的MATLAB实战系列(七)头脑风暴优化(BSO)算法求解旅行商问题(TSP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tableau实战系列(六)-小面积图表
- 下一篇: tableau实战系列(七)-服务器日志