8.2. Решение логических задач с помощью теории булевых функций
Суть применения методов теории булевых функций к решению логических задач состоит в том, что, имея конкретные условия логической задачи, стараются записать их в виде логической функции. При этом учитывается, что каждое высказывание может быть либо истинным, либо ложным и, значит, его можно обозначить логической переменной. В дальнейшем путем равносильных преобразований упрощают полученную формулу, что, как правило, приводит к ответу на все вопросы задачи, но иногда все-таки требуется применять логические рассуждения.
Покажем на ряде конкретных примеров, как использовать возможности теории булевых функций для решения элементарных логических задач.
Пример 1. Пытаясь вспомнить победителей прошлогоднего турнира, 5 бывших зрителей турнира заявили:
1) Антон был вторым, а Борис пятым.
2) Виктор был вторым, а Денис третьим.
3) Григорий был первым, а Борис третьим.
4) Антон был третьим, а Евгений шестым.
5) Виктор был третьим, а Евгений четвертым.
Впоследствии выяснилось, что каждый мог ошибиться, не более чем в одном высказывании. Каково было истинное распределение мест в турнире?
Решение. Будем обозначать высказывания зрителей Хk , где Х – первая буква имени участника турнира, а k – номер места, которое он занял в турнире. В высказываниях зрителей одно высказывание может быть ложным, поэтому будут истинными дизъюнкции этих высказываний А2 Б5, В2 Д3 , Г1 Б3 , А3 Е6 , В3 Е4. Но тогда истинной будет конъюнкция : K= (А2 Б5)(В2 Д3)(Г1 Б3 )(А3 Е6)(В3 Е4 ) = 1.
Учитывая, что Хk Хп = 0 при k п и ХkYk = 0 при X Y, получаем путем последовательного раскрытия скобок в К:
К = (А2Д3 Б5В2 Б5Д3)( Г1А3 Г1Е6 Б3Е6)(В3 Е4) =
= (А2Д3Г1Е6 Б5В2Г1А3 Б5В2Г1Е6 Б5Д3Г1Е6)(В3 Е4) = А3Б5В2Г1Е4 = 1
Полученное соотношение дает распределение первых 5 мест и автоматически получаем, что Денис был шестым т. е. Д6 = 1.
Пример 2. По подозрению в совершении преступления задержали Брауна, Джонса и Смита. Вот что они показали:
Браун: Я совершил это. Джонс не виноват.
Джонс: Браун не виноват. Преступление совершил Смит.
Смит: Я не виноват. Виновен Браун.
В процессе следствия выяснилось, что у одного из них оба утверждения ложны, у другого одно ложно, одно истинно, а у третьего оба истинны, а также, что преступник только один. Требуется определить имя преступника, кто из них говорил правду, а кто нет.
Решение. Обозначим буквами B, D, C высказывания: виноват Браун, виноват Джонс, виноват Смит соответственно. Тогда утверждения, высказанные задержанными, можно записать в виде конъюнкций , из которых по условию задачи, две ложны, а одна истинна. Истинной будет формула , но из этой формулы решение получится только дополнительным рассуждением: пусть B = 1, тогда по условию C = 0 и D = 0. Но тогда из трех конъюнкций, составляющих К две будут верны: , а это противоречит условию. Значит В=0. Видно, что C=1 удовлетворяет условию задачи, и это решение единственно, так как если предположить, что D = 1, то это будет означать, что , а значит, что либо В, либо С равно 1, но это противоречит тому, что преступник только один.
Таким образом, преступник – Смит, оба его высказывания ложны, у Брауна одно высказывание ложно, одно нет, а Джонс сказал правду.
Все эти рассуждения используются не только для решения логических задач (которые действительно приходится решать следователям), но и для составления игровых программ (компьютерная игра ШЕРЛОК, содержащая больше 60 тыс. логических задач, составлена с использованием тех же самых конъюнкций, дизъюнкций и отрицаний).
- Cодержание:
- Логические (булевы) функции
- 1. Основные логические функции
- Две функции равны, если совпадают их таблицы истинности (на объединенном наборе переменных).
- 2. Свойства конъюнкции, дизъюнкции и отрицания
- 3. Днф, сднф, кнф, скнф
- 4. Представление логических функций в виде сднф (скнф)
- 5. Нахождение сокращенной днф по таблице истинности (карты Карно)
- 6. Полиномы Жегалкина
- 7. Суперпозиция функций. Замыкание набора функций. Замкнутые классы функций. Полные наборы. Базисы
- 8. Некоторые приложения теории булевых функций
- 8.1. Функциональные элементы и схемы
- 8.2. Решение логических задач с помощью теории булевых функций
- Элементы теории графов
- 9. Общие понятия теории графов
- 10. Эйлеровы и полуэйлеровы графы
- 11. Матрицы и графы. Нахождение путей и сечений с помощью структурной матрицы
- 12. Сети, потоки в сетях. Теорема Форда – Фалкерсона
- 13. Раскраска графа
- 14. Деревья и их простейшие свойства
- 15. Решение типовых задач
- Литература