Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория алгоритмов / из Интернета / теория алгоритмов (учебник 87 стр).pdf
Скачиваний:
191
Добавлен:
27.05.2015
Размер:
771.07 Кб
Скачать

начальном, так и в заключительном состоянии обозревается первая левая ячейка с нулем.

Пример 2. Построить две машины «левый сдвиг» Би «правый сдвиг» Б+. Первая из начального стандартного положения перерабатывает слово 01x0 в то же самое слово и останавливается, обозревая самую левую ячейку с нулем. Вторая машина из начального состояния, в котором обозревается левая ячейка с нулем, слово 01x0 перерабатывает в то же самое слово и останавливается, обозревая самую правую ячейку с нулем.

Программа машины Б: q10→ q2 0Л; q21→ q21 Л; q20→ q00. Ясно, что программа машины Б+ получается из программы пре-

дыдущей машины заменой символа «Л» символом «П».

В задаче № 12.27 Задачника требуется построить машину (называемую «транспозицией» и обозначаемую В), осуществляющуюпереход 01x q1 01y 0

=> 01y q0 01x 0.

II.5 Композиция машин Тьюринга

Определение 1. Пусть заданы машины Тьюринга O1 и О2, имеющие общий внешний алфавит 0, а1, ..., ат} и алфавиты внутренних состояний {q0 , q1 , …, qn} и {q0, q1, q2 ,…, qt} соответственно. Композицией (или произведением)

машины O1 на машину О2 называется новая машина О с тем же внешним алфавитом 0, а1, ..., ат}, внутренним алфавитом {q0 , q1 , …, qn, qn+1, qn+2 ,…, qn+t} и программой, получающейся следующим образом. Во всех командах из O1, содержащих символ остановки q0 заменяем последний на qn+1. Все остальные символы в командах из O1 остаются неизменными. В командах из O2 символ q0 оставляем неизменным, а все остальные состояния qi (i = 1, ..., t) заменяем соответственно на qn+i. Совокупность всех так полученных команд образует программу машины-композиции O.

Введенное понятие является удобным инструментом для конструирования машин Тьюринга. Покажем это на примере.

55

q01xm 01x1 0...01xm1 01xm+1 0...01xn 0 .
01xm :

Пример 1. Сконструируем машины Тьюринга, правильно вычисляющие функции-проекторы Inm1, х2, ..., хп) = хт (1 ≤ т ≤ п).

Рассмотрим сначала конкретный случай п = 3, т = 2, т.е. функцию I321,

х2, х3)=x2 Мы должны переработать слово q1 01x1 01x2 01x3 0 в слово q0 01x2 0 .

Будем применять к начальной конфигурации последовательно сконструированные ранее машины Тьюринга Б+, В, Б, О: q1 01x1 01x2 01x3 0

Б+: 01x1 q01x2 01x3 0

В: 01x2 q01x1 01x3 0

Б+: 01x2 01x1 q01x3 0

О : 01x2 01x1 q00x3 0

Б: 01x2 q01x1 00x3 0

О : 01x2 q00x1 00x3 0

Б: q01x2 00x1 00x3 0

Таким образом, функция I321, х2, х3)=x2 вычисляется следующей композицией машин: Б+ВБ+ОБОБ = Б+ВБ+(ОБ)2.

Проверьте самостоятельно, что функция 1221, х2) = х2 вычисляется композицией Б+ВОБ.

Теперь мы можем представить себе алгоритм построения композиции машин Б+, В, Б, О для вычисления любой функции вида Inm1, х2, ..., хп) = хт. С помощью правого сдвига Б+, применив его т -1 раз, нужно сначала достичь массива

+)m-1: 01x1 0...q01xm 0...01xn 0 .

Затем, двигаясь влево, транспонировать (с помощью В) массив 01xm с

каждым соседним слева массивом, пока массив 01xm не выйдет на первое место: (В • Б)m-1:

Теперь нужно дойти до крайнего правого массива с помощью (n-1)- кратного применения правого сдвига Б+:

56

+)n-1: 01xm 01x1 0...01xm1 01xm+1 0...q01xn 0 .

Наконец, нужно стирать последовательно справа налево все массивы единиц, кроме первого:

(ОБ)n-1: q01xm 0x1 0...00xm1 00xm+1 0...00xn 0 .

Итак, данную функцию (правильно) вычисляет следующая машина Тьюринга: (Б+)m-1(В • Б)m-1+)n-1(ОБ)n-1.

При п = 3, т = 2 эта машина имеет вид: Б+ВБ+)2(ОБ)2 = Б+ВБ+(ОБ)2,

т.е. совпадает с построенной выше машиной. При п = 2, т = 2 эта машина имеет вид: Б+(ВБ+(ОБ) = Б+ВОБ, т.е. также совпадает с соответствующей рассмотренной выше машиной Тьюринга.

Взадаче № 12.29 Задачника подробно разобрана работа машины Тьюринга, являющейся композицией машин ВБВ, рассмотренных ранее. Эта машина называется «циклический сдвиг» и обозначается Ц. Слово 01x 01y q101z0 она переводит в слово 01z q001x 01y0. При этом нужно помнить, что машины в композиции ВБВ работают в очередности справа налево: сначала правая В, затем Би, наконец, левая В.

Взадаче № 17.30 Задачника предлагается проверить, что машина Тьюринга, являющаяся следующей композицией К2 = Б+ГВБ+ ВГВБ+ВББ ВБ+ (называется «копирование»), перерабатывает слово q101x01y в слово 01x01yq001x01y. (Г — машина удвоения.)

57

II.6 Тезис Тьюринга (основная гипотеза теории алгоритмов)

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

На понятие алгоритма можно взглянуть и с несколько иной точки зрения. Каждую задачу из бесконечного множества задач можно выразить (закодировать) некоторым словом некоторого алфавита, а решение задачи — каким-то другим словом того же алфавита. В результате получим функцию, заданную на некотором подмножестве множества всех слов выбранного алфавита и принимающую значения в множестве всех слов того же алфавита. Решить какую-либо задачу — значит найти значение этой функции на слове, кодирующем данную задачу. А иметь алгоритм для решения всех задач данного класса — значит иметь единый способ, позволяющий в конечное число шагов «вычислять» значения построенной функции для любых значений аргумента из ее области определения. Таким образом, алгоритмическая проблема — по существу, проблема о вычислении значений функции, заданной в некотором алфавите.

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

58

называемую основной гипотезой теории алгоритмов, или тезисом

Тьюринга:

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

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

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

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

59