
- •Глава 1
- •1.1. Понятие абстрактного автомата
- •1.2. Преобразование абстрактных автоматов
- •1.3. Соединение (композиция) автоматов
- •1.4. Тестирование абстрактных автоматов
- •2. Начальные языки описания абстрактных автоматов
- •2.1. Язык Граф-Схем Алгоритмов
- •2.2. Язык регулярных выражений
- •2.3. Формальные грамматики и языки
- •2.4. Автоматы и грамматики [ 7 ]
- •2.5. Машина тьюринга [ 5, 8 ]
- •3. Структурный синтез автоматов и кодирование информации
- •3. 3. ПредставЛение символьной информации
- •4.1 Машинное изображение чисел
- •4.2. Выполнение арифметических и логических операций
- •4.3. Микропрограммирование
- •5 Математический аппарат синтеза комбинационных автоматов
- •5.1 Элементная база построения комбинационных автоматов
- •5.2. Переключательные функции (логика высказываний)
- •7. Структурный синтез автоматов с памятью, асинхронные автоматы и сети петри
- •7.1. Канонический метод синтеза автоматов с памятью
- •7.3 Моделирование дискретных асинхронных процессов и сети Петри
- •Свойства сетей Петри
2.5. Машина тьюринга [ 5, 8 ]
Универсальный способ задания алфавитного преобразования – алгоритмический, т.е. основанный на понятии алгоритма [12] . Под алгоритмом обычно понимается точное предписание, определяющее процесс переработки исходных данных в требуемый результат.
При этом требуется : 1) чтобы исходные данные были заданы в конкретном алфавите и могли принимать значения из некоторого множества, т.е. носили массовый характер; 2) чтобы процесс переработки данных состоял из отдельных дискретных шагов и был детерминированным; 3) чтобы были чётко указаны условия остановки процесса и что следует считать результатом процесса.
Таким образом, любой алгоритм характеризуется массовостью, детерминированностью и результативностью. Для решения любой массовой задачи требуется построить соответствующий алгоритм, поэтому важность понятия алгоритма трудно переоценить. Между тем, сформулированное выше понятие алгоритма нельзя считать точным определением, моделью алгоритма.
Было предложено несколько точных математических моделей, уточняющих понятие алгоритма, - система рекурсивных функций Клини, машина Тюринга, нормальный алгоритм А.А. Маркова, схема Колмогорова-Успенского, лямбда- конверсии Черча, финитные комбинаторные процессы Поста.
А. Черч впервые обосновал положение о том, что все уточнения понятия алгоритма эквивалентны (“Тезис Чёрча”), т.е. правильно отражают интуитивное представление об алгоритмах, сложившиеся в математике.
Модель алгоритма, называемая машиной Тьюринга, состоит из бесконечной ленты Л, разделенной на ячейки, и читающей – пишущей головки Г, которая перемещается по ленте.
В каждой ячейке может быть записан один символ из алфавита А. Головка может находиться в одном из внутренних состояний, принадлежащих конечному множеству S. Работа машины происходит в дискретном времени. В зависимости от состояния головки sS и символа а А, против которого она стоит, головка записывает на ленте новый символ а+ (или оставляет старый), переходит в новое состояние s+ (или остается в старом) и передвигается: вправо (R), влево (L) или остается в прежнем положении (N).
В табл. 11 приведен пример команд машины Тьюринга, имеющих вид (а,s) → (a+, D, s+), где а {_, +, 1}, s {s1, s2, s3, !}, D {R, L, N}.
Таблица 11
a |
s |
||
s1 |
s2 |
s3 |
|
1 _ + |
_R s3 _R s1 _N ! |
1 L s2 _R s1 + Ls2 |
1 R s3 1 N s2 + R s3 |
Данная машина выполняет сложение чисел, представленных в унитарном коде. Например, сложение чисел 111+11 (три плюс два) осуществляется за три цикла:
111+11
11+111
1+1111
+11111
11111
Начальное состояние головки s1. Состояние s3 соответствует перемещению головки вправо с «перетаскиванием» единицы. Состояние s2 соответствует перемещению головки влево. Состояние ! означает остановку машины. На рис. 18 показан начальный этап вычислений.
Л … _ 11 + 111 _ …
Г s1
Л … _ _ 1 + 111 _ …
Г s3
Л … _ _ 1 + 111 _ …
Г s3
Л … _ _ 1 + 111 _ …
Г s3
Л … _ _ 1 + 111 _ …
Г s3
Л … _ _ 1 + 111 _ …
Г s3
Л … _ _ 1 + 111 _ …
Г s3
Л … _ _ 1+1111 _ …
Г s2
Рис. 18