stringtranslate.com

Мультивыраженное программирование

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

Представление

Хромосомы MEP представляют собой массивы инструкций, представленных в формате трехадресного кода .

Каждая инструкция содержит переменную, константу или функцию. Если инструкция является функцией, то аргументы (заданные в виде адресов инструкций) также присутствуют.

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

Вот простая MEP-хромосома (метки слева не являются частью хромосомы):

1: а2: б3: + 1, 24: с5:д6: + 4, 57: *3, 5

Фитнес-вычисление

Когда хромосома оценивается, неясно, какая инструкция обеспечит вывод программы. Во многих случаях получается набор программ, некоторые из которых совершенно не связаны друг с другом (не имеют общих инструкций).

Для приведенной выше хромосомы вот список возможных программ, полученных при декодировании:

Е1 = а,Е2 = б,Е4 = с,Е5 = д,Е3 = а + б.Е6 = с + d.Е7 = (а + б)*д.

Каждая инструкция оценивается как возможный результат работы программы.

Соответствие (или ошибка) вычисляется стандартным способом. Например, в случае символической регрессии пригодность представляет собой сумму разностей (по абсолютному значению) между ожидаемым результатом (называемым целевым) и фактическим результатом.

Процесс назначения фитнеса

Какое выражение будет представлять хромосому? Какой из них даст приспособленность хромосомы?

В MEP лучший из них (имеющий наименьшую ошибку) будет представлять хромосому. Это отличается от других методов GP: в линейном генетическом программировании результат выдает последняя инструкция. В декартовом генетическом программировании ген, обеспечивающий результат, развивается, как и все другие гены.

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

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

МЕПХ

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

libmep

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

хмеп

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

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

Примечания

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

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