
Программа курса M
.doc
Программа курса
Логика высказываний Операции логики высказываний Напомним определения и свойства понятий логики высказываний, которые изучались в курсе «Дискретная математика».
Простые
высказывания
будем обозначать строчными буквами
латинского алфавита: а,
b,
с, …
Если высказывание a
истинно, будем писать
Эту таблицу примем в качестве определения операции отрицания.
Конъюнкцией
(логическим умножением) высказываний
а
и b
называется высказывание, которое
истинно тогда и только тогда, когда a
и b
оба истинны, что обозначается в нашем
курсе
Третья операция, которая употребляется в логике высказываний, соответствует союзу "или". Отметим то обстоятельство, что союз "или" имеет в русском языке два значения: исключающее и неисключающее "или". Так, высказывание: "Я сегодня вечером буду решать задачи по математической логике или пойду в кино", – подразумевает, что выбирается ровно один из двух вариантов ответа – но никак не оба. Это пример использования исключающего "или": здесь подразумевается, что одно отменяет другое: либо решаю задачи, либо иду в кино. Напротив, высказывание "Чтобы сдать экзамен |
нужно быть готовым ответить на любой вопрос или вытянуть удачный билет" подразумевает, что не исключается возможность сдать экзамен и в случае, когда выучен весь материал и вытянут удачный билет. Это пример использования неисключающего "или": здесь подразумевается, что верно хотя бы одно из двух высказываний (возможно, что оба). Вводимой ниже логической операции соответствует союз "или" в неисключающем смысле. Итак,
Операции импликации
соответствует конструкция "если…,
то…", но необходимо иметь в виду,
что в обыденной речи мы часто воспринимаем
этот союз в несколько ином смысле, чем
в математической логике. Действительно,
так как по данному выше определению
высказывание
Операции
эквивалентности соответствуют
выражения "… тогда и только тогда,
когда …", "чтобы …, необходимо и
достаточно, чтобы …", "… в том и
только в том случае, когда …".
Например, если a
– высказывание "10 делится на 2",
b
– высказывание "10 делится на 3",
а c
– высказывание "15 делится на 2",
то высказывания
Употребляя все пять введенных логических операций можно, как это делается в обычной алгебре с помощью привычных алгебраических операций, строить сколь угодно сложные высказывания.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Пример. Пусть высказывание а означает "число делится на 2"; b – "число делится на 3"; с – " число делится на 6". Записать утверждение: "Число делится на 6 тогда и только тогда, когда оно делится на 2 и на 3" в виде сложного высказывания с использованием соответствующих логических операций. Ответ:
Ниже везде будем предполагать (чтобы не ставить лишних скобок), что операция отрицания выполняется перед всеми остальными. Например, вместо
Задача Определите, истинно или ложно последнее высказывание, исходя из истинности или ложности предыдущих высказываний.
а)
б)
в)
г)
д)
е)
ж)
з)
и)
к)
л)
м)
Пример решения.
л) Из первого условия заключаем, что
невозможна ситуация, когда
Формулы Выражение,
связывающее простые высказывания с
помощью знаков логических операций
и скобок и определяющее таким образом
сложное высказывание, будем называть
формулой.
Для обозначения
формул будем употреблять большие
латинские буквы: A,
B,
C,
… При этом выражение вида
Теперь
отвлечемся от конкретных значений
входящих в формулу высказываний.
Именно, рассмотрим формулу
Если формулы
В таком случае
будем использовать обозначение
|
Пример.
Пусть
Решение. Пользуясь таблицами истинности для импликации, отрицания и дизъюнкции, построим таблицы истинности для формул А и В и убедимся в том, что значения А и В при всех значениях a и b совпадают:
Логические законы Равносильность (или ее отсутствие) любых двух данных формул можно установить конечным числом операций: вычислить значения формул при всех наборах значений переменных; если эти значения для каждого набора переменных совпадают – формулы равносильны, иначе – нет. Правда, если количество переменных велико, применение такого механизма сравнения становится трудновыполнимым: например, если переменных 40, то нужно испробовать 240=10244>1012 наборов, притом, что и количество операций в формуле может быть значительным. В применениях логики высказываний, как правило, интересуются не равносильностью каких-либо двух формул, а равносильностью бесконечного количества пар формул. В таких ситуациях перебор всех наборов значений переменных вообще невозможен. Нужно обладать условиями равносильности всех формул некоторого определенного вида формулам некоторого другого определенного вида. А такие условия не могут быть проверены прямым подсчетом, требуются законы, применимые сразу к бесконечным классам формул. Сформулируем некоторые такие законы логики высказываний (везде A, B и C – любые формулы):
Самодистрибутивность импликации:
Задача Из трех данных высказываний a, b, c постройте формулу, определяющую сложное высказывание, которое а) истинно тогда и только тогда, когда все данные |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
высказывания истинны; б) ложно тогда и только тогда, когда все данные высказывания ложны; в) истинно тогда и только тогда, когда все данные высказывания ложны; г) ложно тогда и только тогда, когда все данные высказывания истинны; д) истинно тогда и только тогда, когда истинны высказывания a и b; е) ложно тогда и только тогда, когда ложны высказывания a и b; ж) истинно тогда и только тогда, когда данные высказывания либо все истинны, либо все ложны; з) ложно тогда и только тогда высказывания a и b истинны, а высказывание c ложно; и) истинно тогда и только тогда, когда истинно ровно одно из высказываний a, b и c; к) ложно тогда и только тогда, когда ложны ровно два из высказываний a, b и c.
Пример решения.
з) Искомое высказывание ложно лишь в
одном случае: когда высказывание c
ложно, а оба высказывания a
и b
истинны. Таким высказыванием могло
бы стать высказывание вида
Логические следствия Будем
говорить, что формула B
является логическим
следствием
формулы A
и обозначать
это
Определение логического следствия является формальным выражением нашего интуитивного понимания о следовании одного утверждения из другого. Действительно, пусть В есть следствие А. Тогда знание об истинности А позволяет нам утверждать об истинности В без знания какой-либо дополнительной информации. Если, наоборот, утверждение А ложно, то утверждение В может быть как истинным, так и ложным: без дополнительной информации мы не можем утверждать об истинности или ложности В. Если (еще о равносильности).
Пример.
Формула
Определение.
Формула A
является
логическим
следствием
формул
Задачи
а) две формулы равносильны тогда и только тогда, когда каждая из них является логическим следствием другой; б) тождественно истинная формула является следствием любой формулы; |
в) любая формула является следствием тождественно ложной формулы.
а)
б)
в)
г)
д)
е)
ж)
з)
л)
м)
и)
к)
Принцип
решения. Формулы
P
и Q
могут принимать 4 комбинации значений:
Решение
а)
Тождественно истинные формулы
Формула A
является тождественно
истинной,
если она принимает значение «истина»
при любых значениях входящих в нее
переменных. Для тождественно истинной
формулы A
будем использовать обозначение
Покажем, что установление логического следствия между двумя формулами сводится к установлению тождественной истинности некоторой формулы.
Теорема 1.
Формула А
является логическим следствием формул
Доказательство.
Обозначим через
Пусть формула A
есть логическое следствие формул
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Наоборот, пусть
A
не есть следствие формул
Теорема 2.
Формула А
является логическим следствием формул
Теорема 2
доказывается аналогично теореме 1.
Положив в теореме 2
Задачи
а) если
в) если
г) если
д) если
е) если
ж) если
з) если
и) если
к) если
л) если
м) если
Принцип решения Либо рассмотреть все наборы значений, которые могут принимать F, G и H, либо от противного: «Допустим, что формула … не является тождественно истинной…»
Пример решения.
Предположим, что формула
|
существуют такие
значения переменных
Исчисление высказываний Законы логики высказываний дают метод получения истинных высказываний, заключающийся в проведении равносильных преобразований. Теперь изложим принципиально иной метод формального вывода. Мы зададим множество тождественно истинных формул, которые назовем аксиомами. Далее зададим правила, позволяющие выводить из аксиом другие тождественно истинные формулы. При этом правила вывода формулируются так, что процесс вывода сводится к формальной (грубо говоря, чисто механической) процедуре: это означает, в частности, что формальный вывод может осуществлять механическое устройство, которое будет «вычислять» новые истинные высказывания. Метод формального вывода в логике высказываний так и называется: исчисление высказываний. Ниже мы встретимся и с другими его применениями. Зададим некоторый набор символов, который будем называть алфавитом. Символы алфавита будем называть буквами, любую конечную последовательность букв будем называть словом. Пусть рассматриваемый алфавит составляют следующие буквы: 1) символы 1 («истина») и 0 («ложь»);
2) переменные
3) знаки логических операций , &, , →, ↔; 4) скобки ( и ). Слова будем обозначать заглавными латинскими буквами: A, B, C, … Будем рассматривать формулы логики высказываний как слова описанного алфавита. Чтобы выделить из всех слов те, что являются формулами, зададим следующее правила:
1) всякая переменная
(то есть слово вида
2) символы 0 и 1 являются формулами; 3) если слова А и В являются формулами, то
слова
4) никакие другие слова, кроме полученных по правилам 1), 2) и 3), не являются формулами.
Примечание.
Ниже для
удобства везде будем опускать внешние
скобки, то есть формулы вида
Указанные правила можно считать определением формулы: действительно, пользуясь ими, можно получить любую формулу, и ничего, кроме формул, получить нельзя. Более того, можно описать формальную (чисто механическую) процедуру, которая, будучи применена к любому слову, за конечное число шагов установит, является ли оно формулой, и если является, то восстановит, какой последовательностью применения правил 1)-4) она была получена. Не будем останавливаться на доказательстве этого факта. Правило вывода modus ponens
Пусть A
и B
– слова, и при этом A
и
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
формул, формула
Пусть Ф (это
заглавная греческая буква фи)
– некоторое множество формул.
Последовательность формул
Пример.
Докажем, что если множество Ф состоит
из всех формул вида
Пример.
Докажем, что если множество Ф состоит
из всех формул видов
Для этого
достаточно показать, что любая формула,
получающиеся из двух формул множества
Ф по правилу modus
ponens,
сама принадлежат Ф, то есть имеет вид
1)
2)
3)
4)
Рассмотрим
случай 1). Имеем
Упражнение. Разберите их. Аксиомы, теоремы, доказательства При применении правила modus ponens к формулам из некоторого множества получаются слова, которые также являются формулами. Можно было бы изобрести и другие правила, обладающие этим свойством. Выбрано именно правило modus ponens потому, что оно обладает также следующим замечательным свойством: если все формулы, составляющие множество Ф, тождественноистинны, то все формулы, выводимые из множества Ф, также являются тождественно истинными.
Действительно,
рассмотрим две тождественно истинные
формулы А
и
|
невозможно, чтобы
при некоторых значениях входящих в
формулы А
и В
переменных одновременно выполнялись
равенства
Не из всякого
множества, состоящего из тождественно
истинных формул, выводимы все
тождественно истинные формулы:
например, множество
Итак, формулы следующих видов назовем аксиомами:
(А1)
(А2)
(А2)
Кроме того, введем обозначения:
Обозначим множество
всех аксиом буквой А (альфа);
отметим, что это множество содержит
бесконечно много формул, а именно –
все формулы видов (А1), (А2) и (А3). Формулы,
выводимые из множества А, будем называть
доказуемыми
формулами или теоремами.
Утверждение, что формула F
есть теорема, будем обозначать так:
Задачи
а)
б)
в) W,
г)
д) G,
е)
W,
ж)
з) W,
и)
Пример решения. в) Вторая и третья формулы имеют вид |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
соответственно
* Докажите, формулы следующих видов являются теоремами исчисления высказываний, построив их выводы из аксиом:
а)
б)
в)
г)
д)
е)
ж)
з)
и)
к)
Пример решения. а) Выводом является, например, следующая последовательность формул:
(1)
(2)
(3)
(4)
(5)
Действительно,
формула (1) представляет собой аксиому
(А2), в которой в качестве F
и H
взята формула F,
а в качестве G
– формула
Вывод из гипотез
Пусть имеется
некоторое множество Г (гамма)
формул. Формулы из Г назовем гипотезами.
Если существует вывод формулы F
из множеств А и Г, то будем говорить,
что она выводима
из множества гипотез
Г и записывать это в виде
Задача * Докажите, что имеют место следующие выводимости, построив соответствующие выводы из гипотез:
а)
б)
в)
г)
д)
е)
ж)
з)
и)
к)
л)
м)
н)
|
о)
п)
р)
с)
т)
у)
ф)
х)
ц)
ч)
ш)
щ)
Примеры
решений.
б) Выводом является, например, следующая
последовательность формул: (1) G,
(2)
в) Очевидно, что если некоторая формула выводима из некоторого множества гипотез, то она выводима и из большего множества гипотез. Теперь сопоставим нашу задачу с задачей б).
и) Справедлив,
например, следующий вывод:
Применение теоремы о дедукции Приведем теорему, использование которой облегчает во многих случаях процесс вывода.
Теорема (о
дедукции). Пусть
Г –
множество гипотез и F, G – формулы.
Тогда для того, чтобы выполнялось
условие
Следствие.
Задача * Используя теорему о дедукции, докажите, что следующие формулы являются теоремами исчисления высказываний:
а)
б)
в)
г)
д)
е)
Пример решения.
а) Выводимость
Теорема о полноте и ее следствия Идея построения исчисления высказываний в явном виде была сформулирована американским математиком Э. Постом: в |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1921 году он доказал утверждение, которое в эквивалентном виде может быть сформулировано так: можно так указать конечное множество видов аксиом логики высказываний и правил вывода, что каждая тождественно истинная формула окажется выводимой из аксиом за конечное число шагов и никакая другая формула выводима не будет. Приведенные выше аксиомы и правило modus ponens представляют собой конкретную реализацию этой идеи: именно, справедливо следующее утверждение.
Теорема (о
полноте исчисления высказываний).
Любая формула
логики высказываний тождественно
истинна тогда и только тогда, когда
она является доказуемой формулой
исчисления высказываний (иначе
говоря,
Следствие 1
(теорема о непротиворечивости исчисления
высказываний). Никакая
формула F
не является теоремой исчисления
высказываний одновременно со своим
отрицанием
Другими словами, исчисления высказываний непротиворечиво.
Доказательство.
Допустим, что исчисление высказываний
противоречиво: имеется такая формула
F,
что F
и
Следствие 2 (теорема о разрешимости исчисления высказываний). Существует алгоритм, позволяющий по виду любой формулы логики высказываний определить, доказуема ли она. Упомянутый алгоритм называют разрешающим алгоритмом. Короче теорема о разрешимости исчисления высказываний формулируется следующим образом: исчисление высказываний разрешимо. Доказательство. На основании теоремы о полноте доказуемость формулы эквивалентна ее тождественной истинности. Для проверки последнего свойства достаточно составить таблицу истинности формулы: если последний столбец таблицы будет полностью состоять из единиц, то формула является тождественно истинной, а следовательно, и теоремой исчисления высказываний. Если же в последнем столбце встретятся нули, то формула не является тождественно истинной, следовательно, она недоказуема. Таким образом, разрешающим алгоритмом для исчисления высказываний является алгоритм вычисления значений формулы при всех значениях переменных (например, с помощью таблицы истинности). Отметим, что справедливо следующее обобщение теоремы о полноте.
Теорема (об
адекватности исчисления высказываний).
Формула
логики высказываний F
является следствием формул из множества
Г
тогда и только тогда, когда F
выводима из множества гипотез Г
(то есть
Наконец заметим, что теорема о полноте исчисления высказываний, хотя и означает, по сути, что «все, что истинно – доказуемо», но все же в очень узком смысле: логика высказываний является слишком бедной теорией для полного описания логического аппарата математических заключений. Тем самым и типы логических заключений, основанных на тождественно истинных формулах, далеко не исчерпывают логических законов, используемых математикой, не говоря о других науках. Логика предикатов Понятие предиката При всей важности логики высказываний как раздела математики, в ее рамки не укладываются ни аристотелевская логика силлогизмов, ни простейшие заключения арифметики и геометрии, не говоря о более сложных логических выводах. Дело в том, что во многих случаях мы можем делать вывод об истинности или ложности некоторого высказывания исходя не только из фактов истинности или ложности других высказываний (посылок), но и из содержания посылок. Например, из истинности высказываний «a меньше b» и «b не равно c» никакого вывода не |
следует, но из истинности высказываний «a меньше b» и «b меньше c» следует истинность высказывания «a меньше c». Чтобы построить систему правил, позволяющих автоматически (по виду языкового выражения) делать подобные заключения, необходимо в некоторой степени исследовать строение высказываний. Важным шагом в этом направлении является раздел математической логики, называемый логикой предикатов, которая предполагает логику высказываний известной и идет дальше: простые высказывания, входящие в заключение, расчленяются. Проводя аналогию математической логики с физическими теориями строения вещества, можно логику высказываний образно назвать «молекулярной» логикой, а логику предикатов – «атомарной» логикой.
Определение.
Под n-местным
предикатом
будем понимать функцию
Области определения переменных могут быть любыми. Рассмотрим несколько примеров.
Пусть множеством
значений переменной x
является множество всех людей, а
предикат
Пусть множеством
значений переменных x
и y
является множество всех действительных
чисел, а предикат
Трехместными предикатами являются, например, «x и y являются родителями z», где x, y, z – люди, и «x лежит между y и z», где x, y, z – точки на прямой. Таким образом, предикат устанавливает отношение между значениями некоторого количества переменных, принимающих значения из некоторых множеств. По числу переменных предикат называется одноместным, двуместным, …, n-местным, … Высказывания можно считать нульместными предикатами: действительно, высказывание либо истинно, либо ложно независимо ни от каких переменных. Говорят также, что n-местный предикат устанавливает n‑местное отношение.
Функцию одной
переменной можно рассматривать как
двуместный предикат. Действительно,
всякая функция
Аналогично сказанному, функцию n переменных можно рассматривать как (n+1)-местный предикат, а обратное неверно. Укажем еще на одно свойство: n-местный предикат переходит в (n‑m)‑местный при подстановке на место m переменных их конкретных значений (аналогичное свойство справедливо для функции n переменных, принимающей значения не обязательно на множестве {0,1}).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Применение операций логики высказываний к предикатам Операции логики высказываний позволяют из некоторых исходных предикатов строить новые.
Рассмотрим сначала
одноместные предикаты. Если заданы
предикаты
Покажем связь
операций &,
Операции логики высказываний над многоместными предикатами определяются вполне аналогично. Не будем давать общего определения, ограничимся примером, из которого ясно, как строится сложный предикат в том или ином случае.
Пусть на некотором
множестве определены два двуместных
предиката
Если
Кванторы В логике предикатов наряду с операциями логики высказываний основную роль играют операции, называемые кванторами. Именно употребление кванторов делает логику предикатов значительно более богатой, чем логика высказываний.
Пусть
|
Тогда
Если множество
M
состоит из конечного числа объектов,
то высказывание
Высказывание
Опять-таки, если
M
– конечное множество, то высказывание
Итак, можно считать, что кванторы и являются обобщениями операций логики высказываний: соответственно конъюнкции и дизъюнкции.
Несмотря на то,
что в выражениях (называемых формулами)
Между кванторами и имеют место отношения, позволяющие сводить один квантор к другому:
Действительно,
высказывание «Неверно, что все x
обладают свойством
С помощью кванторов выражается ряд важных отношений между множествами.
Пусть
означает, что
высказывание
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Упражнение.
Докажите обратное утверждение. То
есть докажите, что если
Итак, высказывание
(1) означает, что множество P
содержится во множестве Q,
или, что то же самое, что все объекты,
обладающие свойством
С помощью квантора
существования строится высказывание,
означающее, что пересечение
характеристических множеств P
и Qпредикатов
Аналогично с помощью кванторов записывается ряд других отношений между одноместными предикатами. Более богатые возможности открывает применение кванторов к многоместным предикатам.
Пусть
Таким образом,
применение n
кванторов по отношению ко всем
переменным предиката
Пример.
Предел последовательности определяется
следующим образом: число a
является пределом последовательности
|
определения
других свойств последовательности
Упражнение. Попробуйте разобраться, что это за свойства. Задачи 1. Определите, какие из следующих высказываний истинны, а какие ложны, считая, что все переменные пробегают множество действительных чисел:
а)
б)
в)
г)
д)
е)
ж)
з)
и)
к)
л)
2. Из следующих предикатов с помощью кванторов постройте всевозможные высказывания и определите, какие из них истинны, а какие ложны (значения переменных x и y – действительные числа):
а)
б)
в)
г)
д)
е)
ж)
з)
и)
к)
л)
м)
Пример
решения. л)
Из этого одноместного предиката можно
с помощью кванторов построить два
высказывания:
3. Являются ли тождественно истинными следующие формулы логики предикатов:
а)
б)
в)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
г)
д)
е)
ж)
з)
и)
к)
л)
Пример решения.
л) Покажем,
что эта формула не является тавтологией.
Для этого в качестве области определения
предикатов P
и Q
возьмем множество натуральных чисел,
а предикаты выберем следующие:
Исчисление предикатов Как и логика высказываний, логика предикатов допускает формализацию, сводящую получение тождественно истинных формул к чисто механической процедуре – формальному выводу. Алфавит исчисления предикатов состоит из следующих букв: 1) символов 1 и 0;
2) предметных
переменных
3) предметных
констант
4) предикатных
символов
5) знаков логических операций , &, , →, ↔;
6) кванторов
7) скобок ( и ). Понятие формулы определяется индуктивно:
а) если P
– предикатный символ,
б) если
в) если
г) никаких других формул, кроме тех, что строятся по правилам а), б) и в), нет. Система аксиом исчисления предикатов включает в себя аксиомы исчисления высказываний:
(А1)
(А2)
|
(А2)
и две новые аксиомы, содержащие кванторы:
(А4)
(А5)
Кроме того, как и в исчислении высказываний, введем обозначения:
К правилу вывода
modus ponens добавляются еще два правила
вывода. Пусть формула
1)
2)
Понятие вывода
определяется так же, как в исчислении
высказываний: пусть Ф – некоторое
заданное множество формул, тогда
последовательность формул
Формулы, выводимые из аксиом, называются доказуемыми формулами или теоремами. Так же, как в исчислении высказываний, определяется выводимость из гипотез. Остается справедливой теорема о дедукции. Теорема о полноте и проблема разрешимости Исчисление предикатов строится таким образом, чтобы была справедлива теорема о его полноте, формулировка которой совпадает с формулировкой аналогичной теоремы для исчисления высказываний: формула F является теоремой тогда и только тогда, когда она тождественно истинна. Эта теорема, доказанная немецким математиком К.Гёделем в 1930 году, являет собой один из важнейших фактов современной математической логики, поскольку, в отличие от логики высказываний, логика предикатов охватывает все методы рассуждений, используемые в классических математических теориях, и, таким образом, все эти теории допускают формализацию на основе логики предикатов. Из полноты исчисления предикатов легко следует его непротиворечивость. Что касается вопроса о разрешимости исчисления предикатов – о существовании алгоритма, позволяющего по виду любой формулы определить, доказуема ли она, – он оказался настолько тонким, что для ответа на него потребовалось заложить основы нового раздела математической логики – теории алгоритмов. А дело в том, что само понятие алгоритма, которым мы интуитивно воспользовались при формулировке и доказательстве теоремы о разрешимости исчисления высказываний, вообще говоря, требует строго определения, которого до конца первой трети XX века просто не существовало. Здесь мы подходим к материалу последнему разделу нашего курса. Упражнение. Выведите из полноты исчисления предикатов его непротиворечивость. Упражнение. Почему из полноты исчисления предикатов нельзя вывести его разрешимость аналогично тому, как это было сделано выше для исчисления высказываний?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Элементы теории алгоритмов Термин алгоритм (или алгорифм) происходит от имени великого среднеазиатского ученого Мухаммеда аль-Хорезми (787 – ок. 850), трактат которого в латинской версии XII в. начинается словами «Dixit algorizm», т. е. «Сказал аль-Хорезми». Понятие, которое обозначает этот термин, стихийно формировалось с древнейших времен. Современный человек понимает под алгоритмом систему инструкций о выполнении некоторых действий для решения определенной задачи. Нас интересует случай, когда речь идет о целом классе аналогичных задач. Много таких алгоритмов изучается в курсе математики средней школы: алгоритм деления столбиком двух чисел в десятичной системе счисления, алгоритм Эвклида поиска наибольшего общего делителя двух целых чисел, алгоритм решения квадратного уравнения… До ХХ столетия математики довольствовались интуитивным представлением об алгоритмах. Но парадоксы, обнаруженные в основаниях математики, а также подозрения в том, что для некоторых задач принципиально не существует алгоритмов решения, привели к необходимости формулировок строгих математических определений понятий алгоритма и алгоритмической разрешимости. Эта ситуация аналогична сложившейся несколько раннее в математическом анализе, когда назрела необходимость уточнения таких математических понятий, как непрерывность, кривая и поверхность, длина, площадь и объем… Различные определения понятия алгоритма были выработаны математиками А. Тьюрингом, Э. Постом, Ж. Эрбаном, К. Гёделем, А. А. Марковым, А. Чёрчем. Первые такие определения были сформулированы в 1936-1937 гг. (и вскоре после этого, в 40-х гг., появились первые электронно-вычислительные машины). Впоследствии выяснилось, что все они равносильны между собой, т. е. определяется по сути одно и то же понятие. Один из подходов к определению понятия алгоритма – наиболее популярный и имеющий наглядную интерпретацию – изучается в этом разделе. Машины Тьюринга В 1937 г. английский математик определил и начал изучать понятие, впоследствии получившее название в честь своего создателя. Так же как и другие математические объекты (функция, интеграл, матрица…), машина Тьюринга позволяет давать абстрактное описание некоторых реальных процессов. Тьюринг предпринял попытку смоделировать действия человека, осуществляющего некоторую созидательную деятельность: перерабатывающего текст. Глядя в определенное место текста и находясь в определенном «умонастроении» (состоянии), человек вносит в текст изменения, проникается новым умонастроением и продолжает просмотр. Поэтому машину Тьюринга, действующую по этому принципу, оказывается удобным описать в виде автоматически работающего устройства (почему она и названа «машиной», являясь по сути абстрактным объектом).
Наглядно устройство
и работу машины Тьюринга можно описать
следующим образом. Имеется бесконечная
в обе стороны лента, разбитая на ячейки.
В каждой ячейке записана ровно одна
буква из внешнего
алфавита А,
при этом все ячейки ленты, кроме
конечного числа, содержат символ
пустой ячейки
|
следующему такту
работы, на котором выполняется команда
Теперь дадим точное определение Машина Тьюринга полностью определяется следующими данными:
а) внешним
алфавитом
б) внутренним
алфавитом
в) программой:
совокупностью выражений
Здесь
Как и ранее, будем
называть
словом
любую конечную последовательность
букв соответствующего алфавита. Будем
говорить, что непустое слово w
в алфавите
Пример.
Имеется машина Тьюринга с внешним
алфавитом
Определить, в
какое слово перерабатывает машина
слово
Определить, в
какое слово перерабатывает машина
слово
Решение.
Для наглядности обозначим
Схема означает,
что все ячейки справа и слева от
перерабатываемого слова пусты. Машина
находится в состоянии
На первом такте
работы согласно команде
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
меняет содержимого ячейки) и переходит к обозрению соседней справа ячейки. Изобразим схематически положение, в котором оказалась машина: ( рис. 2).
На втором такте
работы согласно команде
Создавшееся положение имеет вид: ( рис. 3).
Таким образом,
из данного начального положения слово
Задачи
1. Определите, в
какое слово перерабатывает машина
Тьюринга, описанная выше (в примере),
каждое из следующих слов, если она
находится в начальном состоянии
а)
б)
в)
г)
д)
е)
ж)
з)
2. Имеется машина
Тьюринга с внешним алфавитом
Определите, в какое слово перерабатывает машина Тьюринга каждое из следующих слов исходя из начального стандартного положения:
а)
б)
в)
г)
д)
е)
ж)
з)
Конструирование машин Тьюринга Значительно более сложной задачей, чем процесс применения данной машины Тьюринга к данным словам является конструирование такой машины, то есть программы, которая будет выполнять некоторую заданную операцию. Приведем пример такой программы (т.е. создадим машину Тьюринга).
Пример.
Построить машину Тьюринга, которая
из n
записанных подряд единиц оставляла
бы на ленте
Решение. В
качестве внешнего алфавита возьмем
двухэлементное множество
в процессе составления программы. Считаем, что машина начинает работать из стандартного начального
|
положения, т.е.
когда в состоянии
Начнем с того,
что сотрем правую единицу, если она
меняется, перейдем к обозрению следующей
ячейки и сотрем там единицу, если она
в этой ячейке записана. На каждом таком
переходе машина должна переходить в
новое внутреннее состояние, ибо в
противном случае будут стерты вообще
все единицы, записанные подряд. Вот
команды, осуществляющие описанные
действия:
Теперь остается
рассмотреть ситуации, когда на ленте
записана всего одна единица или не
записано ни одной. Если на ленте
записана всего одна единица, то после
первого шага (выполнив команду
Запишем составленную программу построенной машины Тьюринга в виде таблицы: (рис. 5).
В заключение
отметим, что созданная нами машина
Тьюринга может применяться не только
к словам алфавита
Задачи
Сконструируйте
машину Тьюринга с внешним алфавитом
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вычислимые по Тьюрингу функции Функция называется вычислимой по Тьюрингу, если существует машина Тьюринга, которая вычисляет значения функции для всех наборов значений аргументов, для которых функция определена, и работает бесконечно, если функция для данного набора аргументов не определена. Такая машина Тьюринга называется вычисляющей данную функцию.
Чтобы определение
вычислимой функции стало полным и
строгим, необходимо договориться о
некоторых условностях. Во-первых, речь
идет о функциях, заданных на множестве
натуральных чисел и принимающих
натуральные значения. Во-вторых, нужно
условиться, как записывать на ленте
машины Тьюринга значения
Здесь полезно ввести следующие обозначения:
Дополнительно
полагаем:
Теперь определения вычислимой по Тьюрингу функции и машины Тьюринга, вычисляющей данную функцию, становятся строгими.
Пример.
Машина Тьюринга, задаваемая таблицей
на стр. 44, вычисляет функцию
Тезис Тьюринга Одно из основных свойств алгоритма заключается в том, что он представляет собой единый способ, позволяющий для каждой задачи из некоторого бесконечного множества задач за конечное число шагов найти ее решение.
|
На понятие алгоритма можно взглянуть с такой точки зрения. Условие каждой задачи из данного множества можно закодировать словом некоторого алфавита, а решение задачи – другим словом того же алфавита. Таким образом, получим функцию, заданную на множестве слов выбранного алфавита и принимающую значения во множестве слов того же алфавита. Решить данную задачу – значит, найти значение построенной функции на слове, кодирующем задачу. А иметь алгоритм для решения всех задач данного класса – значит, иметь единый способ, позволяющий в конечное число шагов вычислять значения построенной функции для любых значений аргумента из ее области определения. При таком подходе алгоритмическая проблема становится проблемой вычисления значений функции, заданной в некотором алфавите. Для каких же функций возможно их вычисление с помощью машины Тьюринга? Поскольку оказывалось, что каждая функция, для вычисления значений которой существует какой-нибудь алгоритм, являлась вычислимой посредством некоторой машины, Тьюринг высказать гипотезу, называемую ныне основной гипотезой теории алгоритмов или тезисом Тьюринга: Для нахождения значений функции, заданной в некотором алфавите, тогда и только тогда существует какой-нибудь алгоритм, когда эта функция является вычислимой по Тьюрингу. Этот тезис означает, что строго математически определенное понятие вычислимой (по Тьюрингу) функции является, по существу, идеальной моделью взятого из опыта понятия алгоритма. Данный тезис в принципе не может быть доказан методами математики, поскольку само понятие алгоритма является интуитивным и не имеет математического определения. Тезис Тьюринга выдвинут исходя из опыта, и именно опыт подтверждает его состоятельность. Впрочем, не исключается принципиальная возможность того, что тезис Тьюринга будет опровергнут. Для этого должна быть указана функция, которая вычислима с помощью какого-нибудь алгоритма, но не вычислимая ни на какой машине Тьюринга. Дополнительные косвенные доводы в подтверждение гипотезы Тьюринга даются другими формализациями понятия алгоритма, поскольку они оказались равносильными определению машины Тьюринга.
Литература
В. И. Игошин. Задачи и упражнения по математической логике и теории алгоритмов. М.: Изд. Центр «Академия», 2005. |