Быстрая и простая в использовании библиотека генетического программирования без GPL - PullRequest
3 голосов
/ 25 декабря 2011

Я хотел бы создать приложение, которое использует генетическое программирование, чтобы выяснить, что именно просит пользователь.Это программное приложение для непрограммистов.В основном пользователь передает приложению кучу примеров, и из примеров приложение извлечет правила, необходимые для создания новой программы для собственного использования / распространения пользователем.

Я создал прототипы с использованием линейной регрессии, ноэто может решить только простые проблемы.На этой неделе я экспериментировал с генетическим программированием с использованием pyevolve, и оно работало намного лучше, чем я ожидал!Тем не менее, я подозреваю, что из-за того, что он написан на чистом Python, для решения примера потребовались десятки секунд, в то время как в моем приложении у меня было не более пары секунд.

Я пытался найтиболее производительная библиотека, которая была так же проста в использовании, как pyevolve, но не может найти подходящую.Я попробовал openBeagle, но после запуска примера и нескольких часов просмотра документации я все еще не могу найти способ фактически выбрать человека из «Вивария».Я видел, как люди рекомендуют GAUL, но это библиотека GPL, и я буду ограничивать возможности лицензирования своего будущего приложения.Я пытался скачать lil-gp, но ссылки для скачивания по ftp заблокированы экраном входа в университет.

Поскольку приложение будет приложением Mac OS X для какао, я не рассматривал библиотеки Java, C # или Matlab GP.

Ответы [ 2 ]

4 голосов
/ 27 декабря 2011

Как разработчик Open BEAGLE, я все же рекомендую вам использовать эту библиотеку, если вы ищете быструю библиотеку GP.Извлечение вашего лучшего человека на самом деле было бы сделано, запустив вторую программу, которая анализирует XML-файл, зарегистрированный в конце эволюции.В противном случае вы можете получить к нему доступ через метод Vivarium.getHallOfFame (), а затем отсортировать его и получить доступ к первому элементу с помощью HallOfFame.operator [].Член, которого вы получите, - это структура человека с тем поколением, в котором он был записан, и каким бы демоном он ни был.

Таким образом, вы можете получить доступ к лучшему человеку, который когда-либо жил в вашей эволюции.

Если у вас есть конкретные вопросы по Open BEAGLE, я рекомендую вам задать их непосредственно в список разработчиков, мы обычно отвечаем очень быстро.

Хотя, если вы хотите попробовать совсем другую библиотеку в Python IРекомендую вам DEAP , который обеспечивает гораздо большую гибкость, чем Pyevolve.Некоторые примеры GP работают гораздо быстрее в PyPy, чем в Python.

1 голос
/ 19 декабря 2012

Если вы попросите у ключевого разработчика проекта GAUL разрешение на использование альтернативного лицензионного соглашения, то он * вполне может согласиться.

* "он" - это я.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...