DEAP 中 PyGame/PyMunk 评估的问题

Issue with PyGame/PyMunk evaluations in DEAP

这似乎是最奇怪的事情,但是我在这里束手无策。我有一个 PyGame/PyMunk 模拟(计划为 运行 2 秒的简单 BouncyBall 演示)。我将它连接到 DEAP 以尝试优化线放置以最大化最后屏幕上的球数。

第一代似乎 运行 很好(并且持续了预期的时间),但是任何剩余的几代都只是飞逝而过。

我正在打印 invalid_ind 列表并且那里有内容,但是看起来 pygame 只是不想在第一代之后重新 运行。

这里是否进行了某种低级优化?我不希望 DEAP 运行 10 代 * 50 个人 * 2 秒评估瞬间达到 运行,所以我很困惑。

这是我的DEAP code

这是我的 BouncyBall code

他们 link 第 1 代很好,但除此之外的任何东西都过时了。

我不知道这是否对任何人有帮助,但问题似乎与我如何处理 PyMunk 代码的评估有关。为每个人实例化它无论是我运行 DEAP还是手工制作的GA都具有相同的效果。

但是,通过 subprocess 调用 BouncyBall 代码可以正常工作。