Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Мама (Надя, Оля); папа (Коля, Оля);
Мама (Надя, Сережа); папа (Коля, Сережа);
Система Пролог при наличии этих фактов в памяти ЭВМ даст следующие ответы на вопросы о «папах» и «мамах»:
? мама(Надя, Оля) — Надя — мама Оли?
Да
? папа(Сережа,Надя) — Сережа — папа Нади?
Нет
Машина, использующая систему Пролог, дает ответы строго в соответствии с определенными логическими законами и принципами логического вывода. Разберем эти законы и принципы.
Закон противоречия — первый общий закон логики. Этот закон впервые высказал Аристотель - основатель логики как научной дисциплины:
Примеры противоречивых утверждений:
1) «яблоко — спелое»,
«яблоко — неспелое»;
2) «треугольник ABC — прямоугольный»,
«стороны треугольника равны друг другу».
Высказывание противоречивых суждений и утверждений является примером логических ошибок. Наличие противоречий говорит о некотором умысле либо о нарушениях в сознании (базе знаний).
В системе Пролог закон противоречия используется для вывода ответов на вопросы. А именно, каждый вопрос типа? А(х) заменяется на отрицание не А(х) и присоединяется к базе знаний, хранящейся в ЭВМ.
Если получившаяся расширенная база знаний становится противоречивой, то это означает, что утверждение А(х) согласуется с исходной базой знаний и значение переменной х является ответом на заданный вопрос.
Так, вопрос? мама (Надя, Оля) ЭВМ преобразует в отрицание не мама (Надя, Оля) и временно присоединяет его к базе знаний. При этом получившаяся база становится противоречивой и система Пролог объявляет отрицание ложным и выводит ответ ДА.
Закон исключения третьего — второй общий закон логики, указанный Аристотелем:
Примеры взаимоисключающих утверждений:
1) «Сегодня будет дождь» и «Сегодня дождя не будет»;
2) «Любой треугольник правильный» и
«В каждом треугольнике есть разные стороны».
Принципы логического вывода в Прологе в отличие от традиционной формальной логики основаны на использовании предикатов. Выражение этого закона Аристотеля на языке предикатов дает конструктивную процедуру вывода конкрентых следствий из общих правил и конкретных фактов.
Закон противоречия в записи на языке исчисления предикатов преобразуется в процедуру вывода ответов на простейшие вопросы вида? А(с):
Содержательный смысл: при противоречии А(х) и не А(с) контрпримером служит х = с. Здесь х — переменная, а с — конкретное значение, при котором отрицание ответа оказывается ложным. Это значение х = с выводится системой Пролог в качестве ответа. Примеры:
? папа(х,Коля) нет — Кто папа у Коли?
? папа(х,Оля) — Кто папа у Оли?
х = Коля
? мама(х,у) — Что известно о мамах?
х = Зина у = Надя
х = Надя у = Оля
Закон двойного отрицания — третий общий закон формальной логики, указанный Аристотелем:
Примеры рассуждений:
1. Неверно, что «вчера не было дождя».
Следовательно, «вчера был дождь».
2. Неправда, что «это сделал не Саша».
Следовательно, «это сделал Саша». (?)
Из второго примера видно, что закон двойного отрицания является косвенным доказательством, поскольку оно не опирается на факты или аргументы. По этим причинам закон двойного отрицания может оказаться ошибочным и этот закон не является общезначимым (верным для всех случаев и ситуаций).
Правильность утверждений и рассуждений даже при безупречной логике доказательств зависит от достоверности исходных фактов и положений. Эту идею выражает четвертый общий логический закон — закон достаточных оснований, указанный Лейбницем, создателем одного из самых первых механических компьютеров и основателем исчисления предикатов.
Закон достаточных оснований:
Всякое утверждение должно предполагать существование аргументов и фактов, достаточных для его обоснования.
Иными словами, любое утверждение должно предполагать наличие набора фактов и правил, из которых должно вытекать утверждаемое. Нарушениями это закона являются рассуждения, опирающиеся на недостоверные факты или положения, истинность которых не проверяется, а принимается на веру.
Пример рассуждений, не имеющих достаточных оснований:
1.«Если дорогу перебежала черная кошка, то быть неприятностям».
2. «Это верно», потому что«это — справедливо».
Экспертные системы на ЭВМ с этой точки зрения должны создаваться на основе достоверных данных и общих правил вывода, проверенных практикой. Включение недостоверных данных или неподтвержденных обобщений и правил может привести к появлению ошибок и получению неправильных выводов.
Причина такой работы экспертных систем состоит в том, что компьютеры могут делать выводы и умозаключения только исходя из тех фактов и правил, которые введены и хранятся в ЭВМ, и только из этих данных — и ничего другого.
Интеллектуальная мощь экспертных систем на ЭВМ, также как интеллектуальный потенциал людей, связаны с возможностями накопления не только новых конретных фактических сведений, новых обобщенных сведений и знаний.
В базах знаний, экспертных системах и других системах искусственного интеллекта такие знания выражаются в форме новых понятий, записываемых в форме новых правил логического вывода.
В качестве иллюстрации дополним рассмотренную базу знаний о семье набором правил на языке Пролог, выражающих понятие «родитель»:
родитель(х,у) <- мама(х,у); — Мама — родитель.
родитель(х,у) <- папа(х,у); — Папа — родитель.
После ввода этих правил в ЭВМ система Пролог на вопросы о родителях выдаст такие ответы при указанной выше базе данных:
? родитель(Надя, х) — Кому родитель Надя?
х = Оля
х = Сережа
Вывод ответов на эти вопросы система Пролог проводит следующим образом. Во-первых, вопрос? родитель(Надя, х) будет заменен на отрицание не родитель(Надя, х). Далее это отрицание будет сопоставлено с правилом вывода родитель(х, у) <— мама(х, у), а затем с правилом родитель(х, у) <- папа(х, у).
Применение этой же процедуры вывода ко второму определению родитель(х,у) <- папа(х,у) даст отрицание не папа(Надя, х), означающее утверждение «Надя не является папой никому». Для этого утверждения компьютер не имеет в базе данных никаких соответствующих фактов и после просмотра базы знаний по этому варианту выдает ответ НЕТ.
Применение к отрицанию не родитель(Надя, х) и определению родитель(х,у) <- мама(х,у) рассматриваемой процедуры приводит к выводу утверждения не мама (Надя, х), означающему «Надя не является мамой никому».
Для этого отрицания машина найдет два конкретных противоречащих ему факта мама(Надя, Оля) и мама(Надя, Сережа). Используя конструктивную процедуру вывода ответов из отрицаний, компьютер даст два конкретных ответа — х = Оля и х = Сережа.
Закон тождества — четвертый общий логический закон, указанный Аристотелем:
«Предмет рассмотрения должен быть определен и не должен меняться до конца обсуждения».
Данный закон носит фундаментальный характер для работы любых экспертных систем и систем искусственного интеллекта — правильные выводы могут быть получены от таких систем только при строгом совпадении определений вещей из рассматриваемой предметной области.
Расхождения в понимании и определении предметных понятий могут приводитьи, как правило, приводят к логическим ошибкам и получению неправильных выводов и результатов. Это систематически наблюдается среди людей, не обладающих необходимыми профессиональными знаниями.
Примером нарушения закона тождества является подмена предмета, когда два собеседника осознанно или неосознанно говорят о разных вещах, что приводит их к непониманию, спорам и разногласиям. Классический пример нарушения — ситуация: «я — про Фому, а он — про Ерему».
В системе Пролог и в системах искусственного интеллекта вывод ответов на сложные вопросы основан на принципе унификации (взаимосогласования) ответов. Принцип унификации ответов состоит в том, что общие переменные во взаимосвязанных вопросах должны получать одинаковые значения.
Пример ответа на сложносоставной вопрос, состоящий из двух подвопросов:
? мама(z, у), мама(у, Оля) — Кто мама у мамы Оли?
z = Зина
у = Надя
Вывод ответов на сложносоставные вопросы состоит в выделении подвопросов и поиске на них ответов по частям:
В данном примере общим элементом в выделяемых подвопросах? мама(z,у) и? мама(у,Oля) является переменная «у». Ответом на первый подвопрос? мама(z,у) будут значения z = Зина и у = Надя. Ответы на второй подвопрос? мама(у,0ля) в соответствии с принципом взаимосогласования будет проводиться для значения у = Надя.
Принцип вывода взаимосогласованных ответов в системе Пролог распространяется и на сложносоставные правила, включаемые в базы знаний и процедуры логического вывода. Приведем примеры сложных определений:
бабушка(z, х) <- мама(z, у), мама(у, х);
бабушка(z, х) <- мама(z, у), папа(у, х);
дедушка(z, х) <- nana(z, у), мама(у, х);
дедушка(z, х) <- nana(z, у), папа(у, х).
При наличии этих правил в памяти ЭВМ можно получить следующие вопросы о бабушках и дедушках:
? бабушка(z, Оля) — Кто бабушка у Оли?
z = Зина
? дедушка(z, Надя) — Кто дедушка у Нади?
Нет
Принцип унификации в системе и языке Пролог является общим механизмом логического вывода ответов на сложные вопросы в базах знаний на Прологе и тем самым — конструктивной реализацией закона тождества для машинных систем искусственного интеллекта.
Таким образом, работа экспертных систем на ЭВМ основана строго на выполнении требований законов логики — закона тождества и закона достаточных оснований.
Вопросы
1. В чем состоит закон противоречия?
2. В чем заключается закон исключения третьего?
3. Как используется закон вывода следствий?
4. Как используется закон отрицания следствий?
5. В чем недостатки закона двойного отрицания?
6. В чем состоит закон достаточных оснований?
7. В чем заключается закон тождества?
8. В чем состоит принцип унификации?
9. Как согласуются ответы на сложные вопросы?
Дата публикования: 2014-10-25; Прочитано: 1155 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!