粒子/遗传群优化算法中的粒子(代码方式)是什么?

时间:2016-02-08 21:06:00

标签: algorithm optimization particles particle-swarm gso

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

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

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

有人可以解释一下吗?

感谢。

安德烈。

2 个答案:

答案 0 :(得分:1)

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

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

什么是粒子?

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

优化搜索如何运作?

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

具体示例。

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

PSO Pic

图片由wirelesstech

提供

答案 1 :(得分:0)

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