首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的并行微分进化

Python中的并行微分进化
EN

Stack Overflow用户
提问于 2020-12-21 05:07:28
回答 1查看 239关注 0票数 1

我正在寻找一个微分进化算法(希望是来自西西),我可以用一种非正统的方式。我希望,对于每一代人,DE预先给我新一代的所有儿童成员,并在我的目标函数中同时对他们进行评估。原因是我的目标函数调用COMSOL。我可以在COMSOL中进行一批计算,COMSOl将仔细地并行化,所以我不希望DE将其本身并行化。最后,我要计算COMSOL调用中的所有成员。你对用Python实现这种自由的包有什么想法吗?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 03:50:58

您可以通过使用differential_evolution关键字的能力来向量化differential_evolution,该关键字可以接受一个类似于映射的callable,该callable被发送给整个填充,并被期望返回一个数组,该数组包含为整个填充计算的函数值:

代码语言:javascript
复制
from scipy.optimize import rosen, differential_evolution
bounds=[(0, 10), (0, 10)]

def maplike_fun(func, x):
    # x.shape == (S, N), where S is the size of the population and N
    # is the number of parameters. This is where you'd call out from
    # Python to COMSOL, instead of the following line.
    return func(x.T)

res = differential_evolution(rosen, bounds, workers=maplike_fun, polish=False, updating='deferred')

从ciply1.9中还将有一个vectorized关键字,它将在每次迭代时将整个种群发送到目标函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65387767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档