Машина с бесконечной памятью
Вначале остановимся на модели Тьюринга [ ]Интеллектуальной подоплекой, стимулировавшей появление работы Тьюринга являются,по-видимому, проблема поиска алгоритма - эффективной процедуры решения математической задачи. Можно ли описать все в принципе описываемые процессы, решить все математические задачи? И Тьюринг дает несколько неожиданный ответ на этот вопрос: да, эта процедура может быть выполнена с помощью некоторой очень простой машины. Простота машины гарантирует отсутствие у нее «инициативности» или «разумности» и тогда описание является полным и процедура является «эффективной». Следуя Тьюрингу можно сделать радикальное предположение, что любая процедура, которую было бы «естественно» назвать эффективной, фактически может быть реализована с помощью машины. Здесь уместно подчеркнуть, что рассматриваемые вопросы носят субъективный характер и при их обсуждении можно лишь убеждать, приводя некоторые доводы.. Здесь ничего нельзя доказать, однако, как бы то ни было, эта теория дает впечатляющие результаты. Например, попытка дать определение «эффективной» процедуры наталкивается на различные трудности- слишком уж сложным. является это интуитивное понятие. Можно, следуя Минскому М., дать следующее определение: эффективная процедура есть множество сообщаемых нам время от времени правил, точно регламентирующих наше поведение. Чтобы понимание правил было единообразным и не допускало «смыслового люфта», то наряду с формулировками правил, уместно задать конструкцию устройства, интерпретирующего эти правила. Чтобы не создавать эту конструкцию заново для каждого последующего вычисления, желательно иметь некоторое единообразное семейство устройств, выполняющих предписания. При этом наиболее подходящей формулировкой может служить следующая, в которой мы устанавливаем:1) язык, на котом описывается множество правил поведения. и2) одну-единственную машину, которая может интерпретировать утверждения, сделанные на этом языке и, таким образом, выполнять шаг за шагом каждый точно определенный процесс.Трудно ожидать, что найдется одно-единственное устройство, способное интерпретировать и выполнять все правила, встречающиеся во всех эффективных процедурах. Казалось бы, что необходим целый ряд все более сложных машин решающих все более и более сложные задачи.Однако, как это ни покажется невероятным, но здесь нет проблем! Можно построить одну машину, конструкция которой удивительно проста и не зависит от сложности решаемой задачи. Иначе говоря, оказывается возможным предложить язык для описания правил и простую «универсальную» интерпретирующую машину, которая может иметь дело со всеми эффективными процедурами. Основная идея состоит в замене качественного увеличения сложности машины простым количественным увеличением ее объема памяти. Тьюринг обнаружил, что подобные машины могут производить сложные вычисления. Им был сформулирован так называемый тезис Тьюринга: любой процесс, который было бы естественно назвать эффективной процедурой, может быть реализован машиной Тьюринга. Когда понимаешь, как на самом деле примитивны машины Тьюринга, то остается лишь удивляться смелости тезиса. Однако, практика нескольких десятилетий, прошедших после появления этой работы, подтверждает справедливость точки зрения Тьюринга Для любой процедуры, которую математики соглашались назвать «эффективной», тем или иным способом была показана ее эквивалентность процедуре, реализуемой машиной Тьюринга. Рассмотрим подробно устройство и работу машины Тьюринга. Машина Тьюринга (МТ) представляет собой автомат с конечным числом состояний, соединенный с внешней памятью, которая конструктивно выполнена в виде бесконечной ленты. Последняя разбита на деления – ячейки. Автомат связан с лентой посредством головки, которая несет три функции: может считывать содержимое ячейки и записывать в ячейку некоторый символ. Кроме того, головка может сдвигаться влево, вправо или оставаться на месте в процессе выполнения очередного шага вычислений.



























или 2х3=6, где ответ представлен серией символов Х справа от символа А. И в этом случае мы имеем дело с вычислениями, которые не могут быть выполнены машиной с конечным числом состояний.
Задача Предложите конструкцию МТ для 1) вычисления квадрата числа n, где n представляется в виде
1) Вычисления суммы двух двоичных чисел представимых в виде
Предполагается, что они имеют одинаковое количество цифр.
Здесь означает, что ячейка содержит 1 или 0.
2) Определения, является ли число простым (очень сложно!)
Упражнение. Опишите поведение машины, диаграмма переходов которой изображена на следующем рисунке. Предполагается, что машина начала работу на пустой ленте.
Задача. Постройте МТ для вычисления:
1) произведения двух двоичных чисел mи n;
2) степенной функции .
Рассмотренные примеры использования МТ имели своей целью показать, что эти устройства могут делать многое из того, что не могут делать машины с конечным числом состояний и что они могут делать необычайно сложные вещи, несмотря на сравнительно простые структуры. С другой стороны можно было наблюдать характерную для МТ неэффективность, связанную с многочисленными повторяющимися проходами головки вдоль длинных кусков ленты даже при выполнении самой элементарной операции перемещения временного маркера.
Никто всерьез и не предполагал использовать структуру, свойственную МТ для проведения практических вычислений. Однако, несмотря на малое быстродействие МТ далеко не всегда используют емкость ленточной памяти неэффективно. Например, можно построить машину, определяющую, является ли n-разрядное двоичное число простым, используя менее чем n дополнительных ячеек ленты. Следует также отметить, что высокое быстродействие обычных ЭВМ основано на произвольной выборке данных из памяти, которая только внешне позволяет обойти задачу последовательного поиска вдоль ленты. Можно представить МТ с трехмерной лентой и привести доводы в пользу того, что МТ такого типа в общем имеют не меньшее быстродействие, чем другие типы машин с конечным числом состояний и дополнительной памятью.
Оказывается, даже самые сложные из возможных вычислительных процедур, можно выполнить с помощью МТ, фиксированные структуры которых содержат всего лишь десятки элементов. Можно представить себе межзвездного робота, к надежности которого предъявляются очень высокие требования, но который выполняет вычисления очень медленно, потому что запас времени у него – сама вечность.
Существуют модификации МТ, например многоленточные МТ, которые по эффективности ближе к обычным вычислительным машинам. Рассматривать эти модели мы не будем.
Теорема Беннета в приложениях
Напомним формулировку :Теорема Беннета
Ч. Беннет в 1971 г. доказал возможность построения обратимой машины Тьюринга, т.е. такой, которая не теряет информации и, следовательно, в процессе работы может затрачивать любое заранее заданное малое количество энергии
можно доказать, что если имеется обычная машина Тьюринга, то можно построить обратимую трехленточную машину Тьюринга, которая не хуже обычной при любых стандартных входных данных и в конце вычислений даже превосходит ее, оставляя только эти входные данные и требуемые выходные. Обратимая машина производит вычисления в три стадии, при этом третья стадия служит для описания первой. Это утверждение носит название теоремы Ч.Беннета.