这似乎是最奇怪的事情,但是我到此为止。我有一个PyGame / PyMunk模拟(计划运行2秒的简单BouncyBall演示)。我将它挂接到DEAP,以尝试优化线条的位置,以最大程度地增加屏幕上的球数。
第一代似乎运行良好(并持续了预期的时间),但是其他任何几代都只是飞过。
我正在打印invalid_ind
列表,那里有内容,但是pygame似乎只是不想在第一代之后重新运行。
这里是否正在发生某种底层优化?我不希望DEAP运行10代* 50个人* 2秒评估会立即运行,所以我很困惑。
这是我的DEAP code
这是我的BouncyBall code
它们在第一代中很好地连接在一起,但除此之外的任何事物都会飞逝。
答案 0 :(得分:0)
我不知道这是否对任何人都有帮助,但是问题似乎与我如何处理PyMunk代码的评估有关。无论我运行DEAP还是手工GA,实例化每个个体的效果都相同。
但是,通过BouncyBall
调用subprocess
代码可以正常工作。