Вероятностные и компактные генетические алгоритмы
8.1. Вероятностные генетические алгоритмы
Рассмотрим представление популяции вектором вероятностей на следующем примере для трех различных популяций состоящих из четырех хромосом дан ниже:
Здесь популяция, состоящая из двоичных хромосом, представляется вектором , каждый элемент которого устанавливает относительную частоту появления гена "1" на соответствующей позиции.
Впервые такое представление было введено в [1] (Equilibrium Genetic Algorithm) и взято за основу в последующих работах [2,3,4,5,6]. В [1] на этой основе проведены теоретические исследования вопросов сходимости ГА и показано, что для ряда классических задач вероятностный ГА дает результаты, не уступающие стандартному ГА с однородным кроссинговером и стратегией элитизма при отборе родителей.
В этом случае эволюция популяции соответствует траектории в гиперкубе пространства . Траектория начинается в середине единичного гиперкуба (
для всех
) и заканчивается в одной из его вершин, которая соответствует найденному решению (двоичному коду), как это показано на рис.8.1.
В классическом ГА популяция представляется множеством двоичных векторов и изменяется путем применения операторов репродукции, кроссинговера и мутации. "Вероятностный" ГА работает не с исходной популяцией (множеством двоичных векторов), а непосредственно с ее вероятностным представлением – вектором вероятностей . В этом случае [1] генетические операторы выполняются следующим образом.
Репродукция. В соответствии с текущим распределением вероятностей генерируется некоторое (относительно небольшое) множество двоичных векторов – особей. Для каждой из построенных особей вычисляется значение фитнесс-функции. Затем вектор вероятностей
сдвигается в сторону особи
(вершины гиперкуба), имеющей лучшее значение фитнесс-функции:
. Здесь
– фиксированное вещественное число. Если несколько особей имеют наилучшее значение, то случайным образом выбирается одна из них.
Мутация. Каждая координата вектора корректируется случайным образом с вероятностью
, где
– вещественный параметр, а
принимает значения и с равной вероятностью. Таким образом,
сдвигается на небольшое расстояние в направлении или в соответствии со случайным значением
. В [1] показано, что оператор кроссинговера в этом случае не является необходимым.
Очевидно, что из построенного вектора вероятностей легко получить двоичный вектор, представляющий решение задачи. Если
(или близко к 1), то значение гена
, в противном случае
. Эксперименты показали, что для некоторых задач этот подход дает результаты, сравнимые с классическим ГА при меньших затратах вычислительных ресурсов.