Читаем Размышления о думающих машинах. Тьюринг. Компьютерное исчисление полностью

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

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

Программа остановка (кандидат, вход)

if input = вход и кандидат -> остановится

then остановка (кандидат, вход) = истина

if input = вxoд и кандидат -> не остановится

then остановка (кандидат, вход) = ложь;

Представим, что, используя программу остановка (кандидат, вход), мы пишем другую программу, которая называется парадокс (вход):

программа парадокс (вход)

if остановка (кандидат, вход) = ложь

then return истина

else return ложь

Сделаем в наших рассуждениях еще один шаг и вслед за Тьюрингом обозначим через Р программу парадокс. Далее выполним программу остановка (Р, Р). Если программа, вложенная в главную, вернет ответ «Ложь», значит, программа Р не останавливается, получив в качестве входных данных программу, идентичную себе самой, тогда основная программа парадокс (Р), вернув значение « Истина», должна остановиться, но это невозможно и, значит, ложно.

Напротив, если программа остановка (Р, Р) вернет ответ «Истина», так как программа Р остановит свое выполнение, получив в качестве входных данных величину Р, тогда программа парадокс Р не остановится, возвращая значение «Ложь». Принимая во внимание все противоречия, Тьюринг сделал вывод, что программа остановка (или halt) не позволяет оценить Р. Другими словами, проблема остановки неразрешима.

Хотя и не существует программы, которая служила бы универсальным инструментом для удовлетворительного решения проблемы остановки, ученые решили, что можно написать программу, дающую ответы на отдельные случаи, то есть, говоря современным языком, частные программы. Этот класс программ был назван программами PHS (partial halting solver), или программами, частично решающими проблему остановки. Однако со временем ситуация была сочтена такой же неразрешимой, как и с проблемой остановки. Вновь используя язык BASIC-256, напишем программу, которая получает на вход программу Р$. Задача состоит в получении на выходе (output) сообщения о том, останавливается ли выполнение программы Р$:

input Р$

if Р$ = "halt" then

print «программа останавливается ДА»

else

print «программа останавливается НЕТ»

endif

end

Мы приходим к поистине разочаровывающему выводу: нет уверенности, что такая простая с виду программа вернет пользователю корректный результат. Удивительно, что еще до появления компьютера и программного обеспечения Тьюринг смог прийти к выводу, что не существует механической процедуры, то есть машины Тьюринга или современной компьютерной программы, которая могла бы определить, остановится ли другая программа (или машина Тьюринга), получив на вход определенные данные. Этот вывод Тьюринг получил с помощью собственного изобретения — машины Тьюринга. Это еще раз доказывает гениальность ученого, который за свою короткую жизнь смог стать величайшим человеком XX века.

БЕСКОНЕЧНОСТЬ МАШИН ТЬЮРИНГА

Современный компьютер можно считать машиной Тьюринга, имеющей внутри себя еще одну такую машину. Для пояснения этой идеи приведем в пример один из первых компьютеров, ENIAC (Electronic Numerical Integrator And Computer). Этот мастодонт начала компьютерной эры может быть представлен как машина Тьюринга с тремя лентами: одна лента — для считывания входных данных, другая — для записи и возвращения результата, а третья выполняла роль памяти.

Современные компьютеры

Перейти на страницу:

Похожие книги

Прикладные аспекты аварийных выбросов в атмосферу
Прикладные аспекты аварийных выбросов в атмосферу

Книга посвящена проблемам загрязнения окружающей среды при авариях промышленных предприятий и объектов разного профиля и имеет, в основном, обзорный справочный характер.Изучается динамика аварийных турбулентных выбросов при наличии атмосферной диффузии, характер расширения турбулентных струйных потоков, их сопротивление в сносящем ветре, эволюция выбросов в реальной атмосфере при наличии инверсионных задерживающих слоев.Классифицируются и анализируются возможные аварии с выбросами в атмосферу загрязняющих и токсичных веществ в газообразной, жидкой или твердой фазах, приводятся факторы аварийных рисков.Рассмотрены аварии, связанные с выбросами токсикантов в атмосферу, описаны математические модели аварийных выбросов. Показано, что все многообразие антропогенных источников загрязнения атмосферного воздуха при авариях условно может быть разбито на отдельные классы по типу возникших выбросов и характеру движения их вещества. В качестве источников загрязнений рассмотрены пожары, взрывы и токсичные выбросы. Эти источники в зависимости от специфики подачи рабочего тела в окружающее пространство формируют атмосферные выбросы в виде выпадающих на поверхность земли твердых или жидких частиц, струй, терминов и клубов, разлитий, испарительных объемов и тепловых колонок. Рассмотрены экологические опасности выбросов при авариях и в быту.Книга содержит большой иллюстративный материал в виде таблиц, графиков, рисунков и фотографий, который помогает читателю разобраться в обсуждаемых вопросах. Она адресована широкому кругу людей, чей род деятельности связан преимущественно с природоохранной тематикой: инженерам, научным работникам, учащимся и всем тем, кто интересуется экологической и природозащитной тематикой.

Вадим Иванович Романов

Математика / Экология / Прочая справочная литература / Образование и наука / Словари и Энциклопедии
Значимые фигуры. Жизнь и открытия великих математиков
Значимые фигуры. Жизнь и открытия великих математиков

Несмотря на загадочное происхождение отдельных своих элементов, математика не рождается в вакууме: ее создают люди. Некоторые из этих людей демонстрируют поразительную оригинальность и ясность ума. Именно им мы обязаны великими прорывными открытиями, именно их называем пионерами, первопроходцами, значимыми фигурами математики. Иэн Стюарт описывает открытия и раскрывает перед нами судьбы 25 величайших математиков в истории – от Архимеда до Уильяма Тёрстона. Каждый из этих потрясающих людей из разных уголков мира внес решающий вклад в развитие своей области математики. Эти живые рассказы, увлекательные каждый в отдельности, складываются в захватывающую историю развития математики.

Иэн Стюарт , Йэн Стюарт

Биографии и Мемуары / Математика / Образование и наука