Тезис Черча и его значимость. Элементарные шаги. Вычисления с помощью современных вычислительных машин

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 16.04.2015
Размер файла 9,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

1. Тезис Черча и его значимость. Элементарные шаги

Тезис Черча важен для приложений математики в естествознание. При этом необходимо отметить, что тезис Черча не является математическим утверждением, так как в его формулировку входит понятие алгоритма в интуитивном смысле этого слова.

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

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

Обратимся, прежде всего, к вычислению, выполняемому человеком без использования вспомогательных средств. Слово "вычисление" следует понимать в широком смысле - не обязательно как оперирование с числами. Примерами "нечисловых вычислений" могут служить тождественные преобразования в элементарной алгебре или в логике предложений, нахождение производных от элементарных функций и т.п. Каждое вычисление состоит в последовательном преобразовании некоторого комплекса символов, записанных на бумаге или на доске. Принципиально ничего не изменится, если мы будем представлять себе, что всякое вычисление производится на одной достаточно большой доске (доска отличается от бумаги тем, что написанное на ней можно стирать и на освободившемся месте писать снова) и что доска разграфлена на клетки, причем в каждой клетке можно записать только один символ. Вычисление можно теперь рассматривать как последовательность шагов, на каждом из которых изменяется содержимое одной клетки; в общем случае это означает, что записанный в клетке символ стирается и на его месте записывается другой. Но от чего зависит, в какой клетке производится очередной шаг и что в ней на этом шаге записывается? Разумеется, не только от того, что было раньше записано в ней самой, но и от содержимого других клеток; например, при сложении "столбиком" записываемая в клетке цифра определяется цифрами, стоящими над ней. Следовательно, прежде чем изменить содержимое какой-либо клетки, нужно, вообще говоря, просмотреть некоторые другие клетки и запомнить какие-то сведения о том, что в них находится. Кроме того, следующий шаг может зависеть от предыдущих; поэтому после выполнения очередного шага бывает нужно что-то о нем запомнить.

Мы можем сказать теперь, что кроме "явных" шагов, на которых изменяется содержимое клеток, имеются еще "неявные", состоящие в просмотре клеток без изменения их содержимого. Но между этими двумя типами шагов нет принципиальной разницы, так как просмотр клетки можно представлять себе как "нулевое изменение": записываемый в клетке символ совпадает с находившимся там ранее. Таким образом, вычисление состоит из "элементарных шагов", на каждом из которых изменяется содержимое какой-то клетки, и о всяком шаге вычислитель должен, вообще говоря, что-то запомнить. В любой момент он держит в памяти какие-то сведения об уже выполненной части вычисления. После очередного шага к этим сведениям что-то добавляется и вместе с тем что-то из имевшихся ранее сведений может быть на данном шаге "использовано до конца" и за ненужностью забыто; естественно сказать, что при каждом шаге "состояние памяти" изменяется. Это "состояние памяти" можно представлять себе как набор сведений о некоторых уже выполненных шагах, причем для каждого шага указываются, скажем, координаты клетки, где он выполняется, характер изменения содержимого и "давность" этого шага по отношению к настоящему моменту. Все эти или любые другие сведения о выполненных шагах можно записать в виде некоторого слова в конечном алфавите (для данного вычисления фиксированном). Но объем памяти человека ограничен: существует константа (сейчас нам неважно, какая), ограничивающая сверху длины запоминаемых слов. Поэтому число возможных "состояний памяти" конечно.

Заметим теперь, что в отличие от "явных шагов", с которых мы начинали анализ процесса вычисления, каждый "элементарный шаг" зависит только от состояния памяти и от содержимого той клетки, где в этот шаг выполняется (результаты просмотра других клеток учитываются в состоянии памяти). На каждом "элементарном шаге" изменяются содержимое одной клетки и состояние памяти (разумеется, изменение состояния памяти также может быть нулевым). Кроме того, каждый предыдущий "элементарный шаг" должен включать в себя указание "адреса" клетки, где нужно произвести следующий. Не будет существенным ограничением считать то, что эта новая клетка, если она не совпадает со старой, расположена рядом с ней - ведь до любой клетки можно дойти "мелкими шажками", сдвигаясь каждый раз на одну клетку (вправо, влево, вверх или вниз).

Итак, мы расчленили процесс вычисления на "элементарные шаги", каждый из которых состоит в том, что "вычислитель", обозревая некоторую клетку и учитывая, каково состояние его памяти и что записано в обозреваемой клетке, производит три операции:

1) заменяет символ, записанный в обозреваемой клетке, другим символом;

2) переходит к обозрению одной из четырех соседних клеток или продолжает обозревать ту же клетку;

3) изменяет состояние памяти. Такой шаг может быть выполнен часто механически, без понимания его смысла, если имеется инструкция - при таком-то состоянии памяти и таком-то символе в обозреваемой клетке заменить этот символ на такой-то, сдвинуться в такую-то сторону (или не сдвигаться) и заменить состояние памяти на такое-то. Эта инструкция может быть, очевидно, записана в точно такой же форме, в какой записываются команды машины Тьюринга:

qa --> a'Cq',

где q и q' - состояния памяти, а' - символы, используемые при вычислении, С - принимает одно из значений "вправо", "влево", "вверх", "вниз", "на месте".

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

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

2. Вычисления с помощью современных вычислительных машин

тьюринг черч тождественный нечисловой

Что касается вычислений с помощью современных вычислительных машин с программным управлением, то и их принципиальные возможности, как известно, не превышают возможностей человека-вычислителя (единственное их преимущество - быстродействие). Кроме того, читатель, хотя бы немного знакомый с этими машинами, наверняка сразу заметил, что машины Тьюринга очень на них похожи, и построение машин Тьюринга для вычисления конкретных функций - это, в сущности, программирование (в отличие от программы для ЭВМ программа машины Тьюринга считается частью самой машины, но это вопрос терминологии). Главное отличие машин Тьюринга от реальных ЭВМ (если отвлечься от ограниченности объема памяти и времени работы последних) - крайняя простота элементарных шагов; эта простота позволяет легко строить "трансляторы" с языков реальных машин на язык машины Тьюринга. Можно сказать даже, что машина Тьюринга - это общая абстрактная схема вычислительной машины с программным управлением (но стоит подчеркнуть, что Тьюринг придумал свои машины за несколько лет до появления первых ЭВМ).

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

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

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

Тезисом Черча часто пользуются для сокращения доказательств теорем теории алгоритмов: если по ходу рассуждения нужно установить, что некоторая функция вычислима по Тьюрингу, довольствуются указанием "неформальной" вычислительной процедуры и построение машины Тьюринга опускают.

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

Размещено на Allbest.ru

...

Подобные документы

  • Простое вычислительное устройство машина Тьюринга и ее алгоритмические свойства. Тезис Черча–Тьюринга и моделирование машины Тьюринга (операции перезаписи ячеек, сравнения и перехода к другой соседней ячейке с учетом изменения состояния машины).

    контрольная работа [23,3 K], добавлен 24.04.2009

  • Сущность, понятие и назначение квантового комп’ютера; его использование для вычисления процессов квантовой природы. Физические системы, реализующие кубиты. Упрощённая схема вычисления на квантовом компьютере. Тезис Черча-Тьюринга. Алгоритм Deutsch-Josza.

    реферат [122,6 K], добавлен 10.11.2014

  • Более строгое описание алгоритма, чем общее или формализация понятия алгоритма. Три подхода к формализации: теория конечных и бесконечных автоматов, теория вычислимых (рекурсивных) функций и л-исчисление Черча. Воображаемые машины Поста и Тьюринга.

    реферат [370,0 K], добавлен 09.02.2009

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.

    курсовая работа [67,6 K], добавлен 20.11.2012

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

    контрольная работа [82,4 K], добавлен 05.12.2010

  • Методика разработки программы, предназначенной для разбора предложения с помощью многоленточной машины Тьюринга. Цели и назначение данной системы, основные требования, предъявляемые к ней. Организационно-исполнительные работы по содержанию системы.

    курсовая работа [386,8 K], добавлен 16.12.2010

  • Периодизация развития электронных вычислительных машин. Счетные машины Паскаля и Лейбница. Описаний эволюционного развития отечественных и зарубежных пяти поколений электронных вычислительных машин. Сущность внедрения виртуальных средств мультимедиа.

    доклад [23,6 K], добавлен 20.12.2008

  • Разработка MatLab-программы для анализа вычислительной и методической погрешностей целочисленного алгоритма. Теоретические основы таблично-алгоритмического метода. Проектирование подпрограммы вычисления элементарной функции на языке Ассемблер IBM PC.

    курсовая работа [296,9 K], добавлен 13.03.2013

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

    презентация [8,3 M], добавлен 11.10.2014

  • Написание программы для вычисления функции f(x), изображенной на графике, используя оператор if. Построение графика функции. Составление программы, вычисляющей сумму 101 из последовательно расположенных нечетных чисел. Нахождение корней системы уравнений.

    контрольная работа [694,4 K], добавлен 07.08.2013

  • Ранние приспособления и устройства для счета. Появление перфокарт, первые программируемые машины, настольные калькуляторы. Работы Джона Фон Неймана по теории вычислительных машин. История создания и развития, поколения электронно-вычислительных машин.

    реферат [37,7 K], добавлен 01.04.2014

  • Структуры вычислительных машин и систем. Фон-неймановская архитектура, перспективные направления исследований. Аналоговые вычислительные машины: наличие и функциональные возможности программного обеспечения. Совокупность свойств систем для пользователя.

    курсовая работа [797,5 K], добавлен 05.11.2011

  • Положения машины Тьюринга. Алгоритмически неразрешимые проблемы: "остановка", эквивалентность алгоритмов, тотальность. Свойства алгоритма: дискретность, детерминированность, результативность, массовость. Выбор структуры данных. Решение на языке Haskell.

    курсовая работа [957,6 K], добавлен 16.11.2013

  • Роль компьютеров и информационных технологий в жизни современно человека. Основные принципы функционирования современных персональных электронных вычислительных машин. Основные устройства компьютера, компоненты системного блока и их взаимодействие.

    реферат [29,2 K], добавлен 10.12.2012

  • Основные понятия квантовой механики, понятия и принципы квантовых вычислений. Возможность построения квантового компьютера, и его преимущества перед "классическим". Алгоритм Гровера - квантовый алгоритм быстрого поиска в неупорядоченной базе данных.

    реферат [241,0 K], добавлен 07.05.2009

  • Создание Бэббиджем "разностной" машины, которая должна была не просто выполнять арифметические действия, а проводить вычисления по программе, задающей определённую функцию. Этапы развития ЭВМ. Создание компьютеров на основе процессоров семейства Intel.

    реферат [38,3 K], добавлен 17.09.2013

  • Реализация алгоритмов вычисления математических объектов на конкретных вычислительных машинах. Числовые данные в практических задачах. Анализ математических моделей, связанных с применением вычислительных машин в различных областях научной деятельности.

    курсовая работа [369,3 K], добавлен 13.01.2018

  • Изучение методик языка Javascript по формализации и решению поставленной задачи, технологических приемов разработки программ на языке Javascript, HTML, CSS. Формально определение машины Тьюринга, распознающую язык. Ее программная модель, протоколы работы.

    курсовая работа [220,7 K], добавлен 03.03.2015

  • Историческое развитие средств вычислений. Структурные схемы вычислительных систем. Развитие элементной базы и развитие архитектуры самих систем. Основные классы вычислительных машин. Каналы передачи данных. Требования к составу периферийных устройств.

    реферат [48,7 K], добавлен 09.01.2011

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

    курсовая работа [121,5 K], добавлен 12.05.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.