Смекни!
smekni.com

Лекции по информатики 2 (стр. 14 из 43)

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

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

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

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

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

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

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

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

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

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

z = Зина

у = Надя

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

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

¤ \

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

¤ \ ¤

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

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

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

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

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

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

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

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

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

z = Зина

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

нет

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

В о п р о с ы

1. В чем состоит закон противоречия?

2. В чем заключается закон исключения третьего?

3. Как используется закон вывода следствий?

4. Как используется закон отрицания следствий?

5. В чем недостатки закона двойного отрицания?

6. В чем состоит закон достаточных оснований?

7. В чем заключается закон тождества?

8. В чем состоит принцип унификации?

9. Как согласуются ответы на сложные вопросы?

3 а д а н и я

1. Укажите примеры двойного отрицания для утверждений:

а) «сегодня был дождь»; в) «х = 2» и «х = 3»;

б) «х = 0» или «у = 0»; г) «5 не делится на 2 и на 3».

2. Пусть утверждение А «прошел дождь», а утверждение В «на улице сыро». Истинны ли следующие суждения?

а) А Þ В (прямое доказательство);

б) В Þ А (обратное доказательство);

в) не А Þне В (противоположное доказательство);

г) не ВÞ не А (противоположное обратному).

3. Предложите систему признаков и понятий для описаний

а) класса «Млекопитающие»; в) класса «Рыбы»;

б) класса «Птицы»; г) класса «Насекомые».

В систему понятий введите следующие признаки: окрас, продолжи­тельность жизни, умения ползать, летать, ходить и т. д.

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

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

6. Составьте базы данных

а) по литературе; г) по истории;

б) по зоологии; д) по ботанике;

в) об автомобилях; е) по кулинарии.

Глава 4. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

4.1. Основные свойства алгоритмов

Алгоритм относится к фундаментальным понятиям информатики. На понятии алгоритма построено все основные принципы програм­мирования - составления программ для вычислительных машин.

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

Пример диалогового алгоритма:

Алгоритм Блок-схема

алг «приветствие»¯

нач запрос («Ваше имя=», NN)

запрос («Ваше имя=», NN) ¯

вывод («Добрый день», NN) вывод («Добрый день», NN)

кон¯

Для описания алгоритмов используются блок-схемы, изображен­ные справа, или структурированная запись, приведенная слева. Блок-схемы наглядны. Однако блок-схемы трудно рисовать, в них сложно вносить изменения и исправления из-за сложности перерисовки рамок и стрелок. Однако блок-схемы до сих пор требуются отечест­венными стандартами на документирование программ.

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

Приведем примеры описания алгоритма и программы в структу­рированной записи:

АлгоритмПрограмма

алг «приветствие» ' приветствие

нач сls

запрос («Ваше имя=», NN) input «Ваше имя=», NN$

вывод («Добрый день», NN) print «Добрый день», NN$

кон end

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

Программа, приведенная справа, записана на языке Бейсик - языке программирования персональных ЭВМ. Языками программи­рования называются формализованные языки, используемые для записи программ на ЭВМ. Одним из них является язык Бейсик.

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

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

В качестве примера приведем реализацию этого же диалогового алгоритма на самой ранней версии языка Бейсик, использовавшего­ся на самых первых персональных компьютерах:

АлгоритмПрограмма

алг «приветствие» 10 ' приветствие

нач 20 сls

запрос («Ваше имя=», NN) 30 input «Ваше имя=», NN$

вывод («Добрый день», NN) 40 print «Добрый день», NNS

кон 50 end

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