
- •Алгоритмы и сложность вычислений. Введение
- •49. Определение нормальных алгоритмов Маркова.
- •§ 1. Нормальные алгоритмы
- •50. Определение Машины Тьюринга.
- •§ 2. Машины тьюринга
- •51. Определение частично рекурсивных функций. Основные функции.
- •1. Матрицы Адамара и их свойства.
- •2. Матрицы Силъвестра-Адамара их свойства.
- •3. Преобразования Уолша-Адамара булевых функций.
- •4. Преобразование Фурье булевой функции.
- •5. Схема Грина быстрых преобразований Уолша и Фурье.
- •6. Критерий нелинейности булевых функций.
- •7. Расстояние до линейных структур.
- •8. Порядок нелинейности.
- •9. Совершенно нелинейные функции.
- •10. Расстояние до аффинных функций и корреляция.
- •11. Булевы функции от нечетного числа аргументов.
50. Определение Машины Тьюринга.
§ 2. Машины тьюринга
В 1936году независимо одна от другой появились работы английского математика А. Тьюринга и американского математика Э. Поста, в которых были даны уточнения понятия алгоритма или "эффективной процедуры" для решения массовых задач в терминах некоторых идеализированных вычислительных машин, называемых теперь машинами Тьюринга или Тьюринга-Поста. Устройства этих машин у А. Тьюринга и Э. Поста отличаются лишь несущественными деталями, а именно, процедура вычислений у Э. Поста раздроблена на более мелкие операции, чем у А. Тьюринга. В настоящее время в литературе описано много различных модификаций таких идеализированных машин. Мы далее рассмотрим одну из них, называя ее машиной Тьюринга (сокращенноМТ).
МашинаТьюринга,
как и нормальный алгоритм, предназначается
для переработки слов в некотором конечном
алфавите
,называемом внешним алфавитом машины.
Слова в алфавитеАзаписываются на
лентуМТ, разбитую на ячейки, так,
что в каждую ячейку записывается
какая-либо одна буква алфавитаА.
Сама лента называется внешней памятьюМТ. Предполагается, что лента в
процессе работы может наращиваться,
т.е. ленту можно считать потенциально
бесконечной в обе стороны. Все вновь
пристраиваемые ячейки заполняются
символом
,который называется пустым символом.
Переработка слов, записываемых на ленту МТ, осуществляется в дискретном времени по тактам, занумерованным натуральными числами, под действием так называемого управляющего устройства. Последнее в каждый такт может находиться в одном из конечного множества состояний
,
называемых внутренним состоянием.
Управляющее
устройство связано с лентой так называемой
считывающей головкой, которая в каждый
такт находится против одной из ячеек
ленты (обозревает одну ячейку). По команде
управляющего блока, зависящей от
внутреннего состояния и от содержимого
обозреваемой ячейки, машина или
останавливается или переходит в новое
состояние, в последнем случае головка
заменяет символ обозреваемой ячейки
новым символом из А и остаётся против
той же ячейки, или сдвигается на одну
ячейку влево. При этом если головка
обозревала последнюю (правую) ячейку
ленты и ей дана команда сдвинуться
вправо (влево), то к ленте справа (слева)
автоматически добавляется новая ячейка
с буквой
.
Оказавшись в состоянии
,МТпрекращает работу (
называют стоп-состоянием).
Из приведённого описания видно, что положение МТв каждый момент времени полностью определяется следующими параметрами:
словом, записанным на ленте;
внутренним состоянием;
номером обозреваемой ячейки.
Если в некотором
такте работы МТна её ленте записано
слово
,
управляющее устройство находится в
состоянии
и головка обозревает ячейку с номером
,
то всю эту информацию можно записать
одним, так называемым машинным, словом
(символ внутреннего
состояния записывается перед буквой,
записанной в обозреваемой ячейке). При
переходе к новому такту машинное слово
меняется согласно системе команд МТ.
Изменения зависят от состояния
МТи от содержимого
обозреваемой ячейки. Поэтому каждая
команда записывается в виде формулы
,
(1)
где
- новое состояние,
- буква, на которую заменяется
(не исключается случай
),
- одна из буквH,R,L, которые означают
соответственно сохранение положения
головки, сдвиг её на одну ячейку вправо,
сдвиг на одну ячейку влево. Слова
,
называются соответственно левой и
правой частями команды.
Подчеркнём, что
система команд МТудовлетворяет
следующему единственному условию
детерминизма: каждое слово вида
(если
не стоп-состояние) является левой частью
ровно одной команды. Это условие позволяет
всю систему командМТзаписать в
виде таблицы.
Таблица 1.
Q A |
|
|
…
|
|
…
|
|
|
… |
… |
… |
… |
… |
… |
. … |
|
|
|
|
|
|
|
… |
… |
… |
|
… |
… |
…… |
|
|
|
|
|
|
|
… |
… |
… |
… |
… |
… |
Заметим, что в
левых частях команд, а потому и во входной
строке таблицы, состояние
не участвует, поскольку в состоянии
МТпрекращает работу.
Опишем теперь
процесс преобразования слов в алфавите
A описанной вышеМТ
с системой командS.
В начале работы
с МТустанавливается в состояние
,
на её ленту записывается исходное слово
и считывающая головка помещается против
1-й (самой левой) ячейки (т.е. обозревает
1-ю букву слова
).
Если
,
то вся информация о начале работы
запишется машинным словом
.
Теперь, как и при
описании работы НА, сопоставим слову
конечную или бесконечную последовательность
машинных слов
(2)
Для этого находим в S команду вида
и в зависимости
от значения
,
равногоH,RилиL, в качестве
берём соответственно слово
Если
,
то в качестве искомой возьмём двухэлементную
последовательность
.
В противном случае, как и выше, построим
слово
и т.д. Продолжая этот процесс, мы и получим
искомую последовательность (2).
Последовательность
слов в алфавите A,
полученных удалением из слов
символов-состояний, назовём путём
переработки слова
.
Если последовательность
(2) конечна и оканчивается словом
то говорят, что машина
применима к слову
и перерабатывает его в слово
.
Этот факт записывают в виде
.
Если же
последовательность (2) бесконечна, то
говорят, что машина не применима к слову
.
Таким образом, любая МТосуществляет частичное отображение множества слов в алфавитеA в себя.
Приведем пример
МТ, осуществляющей удвоение
натуральных чисел. Как и при построенииНА, натуральное число
будем изображать в виде последовательности
вертикальных чёрточек. В качестве
внешнего алфавита возьмем множество
,
где 0 – пустой символ, а в качестве
внутреннего –
.
Систему команд зададим таблицей:
Таблица 2.
Q A |
|
|
| |||||||
|
|
|
|
| ||||||
|
|
|
| |||||||
|
|
|
|
0 |
|
|
|
| |
|
|
|
|
|
|
|
В начале работы
на ленту записывается слово
,
а вся информация о начале работы
определится машинным словом
.
В качестве упражнения
постройте последовательность машинных
слов, начинающуюся словом
.
Из сравнения определений НА и МТ видно, что в последний процесс преобразования слов разбит на более мелкие операции – них в каждый такт заменяется не более одной буквы слова. Кроме того, в них есть и другое сильное ограничение – расширение слова может происходить только за счёт приписывания новых символов слева или справа от слова (т.е. в начале его или конце). В связи с этим строить НА для решения задач, как правило проще, чем МТ. Так, задачу удвоения натурального числа можно решить НА со схемой
,
,
.
В нем всего лишь три команды вместо 9 в построенной выше машине, да и число тактов работы по удвоению слова существенно меньше. На первый взгляд может казаться, что и в принципе МТимеют меньше возможностей по сравнению сНА. Однако А. Тьюрингом и Э. Постом была выдвинута гипотеза (или тезис) о том, чтолюбой алгоритм над алфавитом A эквивалентен относительно A алгоритму, осуществляемому подходящей машиной Тьюринга (соответственно Поста).
Как и тезис Маркова А. А. Нормализации алгоритмов, эта гипотеза не может быть доказана, её можно лишь подкреплять какими-либо разумными доводами. Наиболее важным из них является известная к настоящему времени теорема о том, что всякий НА осуществим на МТ.