- •8.Стратегии неинформированного поиска с ограничением глубины и итеративным углублением. Двунаправленный поиск.
- •Поиск с ограничением глубины
- •Поиск в глубину с итеративным углублением
- •Двунаправленный поиск
- •18. Представление знаний. Категории и объекты.
- •28. Деревья принятия решений.
- •Выразительность деревьев решений
- •Индуктивный вывод деревьев решений на основе примеров
Двунаправленный поиск
В основе двунаправленного поиска лежит такая идея, что можно одновременно проводить два поиска (в прямом направлении, от начального состояния, и в обратном направлении, от цели), останавливаясь после того, как два процесса поиска встретятся на середине
Двунаправленный поиск реализуется с помощью метода, в котором предусматривается проверка в одном или в обоих процессах поиска каждого узла перед его развертыванием для определения того, не находится ли он на периферии другого дерева поиска; в случае положительного результата проверки решение найдено. Например, если задача имеет решение на глубине d=6 и в каждом направлении осуществляется поиск в ширину с последовательным развертыванием по одному узлу, то в самом худшем случае эти два процесса поиска встретятся, если в каждом из них будут развернуты все узлы на глубине 3, кроме одного. Проверка принадлежности узла к другому дереву поиска может быть выполнена за постоянное время с помощью хэш-таблицы, поэтому временная сложность двунаправленного поиска определяется как 0(bd/2). В памяти необходимо хранить по крайней мере одно из деревьев поиска, для того, чтобы можно было выполнить проверку принадлежности к другому дереву, поэтому пространственная сложность также определяется как о (bd/2). Такие требования к пространству являются одним из наиболее существенных недостатков двунаправленного поиска.
Благодаря такому уменьшению временной сложности двунаправленный поиск становится привлекательным.
Сложность: Допустим, что предшественниками узла n, определяемыми с помощью функции Pred(n), являются все те узлы, для которых п служит преемником. Для двунаправленного поиска требуется, чтобы функция определения предшественника Pred(n) была эффективно вычислимой. Простейшим является такой случай, когда все действия в пространстве состояний обратимы таким образом, что Pred(n) =Suсс_1 (п), а другие случаи могут потребовать проявить значительную изобретательность.
Под понятием “цель” при поиске “в обратном направлении от цели” рассматривается множество целевых состояний как единственное целевое состояние, каждым из предшественников которого также является множество состояний. Наиболее сложным случаем для двунаправленного поиска является такая задача, в которой для проверки цели дано только неявное описание некоторого (возможно, большого) множества целевых состояний, например всех состояний, соответствующих проверке цели “мат” в шахматах.
18. Представление знаний. Категории и объекты.
Рассматривается вопрос о том, какое информационное наполнение следует поместить в базу знаний агента, т.е. как представлять факты о мире. Важной частью любого способа представления знаний является классификация объектов по категориям. Хотя взаимодействие с миром происходит на уровне отдельных объектов, формирование рассуждений в основном происходит на уровне категорий. Например, покупатель может иметь перед собой цель купить хотя бы какой-то баскетбольный мяч, а не конкретный баскетбольный мяч.
Для представления категорий в логике первого порядка могут применяться два основных способа: представление с помощью предикатов или с помощью объектов. Это означает, что для этого можно либо применить предикат Basketball (Ь) либо овеществить всю категорию баскетбольных мячей в виде некоторого объекта — множества баскетбольных мячей Basketballs.
Категории служат для организации и упрощения базы знаний с помощью ^ наследования. Если известно, что все экземпляры категории Food (пища) съедобны, и сформулировано утверждение, что Fruit (фрукты) — это подкласс класса Food, a Apples (яблоки) — подкласс класса Fruit, то становится известно, что каждое яблоко съедобно.
Отношения между классами и подклассами позволяют организовывать категории в виде некоторой ^ таксономии, или таксономической иерархии.
Логика первого порядка позволяет легко формулировать факты о категориях, либо связывая объекты с категориями, либо применяя кванторы к их элементам, как описано ниже.
Любой объект — элемент некоторой категории, например:
ВВ9 ϵ Basketballs
Любая категория — подкласс другой категории, например:
Basketballs ϵ Balls
Все элементы категории имеют некоторые свойства, например:
х ϵ Basketballs => Round(x)
Хотя отношения между подклассами и классами, а также между элементами и множествами являются для категорий наиболее важными, необходимо также иметь возможность формулировать отношения между категориями, которые не являются подклассами друг друга. Например, если будет отмечено, что Males (Самцы) и Females (Самки) — подклассы класса Animals (Животные), то этим не будет сказано, что ни один самец не может одновременно быть самкой. Две или несколько категорий являются непересекающимися, если они не имеют общих элементов. И даже если известно, что категории самцов и самок не пересекаются, на этом основании нельзя утверждать, что животное, не являющееся самцом, должно быть самкой, если не сформулировано дополнительное утверждение, что самцы и самки образуют исчерпывающую декомпозицию категории животных. Непересекающую ся исчерпывающую декомпозицию принято называть сегментацией. Категории могут быть также определены путем указания необходимых и достаточных условий принадлежности к ним. Например, холостяк— это неженатый взрослый мужчина:
Физическая композиция
Один объект может составлять часть другого.для этого используется общее отношение PartOf. Объекты могут группироваться в иерархии PartOf, напоминающие иерархию Subset (подмножество), например, как показано ниже.
PartOf{Bucharest,Romania)
PartOf(Romania,EasternEurope)
Отношение PartOf является транзитивным и рефлексивным, т.е. для него справедливы следующие высказывания:
PartOf(х,у) ^ PartOf{у,z) => PartOf(x,z)
PartOf(x,z)
Категории составных объектов часто характеризуются структурными отношениями между частями. Например, любое двуногое имеет две и только две ноги, прикрепленные к телу.
Для категорий может быть определено отношение PartPartition. Любой объект состоит из частей, принадлежащих к его категориям PartPartition, и может рассматриваться как получающий некоторые свойства от собственных частей. Например, масса составного объекта — это сумма масс его частей. Кроме того, целесообразно определить составные объекты, имеющие различимые части, но не имеющие конкретной структуры.
Например: “Яблоки в этой сумке весят два килограмма”. Можно допустить ошибку, если весу яблок приписать их количество. В данном случае «2 кг» - это некоторое множество яблок. Необходимо ввести новое понятие-совокупность(BunchOf)
Определим понятие BunchOf в терминах отношения PartOf. Очевидно, что каждый элемент множества s — это часть объекта BunchOf (s):
Для любых Х : х ϵ s => PartOf (x, BunchOf (s))
Более того, BunchOf(s) — это наименьший объект, удовлетворяющий данному условию. Иными словами, BunchOf (s) должен быть частью любого объекта, который включает все элементы множества s в качестве части:
Для любых Х и У: х ϵ s => PartOf (х, у)] => PartOf(BunchOf(s) , у)
Эти аксиомы представляют собой пример общего метода, называемого ^логической минимизацией, с помощью которого любой объект может быть определен как наименьший объект, удовлетворяющий определенным условиям.
Некоторые категории имеют строгие определения, например, некоторый объект рассматривается как треугольник тогда и только тогда, когда он является многоугольником с тремя сторонами. С другой стороны, большинство категорий в реальном мире не имеют четких определений; они называются категориями ^ естественных разновидностей.