Карта → событие

Кембридж 1936

Тьюринг: что такое «вычислить»

Математическая логика Дискретная математика Мечта Лейбница

Вопрос, оставшийся от ГильбертаДавид Гильбертнемецкий математик · 1862–1943Человек, сделавший Гёттинген столицей математики и задавший ей повестку на весь XX век — двадцатью тремя проблемами и одной программой, которую сам же и не смог спасти.

В 1928 году Гильберт и Аккерман сформулировали последнюю из своих задач об основаниях — Entscheidungsproblem, проблему разрешения: существует ли механическая процедура, которая по любой формуле логики первого порядка за конечное время отвечает, общезначима она или нет?

Через три года Гёдель в Кёнигсберге обрушил соседние ожидания программы Гильберта — полноту и доказуемость непротиворечивости. Но проблема разрешения устояла: она не про то, что доказуемо, а про то, что вычислимо.

Здесь есть асимметрия, из-за которой задача и оказалась трудной.

Чтобы ответить «да», достаточно предъявить процедуру: вот она, работает. Чтобы ответить «нет», надо высказаться обо всех мыслимых процедурах сразу — а для этого нужно знать, что такое процедура вообще. Двадцать три века математики прекрасно пользовались алгоритмами, ни разу не определив это слово.

Определение через человека

Алан Тьюринг в шестнадцать лет. Фотография на паспорт, 1928–1929
Алан Тьюринг в шестнадцать лет. Фотография на паспорт, 1928–1929Possibly Arthur Reginald Chaffin (1893-1954) · Public domain

Ход Алана Тьюринга, двадцатичетырёхлетнего выпускника Кингс-колледжа, состоял не в том, чтобы придумать список разрешённых операций. Он стал разбирать, что делает человек, когда считает.

В 1936 году слово computer означало именно человека — вычислителя, сидящего с карандашом и бумагой (такие конторы описаны в этой же линии на примере парижской мастерской Прони). Тьюринг заметил про него четыре вещи:

Отсюда механически получается устройство: бесконечная лента, разбитая на клетки, головка, видящая одну клетку, конечное множество состояний и таблица переходов «состояние + символ → новый символ, сдвиг, новое состояние». Всё.

Машина из трёх состояний: таблица и её прогонвидит 0видит 1A1 → B1 → HB0 → C1 → BC1 ← C1 ← Aнаписать · сдвинуться · перейти00000000000шаг 0состояние A00010100000шаг 3состояние C00111100000шаг 6состояние B00111100000шаг 9состояние B00111111000шаг 12состояние C00111111000шаг 14стопМашина остановилась на шаге 14, оставив на ленте 6 единиц.Всё «вычисление» — это конечная таблица, лента и головка. Тьюринг получил определение,разбирая не математику, а то, что делает человек с карандашом и бумагой
Таблица из шести строк и её прогон: машина сама себя и останавливаетMathLocus · построено для этого сайта

Вот полная машина, определяющая чётность числа палочек на ленте:

Состояние Видит Пишет Сдвиг Новое состояние
$q_0$ палочку палочку вправо $q_1$
$q_1$ палочку палочку вправо $q_0$
$q_0$ пусто «чётно» стоп
$q_1$ пусто «нечётно» стоп

Четыре строки. Важно, что это не модель человека-вычислителя в смысле упрощения, а разбор: Тьюринг доказывает, что ничего, кроме перечисленного, вычислитель делать и не может.

Диагональ

Дальше идёт рассуждение, которое стоит помнить целиком, — оно занимает пять строк.

Предположим, что существует программа $\mathrm{Ост}(p,x)$, которая по тексту программы $p$ и входу $x$ всегда за конечное время отвечает, остановится ли $p$ на $x$.

Построим программу $D$, которая получает на вход текст программы $p$ и делает так:

Спросим: что делает $D$, если подать ей на вход её собственный текст?

Значит, программы $\mathrm{Ост}$ не существует. $\blacksquare$

Это тот же приём, которым Кантор доказал несчётность отрезка, а РасселБертран Расселанглийский логик, философ и общественный деятель · 1872–1970Тремя строчками разрушил дело чужой жизни, десять лет чинил сломанное, а потом ушёл из математики в философию и политику — и получил Нобелевскую премию по литературе. выбил фундамент из-под Фреге: объект, определённый через самого себя с отрицанием.

Честная оговорка: у самого Тьюринга теорема сформулирована иначе — о машинах, печатающих бесконечную последовательность знаков («circle-free»), и неразрешимо там свойство быть такой машиной. Привычная формулировка про остановку и само название «проблема остановки» появились позже, у Мартина Дэвиса в 1958 году. Суть от переформулировки не изменилась.

Универсальная машина

И тут же, между делом, в той же статье — самое важное для будущего.

Раз машина задаётся конечной таблицей, её можно записать на ленту как данные. Тьюринг строит машину $U$, которая читает описание любой машины $M$ вместе с входом $x$ и делает ровно то, что сделала бы $M$:

$$U(\langle M\rangle,\ x) = M(x).$$

Это универсальная машина, и это чертёж компьютера: одно устройство, которое исполняет любую программу, потому что программа для него — такие же данные, как всё остальное. До первой машины с хранимой программой оставалось двенадцать лет, а до МЭСМ — пятнадцать. Фон Нейман статью Тьюринга знал.

Ответ Гильберту

Дальше остаётся техника. Работу машины можно записать формулой логики первого порядка так, что формула общезначима тогда и только тогда, когда машина останавливается. Значит, умей мы решать проблему разрешения — умели бы решать и проблему остановки. А её решать нельзя.

Entscheidungsproblem неразрешима. Последний пункт программы Гильберта закрыт, и закрыт отрицательно.

Тезис Чёрча — Тьюринга

В том же 1936 году то же самое сделали ещё дважды: Алонзо ЧёрчАлонзо Чёрчамериканский логик и математик · 1903–1995Ответил Гильберту «нет» за семь месяцев до Тьюринга — и сделал это на языке, где нет ни чисел, ни машин, а есть только функции и подстановка; из этого языка выросло функциональное программирование. в Принстоне через $\lambda$-исчисление, а ГёдельКурт Гёдельавстрийский и американский логик · 1906–1978Доказал, что в любой достаточно богатой формальной системе есть истинные утверждения, которые она не может доказать, — и тем закрыл программу Гильберта в двадцать пять лет. и Клини — через общерекурсивные функции. Три определения, построенные из совершенно разного материала, задали один и тот же класс функций.

Отсюда тезис Чёрча — Тьюринга: вычислимое в интуитивном смысле — это в точности вычислимое машиной Тьюринга. Это не теорема и теоремой быть не может: он приравнивает точное понятие к неточному. Но за девяносто лет ни одна новая модель вычислений — нормальные алгорифмы МарковаАндрей Андреевич Марковрусский математик · 1856–1922Придумал цепи зависимых событий, чтобы выиграть спор о том, обязательна ли независимость для закона больших чисел, — и проверил их на буквах «Евгения Онегина»., машины Поста, регистровые машины, любой язык программирования, квантовый компьютер — не вышла за этот класс. Квантовый компьютер меняет скорость, а не круг вычислимого.

Гёдель, обычно скупой на похвалы, писал, что только анализ Тьюринга сделал понятие вычислимости абсолютным: своё собственное определение через рекурсивные функции он считал условным, а тьюринговское — окончательным.

Что было дальше

Война. С 1939 года — Блетчли-парк и «Энигма». Там Тьюринг сделал ещё одну вещь, которую пришлось переоткрывать заново: байесовский вывод с накоплением веса свидетельства.

1950. Статья «Computing Machinery and Intelligence» в журнале Mind: вопрос «может ли машина мыслить» заменён на игру в имитацию — тест Тьюринга.

1952. «The Chemical Basis of Morphogenesis»: система реакция — диффузия, из которой сами собой возникают пятна и полосы. Человек, определивший, что такое вычисление, основал заодно математическую биологию.

1952, второе. Обвинение в «грубой непристойности» — Тьюринг заявил в полицию о краже и в ходе следствия рассказал о своих отношениях с мужчиной. Приговор: принудительная гормональная терапия, потеря допуска к секретным работам.

7 июня 1954 года он умер, сорока одного года, от отравления цианидом. Вердикт коронера — самоубийство; мать до конца считала, что это несчастный случай в домашней лаборатории.

Извинение британского правительства принесено в 2009 году, королевское помилование подписано в 2013-м, закон об аннулировании подобных приговоров («закон Тьюринга») принят в 2017-м. Главная премия по информатике носит его имя с 1966 года.

Задача. Докажите, что не существует программы, которая по тексту любой программы определяет, напечатает ли та когда-нибудь цифру 7.
(Ответ: пусть такая программа $S$ есть. По паре $(p,x)$ построим программу $R$, которая молча моделирует работу $p$ на входе $x$ и, если та остановилась, печатает 7 — и больше нигде семёрок не печатает. Тогда $S(R)$ отвечает ровно на вопрос, останавливается ли $p$ на $x$. Проблема остановки оказалась бы разрешима, а она неразрешима.)

Соседние точки. В линии логики: Чёрч (апрель 1936) → ТьюрингГенцен и Мальцев (тот же 1936-й), а дальше Новиков (1955) и Матиясевич (1970) разносят неразрешимость по математике. В дискретной: Кёниг (1931) → ТьюрингКанторович (1939). Отсюда же тянутся нити к Блетчли-парку и к Шеннону.

Открыть на карте