Тверской государственный университет
Опубликован: 03.11.2014 | Доступ: свободный | Студентов: 3249 / 72 | Длительность: 14:38:00
Лекция 26:

Формально или неформально? Часть 2

< Лекция 1 || Лекция 26
Аннотация: В этом уроке продолжим рассмотрение логических задач, имеющих содержательную формулировку. Рассмотрим задачи, не поддающиеся простой формализации в рамках логики высказываний, но допускающие построение логического вывода в рамках обычной логики.

Смотреть лекцию на: ИНТУИТ | youtube.com

Если проблемы с видео, нажмите выше ссылку youtube

Get Adobe Flash Player

Задача, которую мы рассмотрим в этом уроке, взята из моей любимой книги о Гарри Поттере. В первой книге "О философском камне" героям приходится решать логическую задачу. Процитирую некоторый фрагмент:

Это не магия – это логика. Логическая задача. Между прочим, многие величайшие волшебники были не в ладах с логикой, и, попади они сюда, они остались бы здесь навечно.

Напомню ситуацию, в которую попали герои книги – Гарри и Гермиона. Они в зале. Сзади стена фиолетового огня, впереди – черного. Перед ними стол, на котором стоит ряд из 7 сосудов. В трех из них – смертельный яд, в двух – вино, в одном напиток, позволяющий пройти фиолетовый огонь, в другом – пройти вперед через стену черного огня. Но как узнать, что находится в каждом сосуде. Героям даны четыре подсказки. Приведу их в моем переводе оригинального текста:

1. Мы, что с краю стоим, мы различны внутри,

Не пропустим вперед, как ты нас не проси

2. Мы вторые в ряду, слева, справа смотреть,

Мы единой природы, - в нас вино или смерть.

3. В этом стройном ряду, как не прячется яд,

я с вином благородным буду справа стоять.

4. Я сосуд – великан, помни только о том,

С малышом мы различны, но мы смерть не несем.

Поскольку сосудов вы не видите, в отличие от Гермионы, то Вам нужна пятая подсказка:

5. Сосуд – великан стоит вторым слева, а малыш – пятый в этом ряду.

Гермиона решила эту задачу, - нашла сосуды с напитками, позволившими ей вернуться назад, а Гарри идти вперед. Попробуйте и Вы, прежде чем читать далее, построить логический вывод и найти решение задачи, не простое даже для волшебников из школы Хогвартс.

Приведу вначале не формализованное решение. Построю логический вывод, как это сделала Гермиона, как это мог бы сделать мастер дедуктивного вывода Шерлок Холмс.

Из второй подсказки следует, что во втором и шестом сосудах вино или яд – напитки одинаковой природы. Из пятой подсказки следует, что второй сосуд – великан. Подсказка 4 говорит нам, что во втором сосуде не может быть яд. Следовательно, во втором сосуде вино, следовательно, и в шестом сосуде вино.

Содержимое двух сосудов определено. Осталось определить, что находится в оставшихся пяти сосудах.

В седьмом сосуде не может быть яд, поскольку из подсказки 3 следует, что яд может находиться только в сосудах, стоящих слева от сосуда 6 с благородным вином. Поэтому в сосуде 7 спасительный напиток, открывающий путь вперед или назад. Но из подсказки 1 следует, что крайние сосуды не позволяют пройти вперед, следовательно, в сосуде 7 напиток, позволяющий вернуться назад.

Остались 4 сосуда, один безопасен со спасительным напитком, позволяющим пройти вперед, три – содержат яд. Из подсказки 4 следует, что вперед позволяет пройти сосуд – малыш, в котором напитка на один глоток, что позволило идти вперед только Гарри, а Гермиона должна была вернуться назад, выпив напиток из седьмого сосуда.

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

Можно ли формализовать эту задачу, сформулировав ее как некую задачу математической логики? Это возможно, хотя формальная постановка будет довольно громоздкой.

Покажем, как это может быть выполнено. Пронумеруем сосуды слева направо от единицы до 7. Пронумеруем четыре возможных напитка - вино, яд, путь вперед, путь назад. Высказывание "Сосуд i – напиток j" истинно тогда, когда в i-м сосуде хранится j-й напиток.

Формализуем подсказку 2. Ее суть можно выразить следующими сложными высказываниями:

  • (Сосуд 2 – напиток 1) & (Сосуд 6 – напиток 1)
  • (Сосуд 2 – напиток 2) & (Сосуд 6 – напиток 2)

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

Заметим, что результат формализации зависит от того, в каком фрагменте математической логики строится формализация. Для логики высказываний каждому простому высказыванию ставится в соответствие логическая переменная. Поэтому нам понадобится 28 переменных для формализации высказываний "Сосуд i – напиток j". Если ввести естественную нумерацию переменных и высказыванию "Сосуд i – напиток j" ставить в соответствие переменную Xn, где номер n считается по формуле:

n = 4*(i – 1) + j,

то подсказка 2 может быть записана следующей формулой логики высказываний:

(X5 & X21) XOR (X6 & X22)

Займемся формализацией первой подсказки. В ней утверждается, что содержимое 1-го и 7-го (крайних) сосудов различно. Формально, это утверждение проще записать в логике предикатов, используя квантор всеобщности:

∀ i !((Сосуд 1 – напиток i) & (Сосуд 7 – напиток i))

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

!(X1 & X25) & !(X2 & X26) & !(X3 & X27) & !(X4 & X28)

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

!(X3 | X27)

Дальнейшую формализацию этой задачи оставляю в качестве упражнения. Заметьте, что помимо формализации подсказок требуется также формализовать следующие факты:

  • Каждый сосуд содержит только один напиток;
  • Вино содержится в двух сосудах;
  • Яд содержится в трех сосудах;
  • Напитки "путь вперед" и "путь назад" находятся только в одном из семи сосудов.

В чем же преимущество подобной формализации и есть ли оно вообще? Полученная в итоге формула слишком громоздка. Найти решение не проще, чем провести естественный для человека логический вывод.

Достоинством формального подхода является то, что после формализации решение задачи можно поручить компьютеру, написав соответствующую программу (подобные программы уже написаны). Если задачу нужно решить один раз, то конечно не стоит связываться с компьютером и следует попытаться найти решение самостоятельно. Но, представьте, что каждый день, идя в школу, вам придется проходить подобное испытание! Путь к знаниям бывает нелегким! Тогда наличие "умного" компьютера может быть весьма полезным!

< Лекция 1 || Лекция 26
Сергей Волков
Сергей Волков

Приведу пример из лекции "Знания в школе передавались устно, к счастью, один из учеников Пифагора составил три книги с записями его учения." Книги же начали делать гораздо позже. Или имеется ввиду, что сейчас этот объем знаний помещается в три книги?

Оксана Тычинская
Оксана Тычинская

У меня тот же вопрос, что и у Евгения: я решила задачу методом перебора, причем правильного ответа в предложенных вариантах теста к теме номер 2 не оказалось. Как предлагается решить эту задачу методом индукции - непонятно. Почему в тесте отсутсвует правильный ответ (а ведь посчитать число простых чисел в определенном диапазоне совсем несложно) - тоже непонятно.

андрей лошаков
андрей лошаков
Россия, Самарская область
Иван Стукач
Иван Стукач
Россия, г. Великий Новгород