[問題] 利用MATLAB做PSO粒字群演算法的新手問題已回收

看板MATLAB作者 (寶貝馬)時間17年前 (2008/12/01 21:56), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
最近很無聊 想學一些新東西 像PSO演算法 就到維基百科去找資料 後來也在維基看到有PSO原始碼 就拿MATLAB的來跑看看(因為我只有MATLAB) http://web.syr.edu/~ddevicha/pso.m 程式碼如上 用MATLAB跑時 每次執行的結果都不一樣 g_best大致都在6.8~7.2之間跑 可是Ans有時候會出現2.x 有時候又會有8百多這種情況 = = 我想問這程式究竟有什麼作用 PSO應該是一種最佳化吧 那怎麼答案會差那麼多?? 因為我實在還不是很懂 囧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.100.243

12/02 10:53, , 1F
這程式碼是要找x-7=0的解
12/02 10:53, 1F

12/02 10:54, , 2F
最後顯示的gbest就是PSO找到的解
12/02 10:54, 2F

12/02 10:57, , 3F
你說的2.x~800多這些值是指gbest的適應值
12/02 10:57, 3F

12/02 10:58, , 4F
適應值愈高代表解愈接近我們要的答案
12/02 10:58, 4F

12/02 10:59, , 5F
上面說錯,這裡是愈低愈好
12/02 10:59, 5F

12/02 11:04, , 6F
我搞錯了,x愈接近7,適應程度愈高
12/02 11:04, 6F

12/02 11:45, , 7F
你應該要先搞懂 PSO吧!不是程式問題
12/02 11:45, 7F

12/02 11:52, , 8F
PSO 一開始隨機產生初始解 套用PSO裡的公式讓初始解移動
12/02 11:52, 8F

12/02 11:53, , 9F
由這移動過程中找到近似最佳解
12/02 11:53, 9F

12/02 11:53, , 10F
答案有時候出現2.X有時候又800多 應該是不同的初始解的影響
12/02 11:53, 10F
文章代碼(AID): #19C-q680 (MATLAB)