Java Evolutionary Computation Toolkit
| 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 векторных приложений для решения проблем из различных областей (сумма, Розенброк, сфера, шаг, шум четвёртой степени).
Другие представления:
- геномы, основанные на мультимножественном представлении в линейном пакете, для получения в приближении Питта наборов правил или других представлениях, основанных на множествах.
Ссылки
- Страница проекта ECJ
- Wilson, G. C. McIntyre, A. Heywood, M. I. (2004), «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. ISSN 1389-2576
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.