标签: pyevolve

PYTHON使每个进程都可以访问全局变量

我是python的新手,并开始使用遗传算法(GA)进行某种曲线拟合.对于那个GA,我使用(真棒)pyevolve库(http://pyevolve.sourceforge.net/),它能够通过使用多处理极大地减少计算时间.

这就是我的问题出现的地方:我想要近似的曲线是一个从excel文件中读取并在程序开头存储为全局变量的数组.使用python多处理模块时,每个进程都使用自己的全局变量创建自己的python实例.这导致每一个人,在每一代算法(意味着每个过程)中一次又一次地打开和读取excel文件.打开大的excel文件会导致大量的时间,因此只需打开一次该文件并使读取数组可供每个进程/个人使用,这将是一件好事.

多处理是在pyevolve库中启动的,我不想更改它以便于更新.不幸的是,这意味着只需通过例如将变量传递给流程池

p = Process(target=my_func,args=(my_array))

对我来说不是一个选择.这是我到目前为止找到的唯一解决方案.

有没有人知道从每个进程访问my_array的另一种方法?

提前致谢!

python global multiprocessing pyevolve

8
推荐指数
1
解决办法
842
查看次数

在python 3中使用pyevolve

Pyevolve 通常用于 python 2.7。有什么办法可以在 python 3 中安装和使用 pyevolve 吗?我知道还有另一个包 DEAP 用于与 python 3 兼容的遗传算法,但不知何故我必须使用 pyevolve。

我尝试过,但我认为它不受支持,所以 pip install pyevolve 抛出错误。

pyevolve genetic-algorithm python-3.x

5
推荐指数
2
解决办法
2482
查看次数

用DEAP实现遗传算法的约束

我正在尝试使用DEAP遗传算法来解决一个与背包问题不同的优化问题.染色体由整数向量表示,约束条件是向量之和必须等于某个数字X.在适应性评估中处理这个问题似乎效率低,因为相对较少的交叉/突变会导致有一个总和恰好等于X的向量.

相反,似乎我应该将交叉和突变重新映射到有限的可能解决方案中.我应该在DEAP中使用装饰器来实现这个,还是有人知道更好的方法来解决这个问题?有没有人有这种情况的示例代码的链接?

python optimization pyevolve evolutionary-algorithm

3
推荐指数
1
解决办法
3175
查看次数

使用Pyevolve进行帕累托排名

我目前正在使用Pyevolve包解决一些遗传算法问题.我想知道是否有任何在Pyevolve包中使用Pareto排名的例子,因为我有多个评估函数.

如果不存在,你能不能提供一些Pareto排名算法的伪代码.我想自己实现它.

谢谢!!

python pyevolve genetic-algorithm evolutionary-algorithm

1
推荐指数
1
解决办法
2240
查看次数