Простые генетические алгоритмы
Далее проверяется условие остановки алгоритма. Примем, что для нашего примера поиска необходимо сделать 5 итераций. Поскольку для исходной популяции ни одного шага алгоритм еще не сделал, то условие остановки не выполнено. Тогда на следующем этапе необходимо провести селекцию особей для скрещивания. Селекция заключается в выборе (по рассчитанным на предыдущем этапе значениям функции приспособленности) тех особей, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют особи с наибольшими значениями функции приспособленности.
Рисунок 17 - Сектора рулетки для всех особей исходной популяции
В задаче для селекции был использован метод рулетки. Каждой особи может быть сопоставлен сектор колеса рулетки, величина которого устанавливается пропорциональной значению функции приспособленности данной особи (рисунок 17). Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки.
Все колесо рулетки соответствует сумме значений функции приспособленности всех особей. Каждой особи, обозначаемой chi для i=1,2,…N (где Nобозначает численность популяции), соответствует сектор колеса ν(chi), выраженный в процентах согласно формуле:
(6)
(7)
причем- значение функции приспособленности особи -, а- вероятность селекции особи .
Селекция особи может быть представлена как результат поворота колеса рулетки, поскольку «выигравшая», т.е. выбранная особь относится к выпавшему сектору этого колеса. Очевидно, что чем больше сектор, тем больше вероятность «победы» соответствующей особи. Поэтому вероятность выбора данной особи оказывается пропорциональной значению ее функции приспособленности. Если всю окружность колеса рулетки представить в виде цифрового интервала [0, 100], то выбор особи можно отождествить с выбором числа из интервала [а, b], где а и b обозначают соответственно начало и окончание фрагмента окружности, соответствующего этому сектору колеса; очевидно, что0< а < b < 100. В этом случае выбор с помощью колеса рулетки сводится к выбору числа из интервала [0, 100], которое соответствует конкретной точке на окружности колеса.
Согласно описанному методу для каждой особи текущей популяции (в нашем случае - исходной популяции) получаем секторы колеса рулетки, выраженные в процентах (таблица 3, четвертый столбец). Приведем пример расчета сектора колеса рулетки ν(ch1)для первой особи популяции L3T-5. Вычислим сумму функций приспособленности всех особей популяции:
(8)
Далее рассчитаем вероятность селекции первой особи по формуле (7) . Сектор колеса рулетки, соответствующий первой особи, по формуле (6) равен: Аналогичный расчет делает для всех остальных особей популяции. Результаты приведены в четвертом столбце таблицы 3. То есть мы последовательно отмеряем каждой особи ее часть на колесе рулетки. Распределение секторов по колесу рулетки приведено на рисунке 17, каждый сектор подписан соответствующим номером особи.
Розыгрыш с помощью колеса рулетки сводится к случайному выбору числа из интервала [0, 100], указывающего на соответствующий сектор на колесе, т. е. на конкретную особь. Выберем из нашей популяции методом рулетки 34 пары особей. Поясним: пусть на рулетке выпадает число 61, оно располагается промежутке от 60,34до 62,07, этому промежутку соответствует особь L4T-1- физическая размерность скорости смещения объема - это первая особь родительской пары. Далее разыгрываем рулетку снова, выпадает число 56, попадающее в промежуток от 55,17до 56,90, что соответствует особи L1T-1 - физическая размерность линейной скорости - вторая родительская особь. Таким образом, получили первую пару особей для скрещивания. Производим скрещивание по формуле (3), где Lm1Tn1 и Lm2Tn2- родители, Lm3Tn3- потомок.