Проблемная область родства

В качестве первого примера рассмотрим проблемную область семейных отношений, или родства. Эта проблемная область включает такие факты, как "Элизабет — мать Чарльза" и "Чарльз— отец Уильяма", и правила наподобие того, что "Бабушка — это мать родителя".
Очевидно, что объектами в этой проблемной области являются люди. В ней будут применяться два унарных предиката, Male (Мужчина) и Female (Женщина). Отношения родства (связи между родителями и детьми, братьями и сестрами, мужем и женой и т.д.) будут представлены с помощью бинарных предикатов: Parent (Родитель), Sibling (Брат или сестра), Brother (Брат), Sister (Сестра), Child (Ребенок), Daughter (Дочь), Son (Сын), Spouse (Супруг или супруга), Wife (Жена), Husband (Муж), Grandparent (Дедушка или бабушка), Grandchild (Внук или внучка), Cousin (Двоюродный брат или двоюродная сестра), Aunt (Тетя) и Uncle (Дядя). В качестве предикатов Mother (Мать) и Father (Отец) мы будем использовать функции, поскольку каждый человек имеет по одному из этих объектов (по крайней мере, в соответствии с законами природы).
Рассмотрим каждую из функций и предикатов, записывая все, что мы знаем о них, в терминах других символов. Например, мать — это родитель женского рода:
У та, с Mother {с) = га <=> Femaleim) л Parent {га, с)
Муж — это супруг мужского пола:
\fw,h Husband{h,w) <=> Male(h) л Spouse (h,w)
Мужчины и женщины — непересекающиеся категории людей:
Vx Male{x) <=> —\Female{x)
Отношения между родителями и детьми являются взаимно противоположными:
Vp, с Parent (р, с) Child{c,p)
Дедушка или бабушка — это родитель родителя:
Уд, с Grandparent (д, с) Vp Parent (д,р) л Parent (р, с)
Брат или сестра — это еще один ребенок тех же родителей:
Ух, у Siblingix, у) <=> х Ф у л Vp Parent {р, х) л Parent (р, у)
Формулируя подобные сведения, можно заполнить еще несколько страниц, и в упр. 8.11 предлагается сделать именно это.
Каждое из этих высказываний может рассматриваться как одна из аксиом в проблемной области родства. Аксиомы обычно принято связывать чисто с математическими проблемными областями (и мы вскоре рассмотрим некоторые аксиомы для чисел), но они нужны во всех проблемных областях. Аксиомы предоставляют основную фактическую информацию, на основании которой могут быть получены логическим путем полезные заключения. Кроме того, приведенные выше аксиомы родства имеют определения; последние представлены в форме Ух,у Р(х,у) <=> ... . Аксиомы определяют функцию Mother и предикаты Husband, Male, Parent, Grandparent и Sibling в терминах других предикатов. Но приведенные выше определения можно "свести" к базовому множеству предикатов (Child, Spouse и Female), в терминах которых в конечном итоге определяются все остальные предикаты. Это — очень естественный способ, с помощью которого создается представление некоторой проблемной области, и он аналогичен способу, применяемому при создании пакетов программного обеспечения путем последовательного определения процедур из примитивных библиотечных функций. Обратите внимание на то, что множество примитивных базовых предикатов не обязательно должно быть уникальным; с таким же успехом можно использовать множество Parent, Spouse и Male. Как будет показано ниже, в некоторых проблемных областях нельзя найти четко определимое базовое множество.
Не все логические высказывания о некоторой проблемной области являются аксиомами. Некоторые из них представляют собой теоремы, т.е. следуют из аксиом. Например, рассмотрим утверждение, что родственные отношения между братьями и сестрами являются симметричными:
Vx,y Sibling(x,у) <=> Siblingiy, х)
Это — аксиома или теорема? В действительности это — теорема, которая логически следует из аксиомы, определяющей понятие родственных отношений между братьями и сестрами. Если в базу знаний с помощью операции Ask будет введен запрос в виде этого высказывания, то должно быть получено значение true.
С чисто логической точки зрения в базе знаний должны содержаться только аксиомы, но не теоремы, поскольку теоремы не увеличивают множество заключений, которые следуют из базы знаний. Но с практической точки зрения важным свойством теорем является то, что они уменьшают вычислительные издержки на логический вывод новых высказываний. Без них системе формирования рассуждений приходится всякий раз начинать с самых фундаментальных принципов, во многом аналогично тому, что математику приходилось бы снова выводить правила исчисления, приступая к решению каждой новой задачи.
Не все аксиомы имеют определения. Некоторые из них предоставляют более общую информацию об определенных предикатах без формулировки определений. И действительно, некоторые предикаты не имеют полного определения, поскольку мы не знаем достаточно для того, чтобы их полностью охарактеризовать. Например, нельзя найти очевидного способа закончить следующее высказывание с определением понятия человек:
Vx Person(х) <=> ...
К счастью, логика первого порядка позволяет использовать предикат Person, не определяя его полностью. Вместо этого можно записывать частичные спецификации свойств, которыми обладает каждый человек, и свойств, которые идентифицируют некоторый объект как человека:
Vx Person(х) ?=> ... Vx ... => Person(х)
Аксиомы могут также представлять собой просто "голые факты", такие как Male(Jim) и Spouse {Jim, Laura). Такие факты формируют описания конкретных экземпляров задачи, что дает возможность находить ответы на конкретные вопросы. Ответы на эти вопросы представляют собой теоремы, которые следуют из аксиом. Но часто приходится убеждаться в том, что ожидаемые ответы получить не удается, например, можно было бы ожидать, что удастся вывести логическим путем факт Female(Laura) из аксиом Male(George) и Spouse (George, Laura), но данный факт не следует как теорема из этих аксиом. Такая ситуация свидетельствует о том, что в базе знаний не хватает какой-то аксиомы. В упр. 8.8 предлагается предоставить эту аксиому.







Материалы

Яндекс.Метрика