如何将最大(或最小)适应性停止条件添加到多处理 deap python 遗传算法
how to add max(or min) fitness halting condition to multiprocessing deap python genetic algorithm
这个问题是关于 python deap 遗传算法库这个问题的后续回答:
How to add elimination mechanism in Python genetic algorithm based on DEAP
使用来自 deap github 的参考代码:
https://github.com/DEAP/deap/blob/master/examples/ga/onemax.py
第 112 行
while max(fits) < 100 and g < 1000: #from onemax.py
关于 deap github 示例 'onemax_mp.py':
https://github.com/DEAP/deap/blob/master/examples/ga/onemax_mp.py
如何在 onemax_mp.py 中添加类似于 max(fits) < 100
的最大(或最小)条件?
如果我添加这个条件,这个条件是否适用于整个多进程进程池中的每个进程?
如果一个进程满足结束条件,其他进程是否停止?
现在好像只能控制代数:
https://github.com/DEAP/deap/blob/master/examples/ga/onemax_mp.py
第 40 行
algorithms.eaSimple(pop, toolbox, cxpb=0.5, mutpb=0.2, ngen=40, stats=stats, halloffame=hof) #ngen=40 means calculate 40 generations
我是 Whosebug 的新手,如果我需要编辑这个问题以适应论坛规则,请告诉我
因此,您正在查看的行是终止条件。当发现适应度大于 100 的个体或经过 1000 代后,进化停止。我用 MOEA 做了很多工作,但我对 DEAP 不太熟悉。撇开免责声明不谈,它看起来并没有在进化单独的种群,只是在进行并行评估。所以只有一种人口。从文档中可以看出,您可以通过执行以下操作在多处理池中使用 onemax.py
和插槽:
import multiprocessing
pool = multiprocessing.Pool()
toolbox.register("map", pool.map)
我从这里获取了这段代码:https://deap.readthedocs.io/en/master/tutorials/basic/part4.html
这个问题是关于 python deap 遗传算法库这个问题的后续回答: How to add elimination mechanism in Python genetic algorithm based on DEAP
使用来自 deap github 的参考代码: https://github.com/DEAP/deap/blob/master/examples/ga/onemax.py
第 112 行
while max(fits) < 100 and g < 1000: #from onemax.py
关于 deap github 示例 'onemax_mp.py': https://github.com/DEAP/deap/blob/master/examples/ga/onemax_mp.py
如何在 onemax_mp.py 中添加类似于 max(fits) < 100
的最大(或最小)条件?
如果我添加这个条件,这个条件是否适用于整个多进程进程池中的每个进程?
如果一个进程满足结束条件,其他进程是否停止?
现在好像只能控制代数:
https://github.com/DEAP/deap/blob/master/examples/ga/onemax_mp.py
第 40 行
algorithms.eaSimple(pop, toolbox, cxpb=0.5, mutpb=0.2, ngen=40, stats=stats, halloffame=hof) #ngen=40 means calculate 40 generations
我是 Whosebug 的新手,如果我需要编辑这个问题以适应论坛规则,请告诉我
因此,您正在查看的行是终止条件。当发现适应度大于 100 的个体或经过 1000 代后,进化停止。我用 MOEA 做了很多工作,但我对 DEAP 不太熟悉。撇开免责声明不谈,它看起来并没有在进化单独的种群,只是在进行并行评估。所以只有一种人口。从文档中可以看出,您可以通过执行以下操作在多处理池中使用 onemax.py
和插槽:
import multiprocessing
pool = multiprocessing.Pool()
toolbox.register("map", pool.map)
我从这里获取了这段代码:https://deap.readthedocs.io/en/master/tutorials/basic/part4.html