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
代码可以正常工作。
这似乎是最奇怪的事情,但是我在这里束手无策。我有一个 PyGame/PyMunk 模拟(计划为 运行 2 秒的简单 BouncyBall 演示)。我将它连接到 DEAP 以尝试优化线放置以最大化最后屏幕上的球数。
第一代似乎 运行 很好(并且持续了预期的时间),但是任何剩余的几代都只是飞逝而过。
我正在打印 invalid_ind
列表并且那里有内容,但是看起来 pygame 只是不想在第一代之后重新 运行。
这里是否进行了某种低级优化?我不希望 DEAP 运行 10 代 * 50 个人 * 2 秒评估瞬间达到 运行,所以我很困惑。
这是我的DEAP code
这是我的 BouncyBall code
他们 link 第 1 代很好,但除此之外的任何东西都过时了。
我不知道这是否对任何人有帮助,但问题似乎与我如何处理 PyMunk 代码的评估有关。为每个人实例化它无论是我运行 DEAP还是手工制作的GA都具有相同的效果。
但是,通过 subprocess
调用 BouncyBall
代码可以正常工作。