Главная arrow книги arrow Копия Глава 10. Представление знаний arrow Отрицание как недостижение цели и устойчивая семантика модели
Отрицание как недостижение цели и устойчивая семантика модели

Как было показано в главах 7 и 9, базы знаний в форме хорновских выражений имеют желаемые вычислительные свойства. Однако во многих приложениях довольно сложно выполнить выдвигаемое при этом требование, чтобы каждый литерал в теле выражения был положительным. Например, может потребоваться сформулировать утверждение: "На прогулку можно выходить, если нет дождя", не будучи вынужденным изобретать такие предикаты, как NotRaining. В этом разделе рассматривается дополнение к хорновским выражениям в форме явного отрицания, которое

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

В языке Prolog допускается применять оператор not в теле выражения. Например, рассмотрим следующую программу Prolog:

(10.4)

Первое правило указывает, что если в компьютере имеется жесткий диск, не являющийся диском SCSI, то это должен быть диск IDE. Согласно второму правилу, если это — не диск IDE, то он должен быть диском SCSI. В третьем правиле утверждается, что из наличия в компьютере диска SCSI следует наличие в нем контроллера SCSI, а четвертое утверждает, что в компьютере обязательно должен быть жесткий диск. Эта программа имеет следующие две минимальные модели: