编辑 嗨,我正在尝试实现粒子(或遗传)群体优化。但是,我已经陷入了第一步......
我对如何初始化粒子感到困惑,以及这些粒子(就代码而言)是什么。
我已经找到了关于算法(单独)和实现的各种信息,但没有找到我想要的信息......
有人可以解释一下吗?
感谢。
安德烈。
答案 0 :(得分:1)
如果您熟悉Python,我使用deap学习了遗传算法和pso。他们有一些优秀的教程和文档。
<强>定义:强> PSO通过使用一组候选解决方案(此处称为粒子)并根据简单的数学公式在搜索空间中移动这些粒子来优化问题。粒子的运动由搜索空间中找到的最佳位置引导,这些位置随着粒子找到更好的位置而更新。
什么是粒子?
粒子具有当前位置,速度和过去位置的记录。每个粒子都有自己的速度和位置更新规则。
优化搜索如何运作?
您运行算法一定次数的迭代。在每次迭代时更新每个粒子的速度和位置。然后希望你找到最好的解决方案或一个足够好的解决方案。
具体示例。
想象一下,你的搜索目标是寻找明星。在每次迭代中,我们找到最接近寻找恒星的粒子。然后沿那个方向移动所有其他粒子。
图片由wirelesstech
提供答案 1 :(得分:0)
如果你问“我如何在程序中表示每个粒子”,那么你可能希望它们成为你要编写的类的对象。例如,您可能有一个“粒子”类,其中包含该粒子的位置和状态信息,然后您将拥有这些粒子的集合,并且在算法的每个新迭代中,您可以循环遍历该集合以执行任何操作必须发生在每个粒子上。 - 凯文威尔斯