Java Evolutionary Computation Toolkit: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Новая страница: «ECJ – это бесплатная исследовательская система для эволюционных вычислений, напи...»
 
 
(не показано 26 промежуточных версий 21 участника)
Строка 1: Строка 1:
{{Карточка программы
ECJ – это бесплатная исследовательская система для эволюционных вычислений, написанная на языке программирования Java. Она представляет собой программный каркас, поддерживающий ряд технологий эволюционных вычислений, таких как: генетические алгоритмы, генетическое программирование, эволюционные стратегии, параллельная эволюция, оптимизация большого числа частиц и дифференциальная эволюция. Данный программный каркас моделирует эволюционный процесс по итерациям, используя последовательность конвейеров, приспособленных для того, чтобы соединить одну или более подпопуляций индивидуумов с помощью селекции, скрещивания (такого, как кроссовер), и операторов мутации, которые порождают новых особей. ECJ имеет открытые исходные тексты и распространяется в рамках бесплатной академической лицензии. Она была создана Шоном Люком, профессором компьютерных наук в университете Джорджа Мейсона, и поддерживается Шоном Люком и множеством спонсоров.
| name = ECJ
| logo =
| screenshot =
| caption =
| genre =
| developer =
| programming_language =
| operating_system = [[Кроссплатформенное программное обеспечение]]
| latest_release_version = 20
| latest_release_date =
| latest_preview_version =
| latest_preview_date =
| license = [[Academic Free License|AFL]], [[Лицензия BSD|BSD]]
| website = http://cs.gmu.edu/~eclab/projects/ecj/
}}
'''ECJ''' — [[свободное ПО|свободная]] исследовательская система для [[эволюционные вычисления|эволюционных вычислений]], написанная на языке программирования Java.


Она представляет собой программный каркас, поддерживающий ряд технологий эволюционных вычислений, таких как: [[генетические алгоритмы]], [[генетическое программирование]], эволюционные стратегии, параллельная эволюция, оптимизация большого числа частиц и дифференциальная эволюция. Данный программный каркас моделирует эволюционный процесс по итерациям, используя последовательность конвейеров, приспособленных для того, чтобы соединить одну или более подпопуляций индивидуумов с помощью селекции, скрещивания (такого, как кроссовер), и операторов мутации, которые порождают новых особей. ECJ имеет открытые исходные тексты и распространяется в рамках лицензии [[Academic Free License|AFL]]. Она была создана Шоном Люком, профессором компьютерных наук в университете Джорджа Мейсона, и поддерживается Шоном Люком и множеством спонсоров.
Основные возможности (перечислены со [http://cs.gmu.edu/~eclab/projects/ecj/ страницы проекта ECJ])::


Основные возможности (перечислены со [http://cs.gmu.edu/~eclab/projects/ecj/ страницы проекта ECJ]):
* графический интерфейс пользователя с диаграммами;

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


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


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


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


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


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


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


Другие представления:
Другие представления:
Строка 49: Строка 67:
* геномы, основанные на мультимножественном представлении в линейном пакете, для получения в приближении Питта наборов правил или других представлениях, основанных на множествах.
* геномы, основанные на мультимножественном представлении в линейном пакете, для получения в приближении Питта наборов правил или других представлениях, основанных на множествах.


==Ссылки==
== Ссылки ==
* [http://cs.gmu.edu/~eclab/projects/ecj/ страница проекта ECJ]
* [http://cs.gmu.edu/~eclab/projects/ecj/ Страница проекта ECJ]
* Wilson, G. C. McIntyre, A. Heywood, M. I. (2004), [http://www.springerlink.com/content/k52u071p8t1052j7/ "Resource Review: Three Open Source Systems for Evolving Programs-Lilgp, ECJ and Grammatical Evolution"], ''Genetic Programming And Evolvable Machines'', '''5''' (19): 103-105, Kluwer Academic Publishers. ISBN 1389-2576
* Wilson, G. C. McIntyre, A. Heywood, M. I. (2004), [http://www.springerlink.com/content/k52u071p8t1052j7/ «Resource Review: Three Open Source Systems for Evolving Programs-Lilgp, ECJ and Grammatical Evolution»]{{Недоступная ссылка|date=2020-03|bot=InternetArchiveBot }}, ''Genetic Programming And Evolvable Machines'', '''5''' (19): 103—105, Kluwer Academic Publishers. {{ISSN|1389-2576}}

[[Категория:Научное программное обеспечение]]
[[Категория:Искусственный интеллект]]
[[Категория:Свободное программное обеспечение, написанное на Java]]

Текущая версия от 08:14, 17 июля 2024

ECJ
Написана на Java
Операционная система Кроссплатформенное программное обеспечение
Аппаратная платформа Java Virtual Machine
Последняя версия 20
Лицензия AFL, BSD
Сайт cs.gmu.edu/~eclab/projec…

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

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

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

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

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

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

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

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

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

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

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

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