Партнеры

Счетчики








Логика предикатов

Мать и Матика

"Предикат" с английского переводится как сказуемое. Но говорить "логика сказуемых" - себя не уважать. Формально предикатом называется функция, аргументами которой могут быть ПРОИЗВОЛЬНЫЕ ОБЪЕКТЫ из некоторого множества, а значения функции - "истина" или "ложь". Предикат можно рассматривать как расширение понятия высказывания.

Пример. Вместо трех высказываний "Маша любит кашу", "Даша любит кашу", "Саша любит кашу" можно написать один предикат "Икс любит кашу" и договориться, что вместо неизвестного Икс могут быть либо Маша, либо Даша, либо Саша. Подстановка вместо Икс имени конкретного ребенка превращает предикат в обычное высказывание.

Для предикатов справедливы и имеют тот же смысл ранее рассмотренные логические операции. Например, "ЕСЛИ Маша любит кашу, ТО Саша любит кашу".

Но есть и две новые операции, специфические. Они называются несколько вызывающе - операциями НАВЕШИВАНИЯ КВАНТОРОВ. Эти операции соответствуют фразам "для всех" - квантор общности и "некоторые" - квантор существования. Мы договорились не писать формул, но все-таки следует сказать о значках, которые здесь используются, в силу их экзотичности. Квантор общности произошел от английского All и обозначается буквой A, перевернутой вверх ногами. Квантор существования произошел от английского Exist и обозначается буквой E, которую вверх ногами переворачивать бесполезно, поэтому ее повернули кругом.

Наш предикат после навешивания каждого из кванторов также превращается в высказывание, которое может быть истинно или ложно: "ВСЕ любят кашу", "НЕКОТОРЫЕ любят кашу".

Это, кстати, был (до навешивания кванторов) одноместный предикат (одноместная функция). Но предикаты могут быть не только одноместные. Это просто проиллюстрировать, если представить, что дети могут любить не только кашу. "Икс любит Игрека" - двухместный предикат. "ВСЕ любят Игрека" - одноместный предикат. "ВСЕ любят НЕКОТОРОГО" - нульместный предикат, то есть высказывание.

Интересно посмотреть, как ведут себя кванторы в присутствии операции отрицания. Возьмем отрицание предиката "ВСЕ любят кашу": "НЕ ВЕРНО, что ВСЕ любят кашу". Это равносильно (по закону Де Моргана!) заявлению: "НЕКОТОРЫЕ НЕ любят кашу". То есть отрицание "задвинули" за квантор, в результате чего квантор сменился на противоположный.

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

В хорошо формализованных системах даже наоборот дополнительно ограничивают этот язык для удобной реализации на компьютерах. Примером тому язык (логического) программирования ПРОЛОГ - ПРОграммирование на ЛОГике.

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

Вот некоторые "классические примеры". Если мы желаем сказать на языке предикатов "Все студенты отличники", то рекомендуется конструкция "ДЛЯ ВСЕХ иксов справедливо: ЕСЛИ икс студент, ТО икс отличник".

Но если хотим сказать "Некоторые студенты отличники", то это следует записать "ДЛЯ НЕКОТОРЫХ иксов справедливо: икс студент И икс отличник". Конструкция "ЕСЛИ..., ТО..." в данном случае не подходит. И вот почему: стоит затесаться в компанию одному иксу-нестуденту и он сделает этот предикат истинным, даже если там нет ни одного отличника!

И еще высказывание "Собакам и кошкам вход воспрещен". Конструкция "ДЛЯ ВСЕХ иксов справедливо: ЕСЛИ икс - собака И икс - кошка, ТО иксу вход запрещен". Ясно, что таких иксов, которые бы были одновременно собакой и кошкой не существует! Поэтому "ДЛЯ ВСЕХ иксов справедливо: ЕСЛИ икс - собака ИЛИ икс - кошка, ТО иксу вход запрещен".

И список таких фокусов-выкрутасов можно продолжать долго. До бесконечности. Но, главное, вовремя остановиться и понять, что если бы даже придумать другую логику, в которой не было бы этих проблем, то получится логика, в которой будут другие проблемы, скорее всего существенно большие. А мы даже не трогали таких заморочек, присущих естественным языкам, как синонимы, омонимы, метафоры, гиперболы и так далее. Одни идиомы, кто знает, чего стоят! Так что "братания" языка логики с естественным языком не предвидится и в самой отдаленной перспективе, даже когда планета Земля начнет остывать...

А.Е.Соловьев, soloviev.nevod.ru, 2001 год