Читать книгу Информационный Завет. Основы. Футурологическое исследование - Роман Александрович Бабкин, Роман Александрович Дорошенко, Роман Александрович Брунер - Страница 14

Глава 2. Благая весть от математиков
Машина Тьюринга

Оглавление

Широкой публике гениальный математик Алан Тьюринг (Alan Turing) известен, вероятно, как человек, разгадавший шифр «Энигмы»21. Благодаря чему цивилизованный мир победил нацистов. Если даже это и правда, то не вся. Главная заслуга Алана Тьюринга перед человечеством состоит в другом. В своих работах он описал то, что сегодня мы называем компьютером.


В год, когда Ральф Хартли предложил свою формулу для вычисления меры информации, великий математик Давид Гильберт (David Hilbert) сформулировал проблему разрешения (Entscheidungsproblem). Её суть сводится к тому, что у любой задачи (которую можно выразить с помощью букв или цифр) должен существовать алгоритм (порядок шагов для её решения). Если алгоритма нет (никто не может придумать), то задача не является разрешимой. Однако это не означает, что задача не может быть решена в принципе11.


Поясним сказанное на примере. Возьмём два числа: 25 и 100. Каков их наибольший общий делитель? Пойдём не интуитивно, а строго математически. От большего числа будем отнимать меньшее. В результате трёх последовательных вычитаний получим число, которое соответствует наименьшему числу, выбранному изначально (25). Тогда можно сказать, что наибольший общий делитель для 100 и 25 есть число 25. Или: 25 – наибольшая общая мера выбранных чисел. Принято говорить, что 100 и 25 – соизмеримые величины.


Приведённый порядок вычисления – известный ещё со времен Евклида (Euclid) алгоритм для поиска наибольшего общего делителя. Но что, если существуют задачи, для которых алгоритм указать нельзя?


Вообразим два других числа. Очень больших. Длиною в миллиарды миллиардов знаков. Попробуем найти их наибольший общий делитель. (Представляю, как вы чертыхаетесь).


Ну, хорошо – предоставим это компьютеру. Пусть попотеет. Сможет ли он выполнить порученную работу? Допустим, что сможет. Возникает вопрос: сколько времени это займёт? Ответ: неизвестно.


Это так называемая «проблема остановки». Мы не знаем, как долго будет работать вычислитель (человек или машина) над решением некоторых (математически сложных) проблем. Другими словами, мы не можем для них предложить алгоритм – порядок шагов, которые нужно предпринять, чтобы получить точный ответ.


В 1931 году математик Курт Гёдель (Kurt Gödel) доказал, что во всякой сложной (с т. зр. логики и математики) умозрительной системе есть недоказуемые утверждения9. Т.е. они содержат такие величины, для которых невозможно придумать алгоритм. Это невычислимые величины.

При этом теория может быть верной. И величину можно вычислить в принципе. Но указать алгоритм вычисления нельзя. Способ Евклида для очень больших чисел работает плохо. Не исключено, что результата придётся ждать вечность.


Все эти математические ухищрения кажутся играми разума. Однако, критерий вычислимости (или, как говорят математики, алгоритмической неразрешимости) крайне важен в обычной жизни. Его существование позволяет метеорологам сохранять лицо и надёжно защищать персональные данные7.


Алан Тьюринг много размышлял над точным определением понятия «алгоритм». Ведь на проблемы, поставленные Гильбертом и Гёделем, можно посмотреть под другим углом6. Что такое вообще «алгоритм»? Можно ли его точно описать? И какие задачи можно решить с его помощью?


В 1936 году Тьюринг в работе «О вычислимых величинах применительно к проблеме разрешения» (On Computable Numbers, with an Application to the Entscheidungsproblem) описал универсальное вычислительное устройство (universal computing machine) 31. Подробная схема работы этого гипотетического устройства есть во многих книгах по математике13. Я расскажу о сути.


Допустим, вы располагаете какой-либо информацией. Её можно представить в форме последовательности знаков (букв или цифр). Вам нужно преобразовать информацию – что-то вычислить или сделать так, чтобы эту информацию было удобно передать. Тьюринг показал, что, получив от нас алгоритм (или, выражаясь современным языком, «компьютерную программу»), его устройство сделает эту работу.

Например, укажем универсальному вычислительному устройству, как переводить буквы английского алфавита в числа в двоичной системе счисления (напишем команды «Переведи a в 110 0001», «Переведи p в 111 0000» и т.д.). Т.е. дадим машине алгоритм. Если на входе у нас слово apples, то на выходе устройство выдаст: 110 0001_111 0000_111 0000_110 1100_110 0101_111 0011.


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


Однако «способны» не значит «можем».


То, что может, и есть «машина Тьюринга» (Turing machine). Абстрактная математическая модель, описывающая, тем не менее, реальный способ отделить вычислимость от невычислимости.


Позже был сформулирован тезис (принцип) Тьюринга-Чёрча (Church-Turing thesis or principle): всякая вычислимая функция вычислима машиной Тьюринга. Иначе говоря: если для определенной задачи можно создать алгоритм, по которому машина Тьюринга будет работать, то задача выполнима17.


Последствия конструирования схемы универсального компьютера были огромны. Математики получили точное представление об алгоритме как об универсальном способе преобразования информации. Инженеры могли перейти к созданию практических устройств, способных решить любую вычислительную задачу. А машины, пользуясь единым языком, могли бы не только обрабатывать данные, но и «общаться» между собой. Т.е. обмениваться информацией.

Информационный Завет. Основы. Футурологическое исследование

Подняться наверх