Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.Краткий конспект ЛЕКЦИЙ.doc
Скачиваний:
42
Добавлен:
19.05.2015
Размер:
2.59 Mб
Скачать

Правила логического вывода

Рассмотрим древнейший образец логического вывода – силлогизм:

«Все люди смертны. Сократ - человек. Следовательно, Сократ смертен».

Как формализовать такие умозаключения: научить компьютер проверять их правильность и автоматически генерировать подобные? Наш пример состоит из двух посылок «все люди смертны», «Cократ - человек» и заключения «Cократ смертен», истинность которого следует из истинности посылок. Запишем первую посылку на «предикатном» языке: «"x если x - человек, то x смертен». На

23

основании общезначимой формулы "x P(x) ® P(a) логично, опустив в высказывании квантор ", подставить вместо х Сократа: «если Сократ - человек, то Сократ смертен». Поставим рядом с полученным высказыванием вторую посылку силлогизма и получим результат, который оформляется в следующем виде:

Если Сократ человек, то Сократ смертен. Сократ - человек.

Сократ смертен.

В общем случае над чертой помещаются логические формулы-посылки А,B, истинность которых гарантирует истинность заключения С:

A,B

C

Cловесная запись правил логического вывода звучит так: «Из данных формул-посылок А,В следует формула-заключение С.» (сокращенно: АÙВ ® С). При этом считается, что формула-заключение истинна по крайней мере при всех таких значениях предикатных, предметных и высказывательных переменных, при которых обращаются в истину все формулы-посылки. Метод математической индукции, оформленный как правило вывода, примет вид:

P(1), P(k) ® P(k+1)

"n P(n)

Приведем некоторые правила вывода, работающие в базах знаний:

- правило заключения (modus ponens),

- правило силлогизма,

- специализация,

- введение конъюнкции.

Рассмотрим автоматизированную обработку знаний. В системах искусственного интеллекта знания - это информация, на основании которой

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

Рассмотрим следующий пример. В базе данных хранятся сведения о сотрудниках учреждения Петрове, Иванове, Кузнецове, Яковлеве (в дальнейшем обозначим их как П, И, К, Я).

Должностная иерархия описывается с помощью двухместных предикатов:

PУK(П,И) означает, что Петров руководит Ивановым,

ОТЧ(Y,X) означает, что Y отчитывается перед X.

В базе данных хранятся три факта:

1: РУК(П,И),

2: РУК(И,К),

3: РУК(К,Я).

Далее описываются два правила вывода, которые имеют место в рассматриваемой предметной области:

1: "X,Y PУK(X,Y) ® ОТЧ(Y,X) - если Х руководит Y, то Y отчитывается

перед Х,

2: "X,Y,T PУK(X,Y)ÙОТЧ(T,Y) ®ОТЧ(T,X) - если Х руководит Y и Т отчитывается перед Y, то Т отчитывается перед Х.

Требуется проверить запрос пользователя: должен ли Яковлев отчитываться перед Ивановым (то есть, сделать заключение ОТЧ(Я,И)).

В базе данных такого факта нет, однако предикат, описывающий интересующую нас связь, встречается в правилах 1 и 2.

Применяя правило 1 к факту 3, получим формулу:

PУK(K,Я)®ОТЧ(Я,К).

Применяем к ней и факту 3 правило вывода modus ponens:

PУK(K,Я)®ОТЧ(Я,К), PУK(K,Я)

ОТЧ(Я,К)

так как исходные выражения были истинны, то заключение ОТЧ(Я,К) - новый факт - также является истинным.

Применяя к ОТЧ(Я,К) и факту 2: РУК(И,К) правило 2, получим формулу:

PУK(И,К)ÙОТЧ(Я,К) ® ОТЧ(Я,И),

указывающую на ответ ОТЧ(Я,И), который однако, надо еще проверить. Для этого связываем факт 2 и ОТЧ(Я,К) правилом «введения конъюнкции»:

РУК(И,К), ОТЧ(Я,К)

PУK(И,К)ÙОТЧ(Я,К)

и наконец, применяя modus ponens, обосновываем результат

PУK(И,К)ÙОТЧ(Я,К) ® ОТЧ(Я,И), PУK(И,К)ÙОТЧ(Я,К)

ОТЧ(Я,И)

дающий утвердительный ответ на запрос, действительно ли Яковлев отчитывается перед Ивановым.