Java Evolutionary Computation Toolkit

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая StanTRC (обсуждение | вклад) в 13:40, 28 июня 2012. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
ECJ
Написана на Java
Операционная система Кроссплатформенное программное обеспечение
Аппаратная платформа Java Virtual Machine
Последняя версия 20
Лицензия AFL, BSD
Сайт ECJ project

ECJ — это свободная исследовательская система для эволюционных вычислений, написанная на языке программирования Java.

Она представляет собой программный каркас, поддерживающий ряд технологий эволюционных вычислений, таких как: генетические алгоритмы, генетическое программирование, эволюционные стратегии, параллельная эволюция, оптимизация большого числа частиц и дифференциальная эволюция. Данный программный каркас моделирует эволюционный процесс по итерациям, используя последовательность конвейеров, приспособленных для того, чтобы соединить одну или более подпопуляций индивидуумов с помощью селекции, скрещивания (такого, как кроссовер), и операторов мутации, которые порождают новых особей. ECJ имеет открытые исходные тексты и распространяется в рамках лицензии шаблон не поддерживает такой синтаксис. Она была создана Шоном Люком, профессором компьютерных наук в университете Джорджа Мейсона, и поддерживается Шоном Люком и множеством спонсоров.

Основные возможности (перечислены со страницы проекта ECJ):

  • графический интерфейс пользователя с диаграммами;
  • платформонезависимые контрольные точки и журналирование;
  • иерархические файлы параметров;
  • многопоточность;
  • генератор случайных чисел Мерсенна;
  • абстракции для выполнения множества форм эволюционных вычислений.

Возможности эволюционных вычислений:

  • асинхронная островная модель для TCP/IP;
  • вычисления типа главный/подчинённый для сложных процессоров;
  • генетические алгоритмы/генетическое программирование устойчивого состояния и эволюция поколений, с использованием либо без элитизма;
  • эволюционные стратегии типа (mu, lambda) и эволюция (mu+lambda);
  • очень гибкая архитектура скрещивания;
  • много операторов селекции;
  • множественные подпопуляции и виды;
  • межпопуляционные перестановки;
  • чтение популяций из файлов;
  • одно- и многопопуляционная параллельная эволюция;
  • SPEA2 многокритериальная оптимизация (Strength Pareto Evolutionary Algorithm);
  • оптимизация большого числа частиц;
  • дифференциальная эволюция;
  • пространственно вложенные генетические алгоритмы;
  • приёмы для других многоцелевых методов оптимизации;
  • пакеты для экономного воздействия.

Представления деревьев в генетическом программировании:

  • сильно типизированное основанное на множествах генетическое программирование;
  • эфемерные случайные константы;
  • автоматически определяемые функции и автоматически определяемые макросы;
  • леса из многочисленных деревьев;
  • 6 алгоритмов для создания деревьев;
  • огромное множество операторов скрещивания в генетическом программировании;
  • 7 готовых приложений генетического программирования для решения проблем из различных областей (муравей, регрессия, мультиплексор, закон Мура, чётность, два блока, ребро).

Представления векторов (генетические алгоритмы):

  • геном фиксированной и переменной длины;
  • произвольные представления;
  • 5 векторных приложений для решения проблем из различных областей (сумма, Розенброк, сфера, шаг, шум четвёртой степени).

Другие представления:

  • геномы, основанные на мультимножественном представлении в линейном пакете, для получения в приближении Питта наборов правил или других представлениях, основанных на множествах.

Ссылки