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

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

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

1 и В2.

Вопросы вида

не В

обрабатываются не так просто, и мы обсудим их позже.

Формирование ответа на вопрос "почему"

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

а - это правда?

В ответ пользователь может спросить:

почему?

Объяснение в этом случае выглядит примерно так:

Потому, что

Я могу использовать а,

чтобы проверить по правилу Па, что b, и

Я могу использовать b,

чтобы проверить по правилу Пb, что с, и

Я могу использовать с,

чтобы проверить по правилу Пc, что d, и

. . .

Я могу использовать y,

чтобы проверить по правилу Пy, что z, и- это ваш исходный вопрос.

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

 

Рис. 14. 8. Объяснение типа "почему". На вопрос "Почему вас интересует текущая цель?" дается объяснение в виде цепочки правил и целей, соединяющей текущую цель с исходным вопросом пользователя, находящимся в верхушке дерева. Эта цепочка называется трассой.

 

Будем называть такую цепочку трассой. Трассу можно себе представлять как цепочку правил, соединяющую в И / ИЛИ-дереве вопросов текущую цель с целью самого верхнего уровня так, как это показано на рис. 14.8. Таким образом, для формирования ответа на вопрос "почему" нужно двигаться в пространстве поиска от текущей цели вверх вплоть до самой верхней цели. Для того, чтобы суметь это сделать, нам придется в процессе рассуждений сохранять трассу в явном виде.

Формирование ответа на вопрос "как"

Получив ответ на свой вопрос, пользователь возможно захочет увидеть, как система пришла к такому заключению. Один из подходящих способов ответить на вопрос "как" - это представить доказательство, т. е. те правила и подцели, которые использовались для достижения полученного заключения. Это доказательство в случае нашего языка записи правил имеет вид решающего И / ИЛИ-дерева. Поэтому наша машина логического вывода будет не просто отвечать на вопрос, соответствующий цели самого верхнего уровня - этого нам недостаточно, а будет выдавать в качестве ответа решающее И / ИЛИ-дерево, составленное из имен правил и подцелей. Затем это дерево можно будет отобразить на выходе системы в качестве объяснения типа "как". Объяснению можно придать удобную для восприятия форму, если каждое поддерево печатать с надлежащим отступом, например:

питер это хищник

было выведено по прав3 из

питер это млекопитающее

было выведено по прав1 из

питер имеет шерсть

было сказано

и

питер ест мясо

было сказано

 

15.Рассуждения, использующие логические формулы. Рассуждения по поводу знаний

 

Исчисление предикатов содержит правила вывода, применимые к одним логическим формулам для получения других. Особенно важны правила modus ponens ( Если Х и (Х Y) - теоремы, то Y есть теорема) и обобщения (Если х не связана в теореме Р, то хР - теорема). Правила вывода порождают некоторое множество формул из примитивных (исходных, первоначальных) формул. В исчислении предикатов выведенные формулы называются теоремами, а последовательность примененных для их получения правил вывода (с указанием используемых в них формул) - доказательством теоремы. Многочисленные приложения исчисления предикатов к ИИ можно толковать как методы доказательства теорем.

При доказательстве теорем обычно используют процедуры опровержения. Множество гипотез {Hj}, подходящих для доказательства теоремы, добавляют к множеству присущих области экспертизы аксиом {Ai}. Затем стремятся получить опровержение (или прийти к противоречию), присоединяя {} - отрицание утверждения теоремы - к системе {Hj, Ai} и пытаясь доказать формулу

 

.

 

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

 

.

 

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

Например, интересно выяснить, можно ли формулу хС(х) логически вывести из гипотез и аксиом. Если да, то хотелось бы знать конкретизацию для х в терминах вывода. Попытка доказать хС(х) из {Hj, Ai} должна быть конструктивной. Проиллюстрируем подобное доказательство следующим примером.

Рассуждения по поводу знаний

В большинстве встречающихся в ИИ систем относящихся к области экспертизы знания делятся на две категории: факты и правила . Факты - это данные (представленные предикатами), касающиеся области экспертизы. Например, данные о персонале некоторого университета составляют множество фактов.

Факт(1)

По-русски: Жак - профессор факультета информатики.

Логически: Проф(Инфо, Жак_2).

Факт(2).

По-русски: Мари - студентка математического факультета,

Логически: Студ (Мат, Мари-4).

Правила - это данные, представленные с помощью импликации или в иной эквивалентной логической форме. Они п