3. Цель ГП
Сгенерировать такой алгоритм A, чтобы
оценочная функция F(A) была максимальной
4. Генетический алгоритм
Начальная случайная Мутация
популяция случайное изменение
Скрещивание
объединение элементов популяции
Селекция
отбор лучших изпопуляции
Размножение
восстановление размера
Популяции простым копированием
5. Проблема ГП
Представление алгоритма
в виде, удобном для
внесения мутация и
смешивания двух программ
6. Критерий 1
Алгоритм должен кодироваться
потоком байт
То есть, мутация должна происходить
стандартными операторами с потоком байт:
заменой байта и кроссовером.
7. Критерий 2
Явное кодирование алгоритма
Алгоритм должен меняться соизмеримо
количеству изменённых байт.
8. Критерий 3
Любая последовательность байт
должна иметь смысл
Все возможные случайные сочетания байт
должны кодировать максимальное количество
команд
9. Критерий 4
В языке не должно быть сложных структур
Чем чаще структура алгоритма может встречаться
для решения соответствующих задач, тем больше
должна быть вероятность её случайного
получения
10. Иерархические ЯП
Либо неявное кодирование,
либо сложная структура данных
11. Нейронные сети
Удобно для распознавания и фильтров,
но неудобно для представления алгоритмов
13. Evolu Lang. Цикл. кодирование
Если у нас 3 команды:
0x00 — 1-ая команда
0x01 — 2-ая
0x02 — 3-ая
0x03 — 1-ая
0x04 — 2-ая
…
0xfe — 3-ая
0xff — 1-ая
14. Evolu Lang. Стандартные команды
● Отправка исходящего сигнала
● Проверка, получен ли сигнал
● Увеличение переменную на 1
● Уменьшение переменной на 1
● Проверка, что переменная больше 0
15. Evolu Lang. Правила
Первая команда всегда разделить. Он делит
список команда/параметров на правила.
Команды могут быть двух видом —
действия и условия
Правило выполняет до тех пор, пока все
команды-условия в этом правиле истины.
16. Процесс
1. Описание языка
Выложено на http://evolu.org
2. Интерпретатор Evolu Lang на JavaScript
3. Автоматическое тестирование
4. Выбор практической задачи
5. Сравнением с остальными технологиями