
- •Лекции 8-9(Тема 5)
- •5.2. Понятие пространства состояний задачи. Примеры
- •5.3.Стратегии поиска в пространствах состояний
- •5.3.1. Поиск с возвратами
- •5.3.2. Поиск в глубину и итеративное углубление
- •5.3. 3. Поиск в ширину
- •5.4. Эвристический поиск по заданному критерию: основные понятия; алгоритм а*.
- •5.5.Сведение задач к подзадачам
- •5.5.1. Представление задач в виде графов and/or
- •5.5.2. Примеры представлений в виде графа and/or
- •13.2. Поиск в ширину;
5.5.Сведение задач к подзадачам
В этом пункте рассматривается подход к решению задач, основанный на сведении задачи к подзадачам. Идея такого подхода состоит «в размышлении в обратном направлении» от задачи, которую предстоит решить, с тем чтобы выделить подзадачи, подподзадачи и т. д., пока, наконец, первоначальная задача не будет сведена к набору тривиальных элементарных задач. Графы AND/OR могут служить удобным средством представления тех задач, которые возможно естественным образом разложить на ряд взаимно независимых подзадач. К примерам таких задач относится поиск маршрута, проектирование, символическое интегрирование, игры, доказательство теорем и т.д.
5.5.1. Представление задач в виде графов and/or
Выше рассматривались способы решения задач, представленных с помощью пространства состояний. В соответствии с этим решение задачи сводилось к поиску пути в графе пространства состояний. Но для некоторых категорий задач более естественно подходит другое представление, в виде графа AND/OR. Графы AND/OR могут служить удобным средством представления тех задач, которые возможно естественным образом разложить на ряд взаимно независимых подзадач. К примерам таких задач относится поиск маршрута, проектирование, символическое интегрирование, игры, доказательство теорем и т.д.
В основе такого представления лежит декомпозиция задачи на подзадачи. Декомпозиция на подзадачи может применяться, если подзадачи являются взаимно независимыми и поэтому могут решаться независимо друг от друга.
Проиллюстрируем сказанное выше на примере(см.1). Рассмотрим задачу поиска маршрута между двумя указанными городами на дорожной карте, показанной на рис. 5.13. На данный момент значения длины маршрутов будут игнорироваться. Эту задачу, безусловно, можно сформулировать как поиск пути в пространстве состояний. Соответствующее пространство состояний может выглядеть полностью аналогично этой карте: узлы в пространстве состояний соответствуют городам, дуги — прямым соединениям между городами, а стоимости дуг — расстояниям между городами. Но может рассматриваться и другое представление этой задачи, основанное на ее естественной декомпозиции.
На карте, приведенной на рис.5.13, имеется также река. Предположим, что эту реку можно пересечь только с помощью двух мостов, один из которых находится в городе f, а другой — в городе д. Очевидно, что необходимо включить в разрабатываемый маршрут один из мостов, поэтому маршрут должен пройти или через f, или через д. Таким образом, имеются два описанных ниже основных варианта.
Рис.5.13. Поиск маршрута между городами a и z no дорожной карте. Реку можно пересечь е пункте f или д. Представление этой задачи в виде графа AND/OR показано на рис. 5.14.(Братко,1).
Чтобы найти путь от а до z, необходимо выполнить одно из следующих действий.
Найти путь от а до z через f.
Найти путь от а до z через д.
Теперь каждый из этих двух вариантов задачи можно разложить на подзадачи, как описано ниже.
1. Чтобы найти путь от а до z через f, необходимо выполнить следующее:
найти путь от а до f;
найти путь от f до z.
2. Чтобы найти путь от а до z через д, необходимо выполнить следующее:
найти путь от а до д;
найти путь от д до z.
В конечном итоге имеются два основных варианта решения первоначальной задачи: проложить маршрут через f или проложить его через д. Кроме того, каждый из этих вариантов задачи можно разделить на две подзадачи (соответственно, 1.1 и 1.2 или 2.1 и 2.2). Здесь важно то, что (в обоих вариантах) каждая из подзадач может быть решена независимо от другой. Такую декомпозицию можно представить в виде графа AND/OR (рис.5.14). Обратите внимание на две дуги, соединенные кривой линией, которые обозначают связь AND между подзадачами. Безусловно, что граф, показанный на рис.5.14, представляет собой только верхнюю часть соответствующего дерева AND/OR. Дальнейшая декомпозиция подзадач может быть основана на рассмотрении других промежуточных городов.
Какими являются целевые узлы в подобном графе AND/OR? Целевые узлы соответствуют подзадачам, которые являются тривиальными, или "простейшими". В данном примере такой подзадачей будет "поиск маршрута от а до с", поскольку на дорожной карте имеется прямое соединение между городами а и с.
В этом примере введены некоторые важные понятия. Граф AND/OR представляет собой ориентированный граф, узлы которого соответствуют задачам, а дуги обозна-
Рис.5.14. Представление задачи поиска маршрута, приведенной на рис 5.13, в виде графа AND/OR. Узлы соответствуют задачам или подзадачам, а дуги, соединенные кривыми, показывают, что должны быть решены все (в данном случае обе) подзадачи
б)
В представлении в виде пространства состояний решение задачи сводилось к поиску пути в пространстве состояний. Каково же решение в представлении в виде графа AND/OR? Безусловно, что любое решение должно включить все подзадачи любого узла AND. Поэтому теперь решение является не путем, а деревом. Такое дерево решения, Т, определяется следующим образом.
Первоначальная проблема, Р, является корневым узлом дерева Т.
Если Р — узел OR, то в дереве Т находится один и только один из его преем ников (по графу AND/OR) вместе с его собственным деревом решения.
Если Р — узел AND, то в дереве Т находятся все его преемники (по графу AND/OR) наряду с их деревьями решения.
Это определение показано на рис.5.15. На данном рисунке показаны также стоимости, назначенные дугам. Стоимости позволяют сформулировать критерий оптимизации. Можно, например, определить стоимость графа решения как сумму всех стоимостей дуг в этом графе. Поскольку нас обычно интересует минимальная стоимость, то предпочтительным является граф решения, показанный на рис.5.16, в.
в)
б)
Рис.5.16.. Примеры графов решения: а) граф AND /OR, в котором d, g и h являются целевыми узлами, a — задача, которая должна быть решена; б) и в) два дерева решения, стоимость которых составляет соответственно 9 и 8. Здесь стоимость дерева решения определена как сумма всех стоимостей дуг в дереве решения
Но мы не обязаны всегда рассматривать стоимости дуг в качестве критерия оптимизации. Иногда более естественно связать стоимости с узлами, а не с дугами или связать их и с дугами, и с узлами.
На основании сказанного выше можно сделать следующие выводы.
Представление задачи в виде графа AND/OR основано на принципе декомпозиции задачи на подзадачи.
Узлы в графе AND/OR соответствуют задачам, а связи между узлами указывают на отношения между задачами.
Узел, из которого исходят связи OR, представляет собой узел OR. Для решения задачи, обозначенной узлом OR,достаточно решить одну из задач его узлов-преемников.
Узел, из которого исходят связи AND, представляет собой узел AND. Для решения задачи, обозначенной узлом AND, необходимо решить все задачи его узлов-преемников.
Для указанного графа AND/OR конкретная задача формулируется с помощью следующих двух понятий:
начальный узел;
целевое условие для распознавания целевых узлов.
Целевые (или "оконечные") узлы соответствуют тривиальным (или "простейшим") задачам.
Любое решение представлено в виде графа решения, который является подграфом графа AND/OR.
Представление в виде пространства состояний может рассматриваться как частный случай представления в виде графа AND/OR, в котором все узлы являются узлами OR.
Чтобы можно было воспользоваться преимуществами представления AND/OR,необходимо, чтобы узлы, связанные отношениями AND, представляли подзадачи, которые могут быть решены независимо друг от друга. Критерий независимости можно немного ослабить следующим образом: должно существовать упорядочение подзадач AND, такое, чтобы решения подзадач, встречающихся раньше при этом упорядочении, не уничтожались в результате решения последующих подзадач.
Для обеспечения возможности сформулировать критерий оптимизации могут быть назначены стоимости дугам или узлам, или тем и другим.