Программирование с несколькими выражениями - Multi expression programming

Программирование с несколькими выражениями (MEP) - это генетическое программирование вариант, кодирующий несколько решений в одной хромосоме. Представление MEP не является специфическим (было протестировано несколько представлений). В простейшем варианте хромосомы MEP представляют собой линейные строки инструкций. Это представление было вдохновлено Трехадресный код. Сила MEP заключается в способности кодировать несколько решений проблемы в одной и той же хромосоме. Таким образом можно исследовать большие зоны поискового пространства. Для большинства задач это преимущество заключается в отсутствии потери времени выполнения по сравнению с генетическое программирование варианты, кодирующие один раствор в хромосоме.[1][2][3]

Пример программы MEP

Вот простая программа MEP:

1: a2: b3: + 1, 24: c5: d6: + 4, 57: * 3, 5

В каждой строке может быть терминал или функция. В случае с функциями нам также нужны указатели на ее аргументы.

Когда мы декодируем хромосому, мы получаем несколько выражений:

E1 = a, E2 = b, E4 = c, E5 = d, E3 = a + b. E6 = c + d. E7 = (a + b) * d.

Какое выражение будет представлять хромосому? В MEP оценивается каждое выражение, и лучшее из них будет представлять хромосому. Для большинства задач эта оценка имеет такую ​​же сложность, как и в случае кодирования одного решения в каждой хромосоме.

Программного обеспечения

MEPX

MEPX - это кроссплатформенное бесплатное программное обеспечение (Windows, Mac OSX и Linux Ubuntu) для автоматического создания компьютерных программ. Его можно использовать для анализа данных, особенно для решения задач регрессии и классификации.

Скриншот программы Multi Expression Programming X

libmep

Либмеп - это бесплатная библиотека с открытым исходным кодом, реализующая технику программирования с несколькими выражениями. Он написан на C ++.

хмэп

хмэп - это новая библиотека с открытым исходным кодом, реализующая технику программирования с несколькими выражениями на языке программирования Haskell.

Смотрите также

Заметки

  1. ^ Oltean M .; Думитреску Д .: "Программирование с несколькими выражениями ", Технический отчет, Univ. Babes-Bolyai, Клуж-Напока, 2002 г.
  2. ^ Oltean M .; Гросан Ч .: "Развитие эволюционных алгоритмов с использованием программирования с несколькими выражениями ", 7-я Европейская конференция по искусственной жизни, 14–17 сентября 2003 г., Дортмунд, под редакцией В. Банцафа (и др.), LNAI 2801, стр. 651-658, Springer-Verlag, Берлин, 2003 г.
  3. ^ Oltean M .; Гросан Ч .: "Развитие цифровых схем с использованием программирования с несколькими выражениями ", Конференция НАСА / Министерства обороны по эволюционируемому оборудованию, 24–26 июня, Сиэтл, под редакцией Р. Зебулума (и др.), Страницы 87-90, IEEE Press, Нью-Джерси, 2004 г.

внешние ссылки