Evolu Lang
Click here to load reader
-
Upload
andrey-sitnik -
Category
Technology
-
view
829 -
download
1
Transcript of Evolu Lang
Evolu Langспециальный язык длягенетического программирования
Андрей Ситник
Генетическое программирование —автоматическое создание программы с
помощью генетического алгоритма
Сгенерировать такой алгоритм A, чтобы оценочная функция F(A) была максимальной
Цель ГП
Генетический алгоритм
Начальная случайнаяпопуляция
Мутацияслучайное изменение
Селекцияотбор лучших изпопуляции
Размножениевосстановление размераПопуляции простым копированием
Скрещиваниеобъединение элементов популяции
Проблема ГП
Представление алгоритмав виде, удобном длявнесения мутация и
смешивания двух программ
Критерий 1
Алгоритм должен кодироватьсяпотоком байт
То есть, мутация должна происходить стандартными операторами с потоком байт:
заменой байта и кроссовером.
Критерий 2
Явное кодирование алгоритма
Алгоритм должен меняться соизмеримо количеству изменённых байт.
Критерий 3
Любая последовательность байтдолжна иметь смысл
Все возможные случайные сочетания байт должны кодировать максимальное количество
команд
Критерий 4
В языке не должно быть сложных структур
Чем чаще структура алгоритма может встречаться для решения соответствующих задач, тем больше
должна быть вероятность её случайного получения
Иерархические ЯП
Либо неявное кодирование,либо сложная структура данных
Нейронные сети
Удобно для распознавания и фильтров,но неудобно для представления алгоритмов
Evolu Lang. Команды
0××× ×××× 0××× ×××× 1××× ×××× 1××× ××××
команда
команда параметр
Evolu Lang. Цикл. кодирование
Если у нас 3 команды:
0x00 — 1-ая команда0x01 — 2-ая0x02 — 3-ая0x03 — 1-ая0x04 — 2-ая …0xfe — 3-ая0xff — 1-ая
Evolu Lang. Стандартные команды
● Отправка исходящего сигнала● Проверка, получен ли сигнал● Увеличение переменную на 1● Уменьшение переменной на 1● Проверка, что переменная больше 0
Evolu Lang. Правила
Первая команда всегда разделить. Он делит список команда/параметров на правила.
Команды могут быть двух видом —действия и условия
Правило выполняет до тех пор, пока все команды-условия в этом правиле истины.
Процесс
1. Описание языкаВыложено на http://evolu.org
2. Интерпретатор Evolu Lang на JavaScript
3. Автоматическое тестирование
4. Выбор практической задачи
5. Сравнением с остальными технологиями