大家好,我写的是用于优化简单函数的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概念 –