Evolu Lang

16

Click here to load reader

Transcript of Evolu Lang

Page 1: Evolu Lang

Evolu Langспециальный язык длягенетического программирования

Андрей Ситник

Page 2: Evolu Lang

Генетическое программирование —автоматическое создание программы с

помощью генетического алгоритма

Page 3: Evolu Lang

Сгенерировать такой алгоритм A, чтобы оценочная функция F(A) была максимальной

Цель ГП

Page 4: Evolu Lang

Генетический алгоритм

Начальная случайнаяпопуляция

Мутацияслучайное изменение

Селекцияотбор лучших изпопуляции

Размножениевосстановление размераПопуляции простым копированием

Скрещиваниеобъединение элементов популяции

Page 5: Evolu Lang

Проблема ГП

Представление алгоритмав виде, удобном длявнесения мутация и

смешивания двух программ

Page 6: Evolu Lang

Критерий 1

Алгоритм должен кодироватьсяпотоком байт

То есть, мутация должна происходить стандартными операторами с потоком байт:

заменой байта и кроссовером.

Page 7: Evolu Lang

Критерий 2

Явное кодирование алгоритма

Алгоритм должен меняться соизмеримо количеству изменённых байт.

Page 8: Evolu Lang

Критерий 3

Любая последовательность байтдолжна иметь смысл

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

команд

Page 9: Evolu Lang

Критерий 4

В языке не должно быть сложных структур

Чем чаще структура алгоритма может встречаться для решения соответствующих задач, тем больше

должна быть вероятность её случайного получения

Page 10: Evolu Lang

Иерархические ЯП

Либо неявное кодирование,либо сложная структура данных

Page 11: Evolu Lang

Нейронные сети

Удобно для распознавания и фильтров,но неудобно для представления алгоритмов

Page 12: Evolu Lang

Evolu Lang. Команды

0××× ×××× 0××× ×××× 1××× ×××× 1××× ××××

команда

команда параметр

Page 13: Evolu Lang

Evolu Lang. Цикл. кодирование

Если у нас 3 команды:

0x00 — 1-ая команда0x01 — 2-ая0x02 — 3-ая0x03 — 1-ая0x04 — 2-ая …0xfe — 3-ая0xff — 1-ая

Page 14: Evolu Lang

Evolu Lang. Стандартные команды

● Отправка исходящего сигнала● Проверка, получен ли сигнал● Увеличение переменную на 1● Уменьшение переменной на 1● Проверка, что переменная больше 0

Page 15: Evolu Lang

Evolu Lang. Правила

Первая команда всегда разделить. Он делит список команда/параметров на правила.

Команды могут быть двух видом —действия и условия

Правило выполняет до тех пор, пока все команды-условия в этом правиле истины.

Page 16: Evolu Lang

Процесс

1. Описание языкаВыложено на http://evolu.org

2. Интерпретатор Evolu Lang на JavaScript

3. Автоматическое тестирование

4. Выбор практической задачи

5. Сравнением с остальными технологиями