0

编辑嗨,我正在尝试实现粒子(或遗传)群优化。但是,我已经陷入了第一步……

我对如何初始化粒子以及这些粒子(就代码而言)是什么感到困惑。

我找到了关于算法(单独)和实现的各种信息,但没有找到我想要的信息......

谁能解释一下,好吗?

谢谢。

安德里亚。

4

2 回答 2

1

如果您熟悉 Python,我使用deap学习了遗传算法和 pso 。他们有一些优秀的教程和文档。

定义: PSO 通过拥有大量候选解决方案(这里称为粒子)并根据简单的数学公式在搜索空间中移动这些粒子来优化问题。粒子的运动由搜索空间中找到的最佳位置引导,这些位置随着粒子找到更好的位置而更新。

什么是粒子?

粒子具有当前位置、速度和过去位置的记录。每个粒子都有自己的速度和位置更新规则。

优化搜索如何工作?

您针对给定的迭代次数运行算法。在每次迭代中更新每个粒子的速度和位置。然后希望您找到最好的解决方案或足够好的解决方案。

具体例子。

想象一下,您的搜索目标是找到星星。在每次迭代中,我们都会找到最接近恒星的粒子。然后沿该方向移动所有其他粒子。

PSO 图片

图片由无线技术提供

于 2016-02-08T21:54:20.500 回答
0

如果您问“我如何表示程序中的每个粒子”,那么您可能希望它们成为您将编写的类的对象。例如,您可能有一个“粒子”类,其中包含该粒子的位置和状态信息,然后您将拥有这些粒子的集合,并且在算法的每次新迭代中,您都可以遍历该集合以执行任何操作必须发生在每个粒子上。——凯文·威尔斯

于 2016-04-07T08:23:17.393 回答