- •Лекции по курсу “дискретные структуры”
- •Интуитивное определение алгоритма
- •Основные свойства алгоритмов
- •Примеры алгоритмов
- •Рекурсивные алгоритмы
- •Примитивно-рекурсивные функции
- •Частично-рекурсивные функции
- •Символьные конструкции
- •Определение, функционирование и способы задания машины Тьюринга
- •Композиция машины Тьюринга
- •Эквивалентность машин Тьюринга и частично- рекурсивных функций
- •Определение и функционирование нормального алгоритма
- •Примеры нормальных алгоритмов
-
Композиция машины Тьюринга
Вышеперечисленные способы описания МТ практически можно использовать только для несложных алгоритмов, т.к. для сложных описание становится слишком громоздким. Точно так же описание рекурсивных функций только с помощью простейших функций и операторов суперпозиции, примитивной рекурсии и минимизации было бы чрезвычайно громоздким. Поэтому примитивная или частичная рекурсивность функции доказывается с использованием других функций, примитивная или частичная рекурсивность которых уже доказана.
Аналогично этому, машины Тьюринга для сложных алгоритмов могут строиться с использованием уже имеющихся МТ. Такое построение называется композицией МТ.
Опишем 4 основных способа композиции МТ :
- последовательная композиция ( суперпозиция );
- параллельная композиция;
- разветвление
- цикл
Последовательной композицией машин и , вычисляющих словарные функции и в алфавите А , называется машина Т , вычисляющая функцию . Последовательная композиция изображается следующим образом :
T1 T2
и обозначается .
Последовательная композиция используется обычно для описания линейных участков алгоритмов.
Доказательство теоремы о возможности построения машины T , являющейся последовательной композицией двух произвольных машин и осуществляется путем отождествления заключительного состояния с начальным состоянием .
Пример 3. Построить алгоритм умножения 2*Х в унарном коде с использованием машины копирования , переводящей слово в слово * и машины сложения . Искомая МТ выглядит следующим образом :
Параллельной композицией машин и , вычисляющих словарные функции и в алфавитах А и В соответственно, называется машина Т , вычисляющая словарную функцию . Здесь знак используется для разделения слов при параллельной композиции МТ.
Т
и обозначается : .
Фактически параллельная композиция двух МТ получает на вход слово, состоящее из 2-х слов в разных алфавитах и на выходе выдает слово , состоящее из 2-х слов , т.е. представляет собой две одновременно и независимо работающие машины.
Для реализации параллельной композиции используется машина с двухэтажной лентой. Необходимость в этом вызвана тем, что вычисление и во времени происходит последовательно, и , вычисленная , например, первой, может потребовать больше места, чем , и испортить слово . Машина с двухэтажной лентой работает следующим образом : слово переписывается на второй этаж и стирается на первом, вычисляется на первом этаже, вычисляется на втором этаже и затем переписывается на первый этаж, возможно, со сдвигом.
Для реализации параллельной композиции n машин используется n–этажная лента.
Команда МТ с двухэтажной лентой записывается следующим образом :, где - буквы, записанные соответственно на первом и втором этажах.
Пример 4. Реализовать параллельную композицию машин и , вычисляющих функции в двоичной системе счисления и a + b в унарной системе.
Входное слово имеет вид : .
Опишем работу МТ системой команд :
Движение вправо до слова
Перезапись слова на второй этаж
Движение влево до слова
Прибавление 1 к числу Х.
Движение вправо к слову .
Перепись на 1-й этаж с одновременным сложением чисел a и b .
Стирание младшей 1 в слове .
В данном примере реализацию композиции можно было бы осуществить и с одноэтажной лентой, но он служит также для иллюстрации способа построения МТ с двухэтажной лентой.
На конкретных примерах входных данных самостоятельно покажите функционирование описанной МТ в виде последовательности конфигураций.
Разветвление в композиции МТ. Если заданы машины и , вычисляющие словарные функции и , и машина , вычисляющая некоторый предикат P() с восстановлением ( т.е. без стирания слова ) , то для реализации разветвления может быть построена машина Т , вычисляющая функцию :
Разветвление машин Тьюринга на схемах композиции изображается следующим образом :
=’и’
=’л’
и обозначается , Здесь - результат работы машины , принимающий значения «и» (истина) и «л» (ложь).
Машина Т представляет собой последовательную композицию машин и ; система команд машины имеет вид :
где - начальные состояния машин соответственно. Команды в фигурных скобках, добавленные к системе команд и , как раз и реализуют передачу управления одной из машин , по результату работы машины .
Цикл в композиции МТ реализуется по тем же принципам что и разветвление. Циклическим будем считать следующий алгоритм :
« пока P()=’ истина ’, выполнять », где - слово на ленте перед первым выполнением Т и после очередного выполнения Т.
Для реализации такого цикла используется следующая схема :
=’л’
=’и’
Машина выделяет из слова слово , которое является результатом работы всей композиции при =л.
Пример 5. Построить композицию МТ для реализации алгоритма умножения двух чисел x и y , заданных в унарном коде.
Для построения композиции вначале составим блок-схему алгоритма (рис 3.2.).
=’л’
=’и’
Рис 3.3 Композиция МТ, вычисляющая
Здесь - вычисляет с восстановлением предикат ;
- стирает все непустые символы на ленте ( Z=0);
- выполняет операцию сложения Z+X в унарном коде;
- уменьшает Y на 1 ( стирает самый левый символ 1);
- конечное состояние всей МТ.
Следует отметить, что во всех случаях в начале алгоритма нужно вставлять проверку исходных данных на особые значения ( чаще всего на 0 ), несоблюдение этого требования может привести к зацикливанию.
Композиция МТ может применяться для построения сложных алгоритмов. Возникает вопрос : всякий ли алгоритм можно реализовать в виде композиции МТ ? Ответ на этот вопрос дает Тезис Тьюринга , аналог тезиса Черча : всякий алгоритм может быть реализован с помощью машин Тьюринга и наоборот, всякий процесс, реализуемый машиной Тьюринга, является алгоритмом.
Тезис Тьюринга не является теоремой, доказать его невозможно, т.к. он содержит неформальное понятие « алгоритм ». Однако многолетняя математическая практика является надежным подтверждением этого тезиса : за 50 лет не было найдено алгоритма в интуитивном смысле, который нельзя было бы реализовать с помощью машин Тьюринга.