Исследовательская группа

Лаборатория языковых инструментов

Отрицание в логическом программировании

November 27

Добавление отрицания в логическое программирование является нетривиально задачей. Классическим решением, применяемым во многих реализациях Prolog, является так называемое "отрицание как неудача" (Negation As a Failure, NAF). Суть данного метода заключается в том, чтобы попробовать "доказать" отрицаемую цель, и в случае неудачи заключить, что её отрицание является истинным. К сожалению, данная процедура не обладает полнотой. Кроме того, семантика Кларка (Clark completion semantics) для логических программ с NAF в некоторых случаях дает не интуитивные результаты. В докладе будут представлены альтернативные семантики для логических программ с отрицанием: perfect model semantics, well-founded semantics и stable model semantics. Также будет рассмотрен метод конструктивного отрицания (constructive negation), который обобщает NAF и позволяет при отрицании цели вывести ограничения на логические переменные.

Докладчик --- Евгений Моисеенко