38
Рис. 2.6. Локальный максимум и плато
1. Локальные максимумы. Преодолеть их локальный поиск не в состоянии.
2. Плато. Область, в которой эвристика не меняется от хода к ходу.
Для устранения недостатков используются следующие модификации
локального поиска: движение в сторону (разрешение на определенное число
ходов при неизменной или ухудшающейся эвристике); стохастический поиск
с
восхождением к вершине (выбор случайным образом одного из вариантов
восхождения к вершине); поиск с восхождением к вершине и перезапуском.
Каждая из разновидностей поиска, естественно, требует увеличенного числа
локальных итераций, но радикально ускоряет общее движение к цели. Так,
поиск с восхождением к вершине и перезапуском для варианта с тремя
миллионами ферзей позволяет
находить решение меньше, чем за минуту.
Еще одной из разновидностей локального поиска является генетический
алгоритм. Основными этапами алгоритма, обуславливающими его название,
являются отбор, скрещивание и мутации. В задаче о восьми ферзях этот
алгоритм может использоваться следующим образом:
1. Выбираются позиции с лучшими значениями эвристик (отбор).
2. Доска «разрезается» по вертикали
или по горизонтали, и части доски от
разных позиций соединяются вместе (скрещивание).
3. В полученные новые комбинации вносятся случайные изменения
(мутации).
4. Если полученная позиция хуже предыдущих, она отбрасывается, если
лучше, запоминается (отбор).
5. Из имеющихся лучших позиций все повторяется с п.2.
Генетические алгоритмы широко используются при решении
оптимизационных задач, хотя до сих пор не ясно, вызвана их популярность
высокой эффективностью или эстетической привлекательностью и сходством с
теорией эволюции Дарвина.
2.4. Поиск в условиях противодействия
В предыдущих задачах сложность нахождения решения определялась
только размерностью пространства состояний. Существует класс задач, в
которых присутствует элемент
неопределенности. К ним относятся все игровые
задачи. Мы не будем рассматривать шахматы (оцените сами комбинаторную
сложность на первые 40 ходов, коэффициент ветвления на первом ходе 20), а
вернемся к игре в спички.
На первый взгляд здесь то же самое дерево решений. Игрок и его
противник имеют 3 варианта хода на каждом этапе. Проблема заключается
в
том, что если мы выбрали ветвь дерева, которая приводит нас к победе, то это
никак не устраивает противника, и он вовсе не будет двигаться по этой ветви, а
примет все меры, чтобы не дать нам выиграть.