10

我正在检查 R 中的简单移动平均交叉策略。我不想在 2 维参数空间(短期移动平均线的长度,长期移动平均线的长度)上运行巨大的模拟,而是想实现粒子群寻找最优参数值的优化算法。我一直在浏览网页并且读到这个算法非常有效。此外,算法的工作方式让我着迷......

你们中有人有在 R 中实现这个算法的经验吗?有没有有用的包可以使用?

非常感谢您的评论。

马丁

4

1 回答 1

17

好吧,在 CRAN 上有一个名为pso的包,实际上它是一个粒子群优化器 (PSO)。

我推荐这个包。

它正在积极开发中(最后更新于 2010 年 9 月 22 日),并且与 PSO 的参考实现一致。此外,该软件包还包括用于诊断和绘制结果的功能。

它当然看起来是一个复杂的包,但主函数接口(函数psoptim)很简单——只需传入一些描述您的问题域的参数和一个成本函数。

更准确地说,调用psoptim时要传入的关键参数:

  • 问题的维度,作为向量(par);

  • 每个变量的下限和上限(lower,upper);和

  • 成本函数 ( fn )

psoptim方法签名中还有其他参数;这些通常与收敛标准等有关)。

R 中还有其他 PSO 实现吗?

有一个名为ppso的 R 包,用于(并行 PSO)。它在 R-Forge 上可用。我对这个包一无所知;我已经下载并浏览了文档,仅此而已。

除了这两个,我不知道。大约三个月前,我寻找更流行的元启发式的 R 实现。这是我知道的唯一 pso 实现。R 与 Gnu Scientific Library GSL 的绑定具有模拟退火算法,但没有受生物学启发的元启发式算法。

另一个要看的地方当然是 CRAN Task View for Optimization。除了我在这里列举的之外,我没有找到另一个 PSO 实现,尽管那里列出了很多包,其中大多数我没有检查,除了查看名称和一句话摘要。

于 2010-10-17T09:07:17.553 回答