Ответ 1
ECJ имеет много вещей для GP и включает несколько примеров проектов.
Я ищу хорошую библиотеку генетического программирования для JVM. (не генетический алгоритм, а генетическое программирование) Я попробовал JGAP (jgap.sourceforge.net) и Watchmaker (watchmaker.uncommons.org). К сожалению, эти инструменты имеют только экспериментальную и незрелую поддержку генетического программирования (в основном они ориентированы на генетические алгоритмы).
Возможно, вы знаете какой-либо лучший инструмент для генетического программирования, для JVM (может быть написан на Java или любой другой скомпилированный язык для JVM).
Я не ищу исчерпывающий список инструментов GP, я скорее ищу хороший, популярный инструмент (так же, как популярные операционные системы - это Windows, Linux и Mac, а популярными Java-IDE являются Eclipse, IDEA и NetBeans).
Это не должна быть библиотека генетического программирования (GP), она также может быть (и, вероятно, лучше) библиотекой программирования экспрессии генов (GEP).
EDIT (через два месяца после вопроса): я проанализировал большую часть ссылок, которые вы опубликовали и которые доступны в Wiki, и я должен сказать, что каждая из этих библиотек имеет хотя бы одну из следующих проблем:
нет открытого источника или с открытым исходным кодом, но очень ограничительный (GPL);
нет документации (или очень плохой);
нет встроенной поддержки генетического программирования или программирования экспрессии генов (или экспериментальной,
некоторые из них слишком сложны в использовании.
В этом представлении я закончил писать свою собственную простую библиотеку для проекта (используя метод программирования выражения генов, что делает его очень простым).
ECJ имеет много вещей для GP и включает несколько примеров проектов.
Существуют библиотеки типа GenPro и n-genes для Java и JGProg для Groovy.
В разделе Implementations приведено более подробное описание для нескольких разных языков Генетическое программирование Статья в Википедии, но, как вы уже упоминали, многие из них выглядят так, как будто они больше подходят для GA, поэтому вам нужно будет оценить каждую из них, чтобы узнать, подходит ли она вашим потребностям.
Я немного предвзятый, потому что я один из авторов, но EpochX - это Java-библиотека исключительно для генетического программирования. Он поддерживает строго типизированное древовидное представление и два представления с грамматикой. Это в первую очередь предназначено для исследователей, но оно может быть подходящим в зависимости от того, для чего вы это требуете. Вы можете получить дополнительную информацию по адресу epochx.org.
Я только что закончил свой собственный инструмент Genetic Programming в Clojure (построен на JVM). Как только я смог сделать символическую регрессию, я понял, что этот инструмент был намного более строгим, чем я хотел, и сложнее решить проблему с жесткой типизацией. Я решил перейти в инструмент Grammatical Evolution (Генетическое программирование может быть истолковано как подмножество грамматической эволюции). Инструмент GEVA - это моя первая остановка для инструмента Grammatical Evolution. Я понимаю, что он также все еще разрабатывается (в этом году (в 2010 году - недавний)).
Возможно, вы могли бы использовать части TinyGP? Это не библиотека, а больше GP-системы, но поскольку она довольно мала, вы можете легко ее адаптировать для ваших целей.
JGAP (Java Genetic Algorithms Package) представляет собой сложную библиотеку GA, доступную бесплатно на jgap.sf.net. Многие примеры включены.