Cравнение RMHC и генетического алгоритма на Royal Road Function
Введение
Важной целью исследования генетических алгоритмов является понимание вопроса: на каком классе проблем генетические алгоритмы существенно превосходит другие алгоритмы поиска.
В данной статье рассмотрим вопрос о производительности двух алгоритмов: Random-mutation hill-climbing и генетического алгоритма. Для этого решим задачу поиска оптимальной строки для Royal Road Function. Проведем оценку времени работы каждого алгоритма и проверим полученные результаты экспериментально.
Royal Road Function
Определение: |
Схема — частично определенная битовая строка Порядок схемы Блок — подсхема. Набор блоков одинаковый длины формируют схему. — число определенных битов в схеме . | , где ' ' обозначает символ или .
Определение: |
Royal Road function Уровень — набор схем Royal Road function с одинаковым порядком. Экземпляр схемы — битовая строка , биты которой совпадает с определенными битами схемы в соответствующих позициях. Говорят, что | — список схем одинаковой длины.
Определение: |
Функция приспособленности | , где
Пример Royal Road Function
11111111******************************************************** ;
********11111111************************************************ ;
****************11111111**************************************** ;
************************11111111******************************** ;
********************************11111111************************ ;
****************************************11111111**************** ;
************************************************11111111******** ;
********************************************************11111111 ;
11111111111111111111111111111111111111111111111111111111111111111 ;
Анализ RMHC и IGA
The Building Block Hypothesis
Согласно The Building Block Hypothesis[1] генетический алгоритм, скрещивающий экземпляры блоков в среднем выполняет поиск быстрее, чем алгоритм, скрещивающий экземпляры самих схем.
Постановка задачи
Оценим время поиска оптимальной строки для некоторой заданной Royal Road function
со схемами, разложенными в блоков длины . Длина строки должна составлять . Для поиска воспользуемся алгоритмами RMHC и IGA.RMHC (Random-mutation hill-climbing)
Алгоритм
1. Выбирается случайная строка и сохраняется как лучшая. 2. Если строка является оптимум или если был достигнут установленный максимум для числа вычислений функции приспособленности — возвращается лучшая строка. В противном случае выполняется переход к следующему шагу. 3. Выбирается бит для случайной мутации. Если мутация приводит к большему либо равному значению функции приспособленности, то полученная строка выбирается, как лучшая и выполняется переход к шагу 2.
Оценка для RMHC
Обозначим время нахождения первого блока за [2]
,Время для обнаружения второго блока длиннее, так как тратиться время на тестирование мутаций как в первом, так и во втором блоке. Число мутаций, которые происходят вне первого блока:
, значит время нахождения первого и второго блока:
Ожидаемое время поиска:
, где —
Таким образом, можно получить оценку:
IGA (Idealized Genetic Algorithm)
Рассмотрим идеализированный генетический алгоритм. Используется допущение о том, что IGA знает, экземплярами каких схем является полученная на каждой итерации строка.
Алгоритм
1. Выбирается случайная строка и сохраняется, как лучшая. 2. Выбирается случайная строка, проводится проверка, является ли строка экземпляром хотя бы одной из требуемых схем. Если строка является экземпляром еще не обнаруженных ранее схем, выполняется скрещивание с лучшей строкой таким образом, чтобы получить строку, являющейся экземпляром для всех обнаруженных схем. Полученная строка сохраняется как лучшая. 3. Если лучшая строка является экземпляром для всех искомых схем или если был достигнут установленный максимум для числа итераций — возвращается лучшая строка. В противном случае выполняется переход к шагу 2.
Оценка для IGA
Вероятность нахождения требуемого блока
в случайной строке , вероятность нахождения блока за время равнаВероятность нахождения всех требуемых
блоков за время :Вероятность нахождения требуемых блоков точно в момент времени
:Ожидаемое время поиска:
Воспользовавшись приближением
для малых , можно получить:
Таким образом, оценка для ожидаемого времени поиска:
IGA и Real GA
Выделим ряд особенностей IGA, которые можно соблюсти в реальном генетическом алгоритме:
- Независимые выборки: размер популяции должен быть достаточно большой, процесс отбора должен быть достаточно медленным, и частота мутаций должна быть достаточной, чтобы убедиться, что ни один бит не фиксируется в одном значении в большинстве строк в популяции.
- Мгновенный кроссовер: скорость кроссовера должна быть такой, что время для скрещивания двух искомых схем мало по отношению ко времени их нахождения.
- Превосходство в скорости: оценка скорости для RMHC: , для IGA: . Длина строки должна быть достаточно большой, чтобы фактор давал превосходство в скорости для алгоритма IGA.
Результаты сравнения
Были получены следующие экспериментальные результаты:
Сравнение осуществлялось между RMHC и GA на Royal Road Function
. Рассматривался вопрос о достижении уровней — то есть, являлась ли полученная лучшая строка экземпляром для всех схем рассматриваемого уровня.Royal Road Function
:- Уровень 1:
- Уровень 2:
- Уровень 3:
- Уровень 4:
Экспериментальные результаты
В таблице указаны среднее число вычислений функции приспособленности для достижения первого, второго и третьего уровней. Четвертый уровень не был достигнут ни одним алгоритмом за выбранный максимум
для числа вычислений функции приспособленности.Уровень 1 | Уровень 2 | Уровень 3 | ||
GA | число вычислений | 500 | 4486 | 86078 |
% запусков | 100 | 100 | 86 | |
RMHC | число вычислений | 230 | 8619 | 95027 |
% запусков | 100 | 100 | 41 |
Как видно, время достижения первого уровня сравнимо для двух алгоритмов, но генетический алгоритм быстрее, при достижении второго и третьего уровней.
Примечания
- ↑ Holland J. Building block, cohort genetic algorithms and hyperplane-defined functions. Evolutionary Computation.
- ↑ Mitchell M., Holland J., Forrest S.. When Will a Genetic Algorithm Outperform Hill Climbing?