Смекни!
smekni.com

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

А В А и В

да да да
да нет нет
нет да нет
нет нет нет

Свойства конъюнкции:

И1: Конъюнкция А и В истинна, когда истинны оба суждения.

И 2: Конъюнкция А и В ложна, когда ложно хотя бы одно из суж­дений А или В.

Логическая связка или в математической логике называется дизъ­юнкцией. Таблица истинности дизъюнкции:

А В А или В

да да да
да нет да
нет да да
нет нет нет

Свойства дизъюнкции:

ИЛИ1: Дизъюнкция А или В истинна, когда истинно любое из суждений А или В.

ИЛИ2: Дизъюнкция А или В ложна, когда ложны оба суждения А и В.

Свойства конъюнкции и дизъюнкции также можно описать в виде фактов на языке Пролог:

Дизъюнкция:Конъюнкция:

или (да, да, да); и2 (да, да, да);

или (да, нет, да); и2 (да, нет, нет);

или (нет, да, да); и2 (нет, да, нет);

или (нет, нет, нет); и2 (нет, нет, нет);

Опираясь на эти факты можно получить ответы на вопросы о свойствах дизъюнкции и конъюнкции с помощью ЭВМ:

? или (А, В, нет) ? и 2 (А, В, да)

А = нет В = нет А = да В = да

? или (А, В, да) ? и 2 (А, В, нет)

А = да В = да А = да В = нет

А = да В = нет А = нет В = да

А = нет В = да А = нет В = нет

Одной из важнейших логических связок математической логики является импликация А ® В. Эта связка в математической логике используется для определения правил логического вывода.

ИмпликацияА ®В - это логическое следование. Импликация А ® В читается: «если А, то В». Первое суждение в импликации называется посылкой, а второе суждение - следствием.

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

а) с использованием высказываний:

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

б) с использованием предикатов:

любит (х, конфеты) ® сластена (х).

Таблица истинности импликации:

А В А ® В

да да да
да нет нет
нет да да
нет нет да

Свойства импликации:

П1: «Импликация А ® В ложна,

когда посылка А истинна, а следствие В - ложно».

П2: «Импликация А ® В истинна,

когда истинно следствие либо ложны и посылка и следствие».

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

сластена (х) ¬ любит (х, конфеты);

Описание этого правила позволяет вводить в ЭВМ вопросы о «сластенах» и получать осмысленные ответы, исходя из сведений, хранящихся в базе данных:

? сластена (х) - Кто сластена?

х = Маша

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

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

не (не А) º А

Р е ш е н и е . Рассмотрим объединенную таблицу истинности вы­сказываний

А не А не (неА)

да нет да
нет да нет

Сравнение крайних столбцов показывает, что всюду, где выска­зывание А истинно, там же истинно и двойное отрицание не (не А). И наоборот, всюду, где ложно А, там ложно и двойное отрицание не (не А). Следовательно, двойное отрицание тождественно исходному высказыванию: не (не А) º А.

Задача 2. Сравните с помощью таблиц истинности отрицание дизъюнкции и отрицание конъюнкции неи В) и неили В).

Р е ш е н и е .

АВА и В не (А и В) А или В не (А или В)

да да да нет да нет
да нет нет да да нет
нет да нет да да нет
нет нет нет да нет да

В о п р о с ы

1. Когда истинно отрицание?

2. Когда ложна дизъюнкция?

3. Когда истинна конъюнкция?

4. Когда ложна импликация?

З а д а н и е

1. Составьте таблицы истинности для утверждений:

а) (не А) и (не В); в) (не А) или (не В);

б) А и (не В); г) А или (не В).

2. Сравните с помощью таблиц истинности логические выражения:

а) неи В); в) (не А) или (не В);

б) неи В); г) (не А) или (не В).

3. Проверьте по таблицам истинности логические законы:

а) отрицание конъюнкции:

неи В) = (не А) или (не В);

б) отрицание дизъюнкции:

неили В) = (не А) и (не В);

в) отрицание импликации:

не (А ® В)º (не В) ® (не А).

3.3. Элементы языка Пролог

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

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

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

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

Факты - это конкретные сведения о ком-то либо о чем-то. Факты на языке Пролог записываются в форме предикатов с конкретными аргументами-значениями. Примеры записи фактов на Прологе:

папа (Вова, Лена); - Вова - папа Лены

любит (Лена, музыка); - Лена любит музыку

оценка (Лена, русский, 5); - У Лены 5 по русскому языку

Вопросы на Прологе - это запросы к совокупности данных или процедурам, хранящимся, в ЭВМ. Запись вопросов начинается со знака ?, за которым записывается предикат или группа предикатов, разделяемых запятыми. Примеры записи простых вопросов на языке Пролог:

? папа (х, Лена) - Кто папы Лены?

х = Вова

? мама (х, у) - Кто у кого - мама ?

НЕТ

? оценка (х, _ , 5) - Кто имеет оценки 5?

х = Лена

Здесь буквы х, у - обозначения переменных, а числа и слова - конкретные значения аргументов в соответствующих предикатах. Знак подчеркивания «_» представляет неопределенное значение, которое несущественно для ответа на вопросы.

При записи сложносоставных вопросов в языке Пролог можно указывать несколько условий-предикатов, разделяемых запятыми. Запятая в этих сложносоставных вопросах играет роль логическойсвязки и. Примеры сложносоставных вопросов:

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

х = Зина у = Люба

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

НЕТ

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

студент (х) ¬ занятие(х, учеба); - Студент - тот, ктозанят учебой;

нумизмат (х) ¬собирает (х, монеты); - Нумизмат - тот, ктособирает монеты.

Примеры вопросов на использование этих правил:

? студент (х) - Кто - студент?

х = Алеша

х = Лена

? нумизмат(у) - Кто - нумизмат?

у = Алеша

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

Приведем пример составления базы знаний о друзьях. Будем раз­личать друзей по их именам: Алеша, Оля и т. д. Включим в базу дан­ных следующие сведения о друзьях:

что им нравится;

что они коллекционируют;

чем они занимаются;

какие оценки они имеют.

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

нравится (<имя>, <вещь>);

собирает (<имя>, <вещь>);

занимается (<имя>, <предмет>);

оценка (<имя>, <предмет>, <балл>);

Вместо <имя>, <вещь>, <предмет>, <балл> при составлении базы знаний необходимо подставить конкретную информацию о конкрет­ных друзьях. Записывать имена будем с большой буквы в имени­тельном падеже. Далее, <вещь> и <предмет> - это существительные в именительном падеже, <балл> - целое число от 1 до 5.