русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм построения КНФ


Дата добавления: 2015-08-31; просмотров: 2312; Нарушение авторских прав


 

1) Избавиться от всех логических операций, содержащихся в формуле, заменив их основными: конъюнкцией, дизъюнкцией, отрицанием. Это можно сделать, используя равносильные формулы:

 

2) Заменить знак отрицания, относящийся ко всему выражению, знаками отрицания, относящимися к отдельным переменным высказываниям на основании формул:

 

3) Избавиться от знаков двойного отрицания.

 

4) Применить, если нужно, к операциям конъюнкции и дизъюнкции свойства дистрибутивности и формулы поглощения.

Пример построения КНФ

 

Приведем к КНФ формулу

Преобразуем формулу F к формуле не содержащей → :

 

 

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

 

 

По закону дистрибутивности получим КНФ:

 

 

Приемы и способы, применяемые при упрощении логических формул:

Пример 1.


(законы алгебры логики применяются в следующей последовательности: правило де Моргана, сочетательный закон, правило операций переменной с её инверсией и правило операций с константами);

Пример 2.

(применяется правило де Моргана, выносится за скобки общий множитель, используется правило операций переменной с её инверсией);

Пример 3

(повторяется второй сомножитель, что разрешено законом идемпотенции; затем комбинируются два первых и два последних сомножителя и используется закон склеивания);

Пример 4

(вводится вспомогательный логический сомножитель ( ); затем комбинируются два крайних и два средних логических слагаемых и используется закон поглощения);

Пример 5

(сначала добиваемся, чтобы знак отрицания стоял только перед отдельными переменными, а не перед их комбинациями, для этого дважды применяем правило де Моргана; затем используем закон двойного отрицания);



Пример 6

(выносятся за скобки общие множители; применяется правило операций с константами);

Пример 7

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

Пример 8

(общий множитель x выносится за скобки, комбинируются слагаемые в скобках — первое с третьим и второе с четвертым, к дизъюнкции применяется правило операции переменной с её инверсией);

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

Таблица тождественных преобразований логических выражений:

Закон Для ИЛИ Для И
Переместительный
Сочетательный
Распределительный
Правила де Моргана
Идемпотенции
Поглощения
Склеивания
Операция переменной с ее инверсией
Операция с константами
Двойного отрицания

Перевести на язык алгебры логики выражения естественного языка:

1. Я поеду в Москву и если встречу там друзей, то интересно проведу время.

2. Если я поеду в Москву и встречу там друзей, то мы интересно проведем время.

3. Неверно, что если дует ветер, то солнце светит только тогда, когда нет дождя

или

4. Петя пойдет на рыбалку только при солнечной погоде, если не будет жарко.

Задание: Кто из подозреваемых участвовал в преступлении, если известно:

1) если Иванов не участвовал или Петров участвовал, то Сидоров участвовал;

2) если Иванов не участвовал, то Сидоров не участвовал.

Решение: Введем обозначения:

И - Иванов учавствовал в преступлении;

П - Петров учавствовал в преступлении;

С - Сидоров учавствовал в преступлении.

Составим выражения на каждое из данных утверждений (высказываний):

1)
2)
     

Соединим оба утверждения в одно высказывание:


Составим таблицу истинности на полученное высказывание:

В итоге мы видим, что только у Иванова в полученных строках "ИСТИНА" совпадает с его участием в преступлении. Значит он и есть преступник.
Остальные или не участвовали в преступлении, или не хватает улик для их обвинения.

Задание: Трое друзей, болельщиков автогонок "Формула-1", спорили о результатах предстоящего этапа гонок.

— Вот увидишь, Шумахер не придет первым, — сказал Джон. Первым будет Хилл.

— Да нет же, победителем будет, как всегда, Шумахер, — воскликнул Ник. — А об Алези и говорить нечего, ему не быть первым.

Питер, к которому обратился Ник, возмутился:

— Хиллу не видать первого места, а вот Алези пилотирует самую мощную машину.

По завершении этапа гонок оказалось, что каждое из двух предположений двоих друзей подтвердилось, а оба предположения третьего из друзей оказались неверны. Кто выиграл этап гонки?

Решение: Введем обозначения для логических высказываний:

Ш — победит Шумахер;
Х
— победит Хилл;
А — победит Алези.

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

Зафиксируем высказывания каждого из друзей:

Учитывая то, что предположения двух друзей подтвердились, а предположения третьего неверны, запишем и упростим истинное высказывание

Высказывание истинно только при Ш=1, А=0, Х=0.

Ответ. Победителем этапа гонок стал Шумахер.

 

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

Известно, что:

  1. Смит самый высокий;
  2. играющий на скрипке меньше ростом играющего на флейте;
  3. играющие на скрипке и флейте и Браун любят пиццу;
  4. когда между альтистом и трубачом возникает ссора, Смит мирит их;
  5. Браун не умеет играть ни на трубе, ни на гобое.

На каких инструментах играет каждый из музыкантов, если каждый владеет двумя инструментами?

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

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

Из условия 4 следует, что Смит не играет ни на альте, ни на трубе, а из условий 3 и 5, что Браун не умеет играть на скрипке, флейте, трубе и гобое. Следовательно, инструменты Брауна — альт и кларнет. Занесем это в таблицу, а оставшиеся клетки столбцов "альт" и "кларнет" заполним нулями:

  скрипка флейта альт кларнет гобой труба
Браун
Смит      
Вессон        

Из таблицы видно, что на трубе может играть только Вессон.

Из условий 1 и 2 следует, что Смит не скрипач. Так как на скрипке не играет ни Браун, ни Смит, то скрипачом является Вессон. Оба инструмента, на которых играет Вессон, теперь определены, поэтому остальные клетки строки "Вессон" можно заполнить нулями:

  скрипка флейта альт кларнет гобой труба
Браун
Смит    
Вессон

Из таблицы видно, что играть на флейте и на гобое может только Смит.

  скрипка флейта альт кларнет гобой труба
Браун
Смит
Вессон

Ответ: Браун играет на альте и кларнете, Смит — на флейте и гобое, Вессон — на скрипке и трубе.

 



<== предыдущая лекция | следующая лекция ==>
Алгоритм построения ДНФ | Количество игроков


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.