- •Алгоритмы и сложность вычислений. Введение
- •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 алгоритму, осуществляемому подходящей машиной Тьюринга (соответственно Поста).
Как и тезис Маркова А. А. Нормализации алгоритмов, эта гипотеза не может быть доказана, её можно лишь подкреплять какими-либо разумными доводами. Наиболее важным из них является известная к настоящему времени теорема о том, что всякий НА осуществим на МТ.