我正在尝试对生化过程进行建模,并将我的问题构建为一个优化问题,我使用 differential_evolution
scipy 解决了这个问题。
到目前为止,一切都很好,我对使用 15-19 个参数的简化模型的实现感到非常满意。
我扩展了模型,现在有 32 个参数,花费的时间太长了。并非完全出乎意料,但仍然是一个问题,因此是这个问题。
我已经看到: - R并行差分进化
的几乎相同的问题 - 以及关于该主题
的 github 问题https://github.com/scipy/scipy/issues/4864
但它想留在 python 中(模型在 python 管道中),尽管已经提出了一些选项,但拉取请求还没有导致并正式接受的解决方案。
此外,我无法并行化要优化的函数内的代码,因为这是一系列顺序计算,每个计算都需要上一步的结果。理想的选择是有一些东西可以并行评估一些个体并将它们返回给总体。
总结:
- scipy 中是否有任何选项允许我愚蠢地忽略的差分进化并行化?(理想的解决方案)
- 是否有关于 scipy 中的替代算法的建议,该算法要么(方式)串行速度更快,要么可以并行化?
- 有没有其他提供并行差分进化功能的好包?还是其他适用的优化方法?
- 健全性检查:我是否用 32 个参数重载了 DE,我需要彻底改变方法吗?
PS
我是一名生物学家,正式的数学/统计学并不是我的强项,任何公式到英文的翻译都将不胜感激:)
PPS
作为一个极端的选择,我可以尝试迁移到 R,但我无法编写 C/C++ 或其他语言。