Проблема с оценками PyGame / PyMunk в DEAP - PullRequest
1 голос
/ 18 мая 2019

Это, кажется, самая странная вещь, однако я нахожусь в конце моего остроумия здесь.У меня есть симуляция PyGame / PyMunk (простая демонстрация BouncyBall, запуск которой запланирован на 2 секунды).Я подключил его к DEAP, чтобы попытаться оптимизировать размещение линий, чтобы максимизировать количество шариков на экране в конце.

Первое поколение, кажется, работает нормально (и в течение ожидаемого периода времени), однако все оставшиеся поколения просто пролетают.

Я распечатываю список invalid_ind, и там есть содержимое, однако кажется, что pygame просто не хочет перезапускаться после первого поколения.

Есть ли какие-нибудькакая-то оптимизация низкого уровня, которая здесь происходит?Я не ожидал бы, что прогон DEAP из 10 поколений * 50 человек * оценка за 2 секунды начнется мгновенно, поэтому я в замешательстве.

Вот мой код DEAP

А вот и мой код BouncyBall

Они прекрасно соединяются для поколения 1, но все, что пролетает мимо.

1 Ответ

0 голосов
/ 22 мая 2019

Я не знаю, поможет ли это кому-нибудь, но проблема, похоже, больше связана с тем, как я справляюсь с оценкой кода PyMunk.Реализация его для каждого человека имеет одинаковый эффект, независимо от того, запускаю ли я DEAP или GA ручной работы.

Однако вызов кода BouncyBall через subprocess работает, как и ожидалось.

...