Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_2010.docx
Скачиваний:
9
Добавлен:
01.03.2025
Размер:
1.04 Mб
Скачать
  1. Запись данных в пространстве состояний в виде графа

Представление задач в пространстве состояний

Чтобы построить корректное описание задач, очень важен выбор некоторой формы описания состояний, для этого могут быть использованы строки символов, векторы, двумерные массивы, деревья состояний и списки. Часто запись задач выполняется в форме, которая имеет некоторое сходство с физическим свойством решаемой задачи. Для описания пространства состояний для поиска решений задач, иногда вводят понятие оператор (преобразует состояние от начального к целевому, тем самым находя решение (некое подобие подпрограммы)).

Запись состояний в виде графов

Граф состоит из конечного множества вершин, соединенных с помощью дуг. Если эти дуги направлены от одной вершины к другой, то такие графы называются направленными. Если дуга от вершины Ni к вершине ni, то считается, что ni является дочерней вершиной Ni, а Ni является родительской вершиной.

Если дуга между вершинами имеет двустороннее направление, то вершины являются дочерними друг к другу. Переход i называется ребром графа.

В случае, когда граф используется для записи состояний, то его вершины записывают состояние, ребра – операторы. Оператор (правило) – это совокупность условий действий для перехода из одного состояния в другое.

Последовательность вершин С1-Сn называется путем длины n. Если в общем графе такой путь существует, то С1 – предок, а Сn – потомок.

Граф состоит из множества (не обязательно конечного) вершин. Некоторые пары вершин соединены с помощью дуг, и эти дуги направлены от одного члена этой пары к другому. Такие графы носят название направленных графов. Если некоторая дуга направлена от вершины ni к вершине nj, то говорят, что вершина nj является дочерней для вершины ni, а вершина ni является родительской вершиной для nj. Может оказаться, что наши две вершины будут дочерними друг для друга; в этом случае пара направленных дуг называется иногда ребром графа. В случае, когда граф используется для представления пространства состояний, с его вершинами связывают описание состояний, а с его дугами- операторы.

Последовательность вершин ni1,ni2,...,nik., в которой каждая вершина nij дочерняя для ni,j-1, j=2,k, называется путем длины k от вершины ni1, к вершине nik. Если существует путь, ведущий от вершины ni к вершине nj, то вершину nj называют достижимой из вершины ni или потомком вершины ni . В этом случае вершина ni называется также предком для вершины nj. Видно, что проблема нахождения последовательности операторов, преобразующих одно состояние в другое, эквивалентна задаче поиска пути на графе

  1. Полный перебор при поиске на графе

Процессы поиска на графе

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

полный перебор

В методе полного перебора вершины раскрываются в том порядке, в котором они строятся. Простой алгоритм полного перебора на дереве состоит из следующей последовательности шагов:

1) Поместить вершину в список, называемый ОТКРЫТ.

2) Если список ОТКРЫТ пуст, то на выход подается сигнал о неудаче поиска, в противном случае переходить к следующему шагу.

3) Взять первую вершину из списка ОТКРЫТ и перенести ее в

список ЗАКРЫТ; назовем эту вершину n.

4) Раскрыть вершину n, образовав все вершины, непосредственно следующие за n. Если непосредственно следующих вершин нет, то переходить сразу же к шагу (2). Поместить имеющиеся непосредственно следующие за n вершины в конец списка ОТКРЫТ и построить указатели, ведущие от них назад к вершине n.

5) Если какие-нибудь из этих непосредственно следующих за n вершин являются целевыми вершинами, то на выход выдать решение, получающееся просмотром вдоль указателей; в противном случае переходить к шагу (2).

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

В методе полного перебора непременно будет найден самый короткий путь к целевой вершине при условии, что такой путь вообще существует. (Если такого пути нет, то в указанном методе будет объявлено о неуспехе в случае конечных графов, а в случае бесконечных графов алгоритм никогда не кончит свою работу.)

Рисунок 6 – Блок-схема программы алгоритма полного перебора для дерева.