logo
Пу-112 КТэ 2 сем / Информатика / Лекции по информатике / Программное обеспечение_БД / матлогика_базы знаний

Законы логического вывода

Умение делать выводы- основная способность любого интеллек­та. Основным признаком интеллекта являются знания и умения ре­шать определенные задачи. Основой этих интеллектуальных умений являются законы и принципы логического вывода.

Законы человеческого мышления изучаются логикой и психоло­гией. Принципы искусственного интеллекта разрабатываются в мате­матической логике и информатике на основе методов машинного доказательства теорем и постановки экспериментов на ЭВМ.

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

В качестве иллюстраций рассмотрим базу знаний о семье. Пусть в семье есть дочь Оля, сын Сережа, мама Надя, папа Коля, бабушка Зина и дедушка Миша:

Соответствующая база данных на языке Пролог:

мама (Зина, Надя); папа (Миша, Надя);

мама (Надя, Оля); папа (Коля, Оля);

мама (Надя, Сережа); папа (Коля, Сережа);

Система Пролог при наличии этих фактов в памяти ЭВМ даст следующие ответы на вопросы о «папах» и «мамах»:

? мама (Надя, Оля) - Надя - мама Оли?

да

? папа (Сережа, Надя) - Сережа - папа Нади?

нет

Машина, использующая систему Пролог, дает ответы строго в соответствии с определенными логическими законами и принципа­ми логического вывода. Разберем эти законы и принципы.

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

Закон противоречия- первый общий закон логики. Этот закон впервые высказал Аристотель - основатель логики как научной дисциплины:

А и не А - Не могут быть истинны одновременно

ложьсуждение и его отрицание

Примеры противоречивых утверждений:

1) «яблоко - спелое»;

«яблоко - неспелое»;

2) «треугольник АВС - прямоугольный»;

«стороны треугольника равны друг другу».

Высказывание противоречивых суждений и утверждений являет­ся примером серьезных логических ошибок. Наличие противоречий говорит о некотором умысле либо о нарушениях в сознании.

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

Так, вопрос ? мама (Надя, Оля) ЭВМ преобразует в отрицание не мама (Надя, Оля) и временно присоединяет его к базе знаний. При этом получившаяся база становится противоречивой и система Про­лог объявляет отрицание ложным и выводит ответ ДА.

Закон исключения третьего- второй общий закон логики, ука­занный Аристотелем:

А или не А - Истинно суждение либо его отрицание,

истина третьего не дано.

Примеры взаимоисключающих утверждений:

1) «Сегодня будет дождь» или «Сегодня дождя не будет».

2) «Любой треугольник правильный либо в нем есть разные сто­роны».

Принципы логического выводав системе Пролог отличаются от законов Аристотеля, поскольку его законы выражаются на языке высказываний, а работа системы Пролог основана на использова­нии предикатов.

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

Закон противоречия в записи на языке исчисления предикатов преобразуется в процедуру вывода ответов на простейшие вопросы вида ? А(с):

А(х) и не А(с) - При противоречии А(х) и не А(с)

ложь,при х = с контрпримером служит х = с.

Содержательный смысл: При противоречии А(х) и не А(с) контр­примером служит х = с. Здесь х - переменная, а с - конкретное значение, при котором отрицание ответа оказывается ложным. Это значение х = с выводится системой Пролог в качестве ответа на поставленный вопрос. Примеры такого рода вопросов и ответов:

? папа (х, Коля)- Кто папа у Коли ?

нет

? папа (х, Оля)- Кто папа у Оли ?

х = Коля

? мама (х, у)- Что известно о мамах?

х = Зина у = Надя

х = Надя у = Оля

Закон двойного отрицания - третий общий закон логики. Этот закон также был высказан Аристотелем:

не (не А) - Если неверно отрицание,

А то суждение – истинно

Примеры рассуждений.

1) Неверно, что «Вчера не было дождя».

Следовательно, «Вчера был дождь».

2) Неправда, что «это сделал не Саша».

Следовательно, «это сделал Саша». (?)

Из второго примера видно, что закон двойного отрицания явля­ется косвенным доказательством, поскольку оно не опирается на факты или аргументы. По этим причинам закон двойного отрицания может оказаться ошибочным и этот закон не является общезначи­мым (верным для всех случаев и ситуаций).

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

Закон достаточных оснований:

Всякое утверждениедолжно предполагать существование аргументов и фактов, достаточных для его обоснования.

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

Пример рассуждений, не имеющих достаточных оснований:

1. «Если дорогу перебежала черная кошка, то быть неприятностям».

2. «Это верно, потому что это - справедливо».

Экспертные системына ЭВМ с этой точки зрения должны созда­ваться исключительно на основе достоверных данных и общих пра­вил вывода, проверенных практикой. Включение в базу знаний не­достоверных данных или неподтвержденных обобщений и правил может привести к появлению ошибок и получению неправильных решений.

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

Закон логического вывода modus ponens - первый закон, указан­ный Аристотелем:

А ® В, А - Если из А следует В и посылка А истинна,

В то выполняется и следствие В.

Примеры применения правила логического вывода.

1. «Если идет дождь, то на улице мокро».

«Пошел дождь».

Следовательно, «на улице мокро».

2. «Если кому-то весело, то он улыбается».

«Маша развеселилась».

Следовательно, «Маша улыбается».

В предикатной форме закон логического вывода превращается в процедуру вывода новых сведений из имеющихся общих правил и конкретных фактов:

А(х) ® В(х), А(с) - Если из А(х) следует В(х) и А(х) выполнено

В(с)для х = с, то выполняется В (с).

Данная процедура из конкретного факта А(с) и общего правила логического вывода А(х) ® В(х) позволяет вывести новое конкрет­ное утверждение В(с). Иными словами, эта процедура вывода позво­ляет выводить новые конкретные сведения из общих правил и уже известных конкретных фактов.

Следовательно, знание и применение законов логического выво­да позволяет порождать новые сведения, являющиеся логическим следствием уже известных сведений. Этим свойством и этими зако­нами могут пользоваться не только люди - они применяются в си­стемах машинного интеллекта.

Закон вывода отрицаний- второй закон логического вывода:

А ® В, не В - Если из А следует В, но следствие В ложно,

не А то не выполняется посылка А.

Примеры логического вывода из отрицаний.

1. «Если идет дождь, то на улице мокро».

«На улице сухо».

Следовательно, «На улице не было дождя».

2. «Если кому-то весело, то он улыбается».

«Вова не улыбается».

Следовательно, «Вове не весело».

В предикатной форме закон вывода отрицаний превращается в конструктивную процедуру вывода отрицаний:

А(х) ® В(х), не В(с) - Если из А(х) следует В(х), но В не выполнено

не А(с) для х = с, то не выполняется и А(с).

Данная процедура из конкретного отрицания следствия не В(с) и общего правила А(х) ® В(х) выводит конкретное отрицание не А(с) предпосылки при х = с. Эта процедура используется в системе Пролог как основной механизм поиска ответов на сложные вопросы, в ко­торых участвуют определяемые предикаты.

В качестве иллюстраций дополним рассмотренную базу знаний о семье набором правил на языке Пролог, выражающих понятие «ро­дитель»:

родитель (х, у) ¬ мама (х, у); - Мама - родитель

родитель (х, у) ¬ папа (х, у); - Папа – родитель

После ввода этих правил в ЭВМ система Пролог на вопросы о родителях выдаст такие ответы при указанной выше базе данных:

? родитель (Надя, х) - Кому родитель Надя ?

х = Оля

х = Сережа

Вывод ответов на эти вопросы система Пролог проводит следу­ющим образом. Во-первых, вопрос ? родитель (Надя, х) будет заменен на отрицание не родитель (Надя, х). Далее это отрицание будет сопо­ставлено с правилом вывода родитель (х, у) ¬ мама (х, у), а затем с правилом родитель (х, у) ¬ папа (х, у).

Применение этой же процедуры вывода ко второму определению родитель (х, у) ¬ папа (х, у) даст отрицание не папа (Надя, х), озна­чающее утверждение «Надя не является папой никому». Для этого утверждения компьютер не имеет в базе данных никаких соответст­вующих фактов и после просмотра базы знаний по этому варианту выдает ответ НЕТ.

Применение к отрицанию не родитель (Надя, х) и определению родитель (х, у) ¬ мама (х, у) рассматриваемой процедуры приводит к выводу утверждения не мама (Надя, х), означающему «Надя не является мамой никому». Для этого отрицания машина найдет два конкретных противоречащих ему факта мама (Надя, Оля) и мама (Надя, Сережа). Используя конструктивную процедуру вывода отве­тов из отрицаний, компьютер даст два конкретных ответа - х = Оля и х = Сережа.

Закон тождества - четвертый общий логический закон, указанный Аристотелем:

«Предметрассмотрения должен быть определен

и не должен меняться до конца обсуждения»

Данный закон носит фундаментальный характер для работы экспертных систем - правильные выводы и решения могут быть получены от экспертных систем только при строгом совпадении определений вещей из рассматриваемой предметной области.

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

Примером нарушения закона тождества является подмена пред­мета, когда два собеседника осознанно или неосознанно говорят о разных вещах, что приводит их к непониманию, спорам и разногла­сиям. Классический пример нарушения - ситуация: «я - про Фому, а он - про Ерему».

В системе Пролог и в системах искусственного интеллекта вывод ответов на сложные вопросы основан на принципе унификации (взаимосогласования) ответов. По этой причине экспертные системы на ЭВМ в отличии от людей могут производить вывод ответов на сложные вопросы только в соответствии с принципом унификации.

Принцип унификацииответов состоит в том, что общие перемен­ные во взаимосвязанных вопросах должны получать одинаковые значения. Пример ответа на сложносоставной вопрос, состоящий из двух подвопросов:

? мама (z, у), мама , Оля) - Кто мама у мамы Оли?

z = Зина

у = Надя

Вывод ответов на сложносоставные вопросы состоит в выделе­нии подвопросов и поиске на них ответов по частям:

? мама (z, у), мама (у, Оля)

¤ \

? мама (z, у) ?мама , Оля)

¤ \ ¤

z = Зина у = Надя

В данном примере общим элементом в выделяемых подвопросах ? мама (z, у) и ? мама (у, Оля) является переменная «у». Ответом на первый подвопрос ? мама (z, у) будут значения z = Зина и у = Надя. Ответы на второй подвопрос ? мама (у, Оля) в соответствии с прин­ципом взаимосогласования будет проводиться для значения у = Надя.

Принцип вывода взаимосогласованных ответов в системе Пролог распространяется и на сложносоставные правила, включаемые в базы знаний и процедуры логического вывода. Приведем примеры слож­ных определений:

бабушка (z, х) ¬ мама (z, у), мама (у, х);

бабушка (z, х) ¬ мама (z, у), папа (у, х);

дедушка (z, х) ¬ папа (z, у), мама (у, х);

дедушка (z, х) ¬ папа (z, у), папа (у, х);

При наличии этих правил в памяти ЭВМ можно получить следу­ющие вопросы о бабушках и дедушках:

? бабушка (z, Оля) - Кто бабушка у Оли?

z = Зина

? дедушка (z, Надя) - Кто дедушка у Нади?

нет

Принцип унификации в системе и языке Пролог является общим механизмом логического вывода ответов на сложные вопросы в базах знаний на Прологе и тем самым - конструктивной реализацией закона тождества для машинных систем искусственного интеллекта. Таким образом работа экспертных систем на ЭВМ основана строго на выполнении требований законов логики - закона тождества и за­кона достаточных оснований.