gpt4 book ai didi

python - pygmo2 : migration between islands in an archipelago during evolution

转载 作者:行者123 更新时间:2023-11-28 19:03:53 30 4
gpt4 key购买 nike

我正在尝试使用 Python 库 Pygmo2 ( https://esa.github.io/pagmo2/index.html ) 来并行化优化问题。

据我了解,并行化可以通过岛屿(在本例中为mp_island)的群岛实现。

作为一个最小的工作示例,来自官方网站的教程之一可以提供:https://esa.github.io/pagmo2/docs/python/tutorials/using_archipelago.html

我提取了代码:

class toy_problem:
def __init__(self, dim):
self.dim = dim

def fitness(self, x):
return [sum(x), 1 - sum(x*x), - sum(x)]

def gradient(self, x):
return pg.estimate_gradient(lambda x: self.fitness(x), x)

def get_nec(self):
return 1

def get_nic(self):
return 1

def get_bounds(self):
return ([-1] * self.dim, [1] * self.dim)

def get_name(self):
return "A toy problem"

def get_extra_info(self):
return "\tDimensions: " + str(self.dim)

import pygmo as pg
a_cstrs_sa = pg.algorithm(pg.cstrs_self_adaptive(iters=1000))
p_toy = pg.problem(toy_problem(50))
p_toy.c_tol = [1e-4, 1e-4]
archi = pg.archipelago(n=32,algo=a_cstrs_sa, prob=p_toy, pop_size=70)

print(archi)
archi.evolve()
print(archi)

查看旧版本库的文档(http://esa.github.io/pygmo/documentation/migration.html),岛之间的迁移似乎是岛并行化模型的一个基本特征。此外,据我所知,如果没有它,进化算法等优化算法将无法工作。

但是,在Pygmo2 的文档中,我找不到如何执行迁移。

它会在群岛中自动发生吗?

是否取决于选择的算法?

它还没有在 Pygmo2 中实现吗?

关于此的文档是否丢失,或者我只是没有找到它?

谁能教教我?

最佳答案

pagmo2从v2.11开始实现迁移,PR已经完成并合并到master中。 pagmo1.x 中的几乎所有功能都已恢复。我们将来还会添加更多的拓扑,但它们已经可以手动实现了。请参阅此处的文档:https://esa.github.io/pagmo2/docs/cpp/cpp_docs.html

缺少教程和示例,将在近期添加(欢迎帮助)

关于python - pygmo2 : migration between islands in an archipelago during evolution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290160/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com