Представление знаний в интеллектуальных системах

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

?асширения содержащихся в ней отношений. Например: идёт_дождь, начальник(_,_), библиотекарь(_) и книга(_,_,_). Простые вопросы, не содержащие никаких переменных, называются да-нет-вопросами. Они допускают лишь два возможных ответа в соответствии с тем, имеется или отсутствует подходящий факт в БД. Семантика вопроса определяется состоянием БД при поиске ответа. Для БД библио имеем:

? - книга(грэм, рассуждать, чтобы программировать ,издат(дюно,1986)).

- - > да

? - книга( рассуждать, чтобы программировать ,издат(дюно,1986)).

- - > нет

? - начальник(эмиль, генри).

- - > нет

? - идёт_дождь(сейчас)

- - > нет

Так как в Прологе нет объявления и контроля типов, то нет и ошибок программирования. Неверно написанное пользователем имя для системы является новым атомом: анри и генри - два атома, которые не имеют ничего общего. Бинарное отношение не годится в качестве тернарного, зато тернарное отношение задаёт три бинарных отношения с одинаковыми именами - для трёх пар из трёх аргументов: отношения книга(_,_) и книга(_,_,_) для системы различны, чем и обусловлен ответ на второй приведённый выше вопрос.

 

17.Системы прямой дедукции. Системы обратной дедукции

 

Системы прямой дедукции

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

(Факт (1) Факт (2) Правило (1)) Цель (1).

Этап(1):

Преобразуем Факт(1) и Правило (1)) в дизъюнкты, чтобы применить затем метод резолюций. С помощью резолюции выводим новое правило (2), используя обозначение

Факт(1) Правило (1)

Правило (2)

Факт(1): Правило (1):

Проф(Инфо, Жак_2)

Правило (2):

Этап (2): из Факта (2) и Правила (2) резолюцией выводим новый

Факт(3):

Факт(2): Правило(2)

Студ(Мат, Мари_4)

Факт(3): Экзам(Жак_2, Мари_4)Равно(Инфо,Мат)=Л

(Отношение Равно(Инфо,Мат)=Л должно быть явно указано в БД)

Этап (3):

Факт(3) соответствует Цели(1). Следовательно, она подтверждена. Аналогично выведем утверждение Л из Факта(3) и отрицания Цели(1):

Факт(3): Цель(1):

Экзам(Жак_2, Мари_4) Экзам(Жак_2, Мари_4)

Систему прямой дедукции можно трактовать как систему, в которой применяется теорема о прямой дедукции: Если F1, F2, … , Fn, G - логические выражения, то G является логическим следствием из F1, F2, … , Fn тогда и только тогда, когда логическое выражение(F1 … FnG) тождественно ложно, т.е. невыполнимо. Правила вывода и стратегии, используемые в системах прямой дедукции, графически представимы И/ИЛИ - деревьями.

Системы обратной дедукции

В системах обратной дедукции выводы применяют к цели и к правилам, чтобы построить новые частичные цели. Алгоритм завершает работу, когда все частичные цели соответствуют фактам. Такую систему можно толковать с логической точки зрения как систему, в которой применяется теорема об обратной дедукции, которая гласит: Если F1, F2, … , Fn, G - логические выражения, то G является логическим следствием из F1, F2, … , Fn тогда и только тогда, когда логическое выражение (тождественно истинно, т.е. общезначимо.

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

Этап (1): из Цели (1) и отрицания Правила(1), используя правило согласия, выводим новую Цель (2):

Цель(1) Правило(1)

Экзам(Жак_2. Мари_4)

Цель(2):

Этап (2): из Цели (2) и отрицания Факта(1), с помощью правила согласия, выводим Цель (3):

Цель(2): Факт(1):

Проф(Инфо, Жак_2)

Цель (3):

Студ(z, Мари_4)Равно(Инфо, z)

Этап (3): из Цели (3) и отрицания Факта(2) выводим теорему:

Цель (3): Факт(2):

Студ(z, Мари_4)Равно(Инфо, z) Студ(Мат, Мари_4)

Равно(Инфо,Мат)=И

18.Язык Prolog. Конъюнкция. Переменные

 

Конъюнкция

В логических формулах используют связки и простые предикаты. То же самое имеет место и в Прологе. Самую ходовую связку - конъюнкцию - обозначают запятой:

? - начальник(эмиль, анри), начальник(жозев, анри).

Это выражение соответствует такой логической формуле

Начальник(Эмиль, Анри) Начальник(Жозев, Анри).

Конъюнкция в Прологе, как и в логике, истинна только при истинности всех компонент. Однако имеется важное отличие: в Прологе семантика учитывает порядок оценки компонент (слева направо)

Переменные

Использование переменных в Прологе аналогично, но не идентично использованию их в логике. Вопросы, включающие переменные носят перечислительный характер (в отличие от да-нет-вопросов): ответы в этом случае представляют собой списки термов. Например, вопрос Кто в подчинении у Анри? является вопросом перечислительного (списочного) типа. Ответ БД библио мог бы быть [эмиль, жозеф].

Прологовским эквивалентом местоимения кто является переменная:

? - начальник(Х, анри).

Ответ здесь хотелось бы получить посредством замены Х на такую константу, для которой в БД найдётся подходящий факт. Взяв константу Эмиль получаем:

? - начальник(Х, анри).

- - > Х=эмиль

Система ответила одним значением переменной, преобразовав вопрос в истинный предикат, но почему не жозеф и не [эмиль, жозеф]? Для объяснения произвольности выбора вникнем в алгоритм получения ответа. Факты и правила БД - это не множество, а список. Обычно они текстуально упорядочены. Для получения ответа система просматривает БД в соответствующем порядке и выбирает первое удовлетворяющее предикату вопр?/p>