Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Искусственый интелект.doc
Скачиваний:
9
Добавлен:
07.07.2019
Размер:
485.38 Кб
Скачать
  1. Алгоритм упорядочения перебора при сведении задач к подзадачам

Алгоритм упорядоченного перебора в деревьях И-ИЛИ:

1) Помещаем начальную вершину в список OPEN и вычисляем значение

2) Получаем дерево 0 используя значения

3) Выбираем вершину дерева 0 из OPEN, помещаем её в CLOSED и обозначаем через n.

4) Если n заключительная вершина, то помечаем её, как разрешимую и продолжаем. Иначе переходим к п.9.

5) Применяем к 0 процедуру разметки разрешимых вершин.

6) Если начальная вершина помечена, как разрешимая, то выход с деревом 0.

7) Изъять из OPEN все вершины, имеющие предшествующие разрешимые вершины.

8) Перейти к п.2.

9) Построить все порождённые вершины для n. Если порожденных нет, то пометить вершину, как неразрешимую. Иначе перейти к п.14.

10) Применить к 0 процедуру разметки на неразрешимость.

11) Если начальная вершина неразрешима, то решений нет.

12) Изъять из OPEN все вершины, которые имеют предшествующие неразрешимые вершины.

13) Перейти к п.2.

14) Поместить все порождённые вершины в OPEN и установить указатели на n. Вычислить значения для порождённых вершин и пересчитать для всех предшествующих вершин.

15) Перейти к п.2.

Выбор вершины в 0 для очередного раскрытия:

Если 0 на самом деле есть частью дерева с минимальной стоимостью, то безразлично, какую вершину в списке OPEN раскрывать первой, т.к. все они должны быть раскрыты.

Если 0 не является деревом с минимальной стоимостью, то в первую очередь следует раскрывать ту вершину, которая быстрее обнаружит ошибку. Обычно это вершина с наибольшим .

Для деревьев типа И-ИЛИ нет утверждений, аналогичных пространству состояний. Вместе с тем интуитивно понятно, что чем лучше функция аппроксимирует h (истинную величину), тем потенциальное дерево 0 будет ближе к дереву минимальной стоимости.

Существует несколько модификаций упорядоченного перебора. Можно раскрывать несколько вершин перед тем, как строить дерево  0 (как в предыдущем примере). Обычно процесс вычислений в этом случаи ускоряется, но есть опасность раскрытия лишних вершин. Можно применить процесс поэтапного перебора, отбрасывая наиболее дорогие потенциальные деревья. Но здесь существует опасность отбросить оптимальное дерево решений

  1. Особенности поиска решений в игровых задачах

Многие игры, особенно с двумя противниками, можно представить в виде деревьев И-ИЛИ, если ходы игроков чередуются.

При анализе, возможные ходы первого игрока представляются, как вершины типа ИЛИ, т.к. он производит выбор среди нескольких возможных ходов. Ответы противников представляются, как вершины типа И, т.к. при анализе нужно предусматривать все возможные ответы противника. Таким образом получается дерево, где чередуются вершины типа И и ИЛИ.

В сложных играх полный перебор ходов невозможен из-за комбинаторного взрыва. В крестиках-ноликах 3х3 возникает 9! вариантов. В шашках 1040, в шахматах 10120.

Вместо полного перебора выбирается обычно хороший ход в каждой позиции. После этого ждут ответа противника и снова начинают анализировать новую позицию выбирая лучший ход.

При этом в большинстве случаев перебор не заканчивается решением, а ограничивается в глубину и в ширину.

Лучший ход обычно выбирают исходя из статической оценочной функции, которая оценивает каждую рассмотренную позицию, начиная с концевых вершин.

Для первого игрока оценочная функция считается положительной, для противника - она отрицательна. При оценке лучшего хода применяется минимаксная процедура - лучший ход среди худших.

Для крестиков-ноликов оценочной функцией будем считать разность между числом открытых линий для крестика и числом открытых линий для нолика.

L(P)=K(P)-0(P)

Для выигрышных позиций L(P)= +

Д ля проигрышных позиций L(P)= -

При построении порожденных вершин будем учитывать симметрию.

Для поиска лучшего хода применяется минимаксная процедура:

Если первому игроку нужно выбрать лучший ход, то он выбирает тот ход, который соответствует вершине с наибольшей оценкой, следовательно вершинам типа И приписываются оценочные функции, равные максимуму оценок концевых вершин. Если ход выбирает второй игрок, то он выбирает вершину с наименьшей оценкой, т.к. все оценки выбираются с точки зрения первого игрока. Таким образом для вершины типа ИЛИ приписывают минимум оценок концевых вершин, после этого процесс переносится на уровень выше. Такое прослеживание продолжается до вершин, порожденных начальной вершиной. Значения оценочных функций, которые приписываются промежуточным вершинам называются обращёнными величинами. Первый игрок выбирает лучший ход, который соответствует порождённой вершине с наибольшей обращённой величиной.

ПРИМЕР:

Глубина просмотра равна двум.