大家好,我寫的是用於優化簡單函數的pso代碼。它沒有問題。現在我想用pso解決茶匙問題。例如,羣體向量內容是[1 2 4 3 1],最佳羣體向量是[2 3 1 4 2]。當我想更新[1 2 4 3 1]的新值時,這些值就像[1.2 2.3 3.8 3.4 1.2]。這不是真的或可以接受的答案。我怎樣才能將這個答案映射到一個真實的答案? 如果你有這個問題的一些來源,請分享它。
(我的代碼使用matlab)。 在此先感謝如何在pso優化中將連續數轉換爲離散數?
0
A
回答
0
Matlab正在使用floating point操作來執行計算。這導致錯誤。 Epsilon是精度的度量(matlab中的eps
命令)。這是最小的數字> 0其中1 + eps != 1。
它取決於計算如何舍入誤差會影響你。例如,如果要添加10個不同大小的數字,那麼如果按絕對值對數字進行排序並將其添加,則誤差最小。相互減去兩個幾乎相等的數字會失去很多精度,或者功率也可能很差。
==>你將不得不重寫你的算法,並考慮到這些效果的「完美」解決方案。簡單的解決方案只是對數字進行四捨五入,你可以額外定義一個閾值,比如說0.25,如果一個數字的變化超過了你輸出的警告(比如在計算逆矩陣時用matlab幾乎奇異的矩陣)。
> A = [1.2 2.3 3.8 3.4 1.2] ;
> A = round(A)
A =
1 2 4 3 1
相關問題
- 1. 如何將連續變量轉換爲R中的離散值?
- 2. 將離散數據轉換爲連續的
- 3. 在Knime中將連續信號轉換爲離散狀態
- 4. 轉換csv數據 - 連續到離散步驟
- 5. 如何將散列數組轉換爲散列值數組?
- 6. 如何將離散因子水平視爲連續?
- 7. 轉換指數號碼離散數
- 8. 連續VS.離散屬性
- 9. 離散值連續刻度
- 10. 將數學問題轉換爲離散事件模擬
- 11. 如何在TensorFlow中將連續的數字轉換爲幾個類?
- 12. 粒子在粒子羣優化(PSO)
- 13. 將var數據轉換爲散列表
- 14. 如何將數組轉換爲Perl中的散列?
- 15. R中的非線性離散優化
- 16. 如何將數組中的每兩個連續值轉換爲鍵/值對?
- 17. 將散列字符串轉換爲格式化的數字?
- 18. 將範圍(非連續)轉換爲值
- 19. 機器學習:如何處理離散和連續的數據在一起
- 20. 如何優化繪製參數連續曲線?
- 21. ggplot2-如何繪製離散刻度軸值中的連續值?
- 22. 如何將分類,離散和連續數據混合爲張量流中的輸入?
- 23. 如何將下列數組轉換爲散列?
- 24. 如何將以下內容轉換爲數組或散列?
- 25. 連續分佈的指數衰減類隨機分佈和離散化
- 26. 如何將插入後的連續數字轉換爲使用jquery的上標?
- 27. 在ruby中智能地將散列數組轉換爲CSV
- 28. Python的劇情的積分與離散和連續參數
- 29. 稀疏數據上的離散和連續分類器
- 30. 使用Mathematica對離散數據進行連續傅立葉變換?
感謝您的答案,但如果我這樣做的解決方案改變,因此這不是pso算法。答案並非如此 –
@ zara-T什麼是不正確的?它將浮點數轉換爲整數,就像它在問題的標題中所說的那樣。沒有任何實施代碼,沒有人能夠猜出問題所在。 – maraca
這是不正確的,因爲在pso的正常形式中,解決方案的進度不是靜態的,我的意思是如果在下一次迭代中第一次迭代中4變爲3.8,則可能變爲3.2,並且在第一次迭代的解決方案中,它的值被四捨五入爲4並在下一個4再次變爲3.8,如果我們四捨五入,值爲4。這不是真的,因爲該算法將接近羣1,在我們的解決方案中這不會發生,我認爲答案是離散PSO概念 –