
- •1. Исчисление высказываний
- •1.1. Алгоритмы проверки общезначимости и противоречивости в исчислении высказываний
- •1.2. Метод резолюций в исчислении высказываний
- •1.3. Метод резолюций для хорновских дизъюнктов
- •Задачи и упражнения
- •2. Логика и исчисление предикатов
- •2.1. Логика предикатов
- •2.2. Алгебра предикатов
- •2.2.1. Логические операции
- •2.2.2. Правила записи сложных формул
- •2.2.3. Законы алгебры предикатов
- •2.2.4. Предваренная нормальная форма
- •2.2.4.1. Алгоритм приведения формулы к виду пнф
- •2.2.5. Сколемовская стандартная форма
- •2.2.5.1. Алгоритм Сколема
- •2.3. Исчисление предикатов
- •2.3.1. Интерпретация формул
- •2.3.2. Правила вывода
- •2.3.3. Метод дедуктивного вывода
- •2.3.4. Метод резолюций в исчислении предикатов
- •2.4. Проблемы в исчислении предикатов
- •2.5. Логическое программирование
- •Задачи и упражнения
- •3. Элементы теории алгоритмов
- •3.1. Рекурсивные функции
- •3.1.1. Базовые функции
- •3.1.2. Элементарные операции
- •3.2. Машина Тьюринга
- •3.2.1. Описание машины Тьюринга
- •3.2.2. Примеры машин Тьюринга
- •3.2.3. Условные обозначения и схемные соединения машин Тьюринга
- •3.2.4. Рекурсивные функции и вычисления на машинах Тьюринга
- •3.3. Конечные автоматы
- •4. Неклассические логики
- •4.1. Пропозиционные логики
- •4.2. Алгоритмические логики
- •Задачи и упражнения
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
3.2.1. Описание машины Тьюринга
Математическая модель машины Тьюринга имеет вид:
Т = < vt; Q; D; ; ; >,
где: VT = {ai; a2; ... an} |
– множество символов алфавита внешней памяти; |
Q = {qi; q2; ... qm} |
– множество символов алфавита внутренней памяти; |
D = {П; Л; С} |
– множество символов алфавита перемещения головки; |
: Q vt => vt |
– функция выхода машины Тьюринга; |
: Q vt => vt |
– функция переходов машины Тьюринга. |
: Q vt => vt |
– функция перемещения головки машины Тьюринга. |
С алгебраической точки зрения машина Тьюринга является трехосновной алгеброй, т. е. алгеброй с тремя множествами (внешней памяти, внутренней памяти и перемещения головки) и тремя функциями (выхода, переходов и перемещений).
Полное описание машины Тьюринга определяется полной записью всех слов на информационной ленте, положением головки относительно ячеек информационной ленты и текущим состоянием управляющего устройства. Такое описание называют конфигурацией машины Тьюринга и обозначают
K = qi , где – слово, расположенное слева от головки;
– слово, расположенное вправо от головки;
qi – текущее состояние машины Тьюринга.
Введенное понятие «состояние» машины Тьюринга определяет ее «память», т. е. учет всех тех конфигураций, которые привели машину в текущее qi состояние. Следует обратить внимание, что символ, находящийся в ячейке под считывающей головкой, является первым символом слова , т.е.
= (aj ).
Каждая конфигурация содержит только одно вхождение символа qi. К незаключительной конфигурации может быть применима только одна команда, которая переводит машину в новую конфигурацию. Так реализуется дискретность и детерминированность алгоритмического процесса.
Для удобства анализа вычислительных алгоритмов рекурсивных функций математик Пост предложил ограничить множество символов внешнего алфавита vt двумя символами, т.е. vt = {|; #}, где "|" (палочка) есть символ унарного кода числа, а "#" – символ пробела между числами. При этом любое целое положительное число может быть представлено на информационной ленте последовательностью палочек, как это представлено в табл. 2.
Таблица 2
Число в десятичной системе счисления |
«Слово» в унарном коде на информационной ленте |
0 |
| |
1 |
|| |
2 |
||| |
3 |
|||| |
........................ |
.......................................... |
i |
|
«x» эквивалентно « | x + 1»
Для упорядочения составления протоколов машины Тьюринга информационную ленту ограничивают полулентой бесконечной длины только в одну сторону. Алгоритмы допустимо исследовать на левой полуленте бесконечной в левую сторону и правой полуленте бесконечной в правую сторону. В зависимости от используемой полуленты приняты различные схемы записи стандартных конфигураций машины Тьюринга (табл. 3).
Таблица 3
Стандартная |
Информационная полулента |
|
конфигурация |
правая |
левая |
Началь-ная |
qí | x 1+ 1# | x 2+ 1 # ... #| x n+ 1 |
| x 1+ 1# | x 2+ 1 # ... #| x n qí |
|
Конечная |
qk | y + 1 |
| y qk | |
Работу машины Тьюринга удобно представлять протоколом, таблицей и графом.
При протокольной записи все команды должны быть записаны упорядоченным списком. Например,
1) qíai qiajD
2) qi ak qj aiD
.................................
n) q| am qk an C.
При табличном представлении строки описывают текущее состояние машины, а столбцы – содержимое обозреваемой ячейки. Тогда элементами матрицы этой таблицы являются правые части команд (qjaiD) для соответствующей пары текущего состояния машины (qiак). Табличная форма описания машины более компактна и позволяет применить матричные методы анализа для оптимизации структуры алгоритма (табл. 4).
Таблица 4
Текущее |
Символы vt
|
|||
состояние |
аi |
ак |
... |
am |
qн |
qiajD |
... |
|
|
qi |
... |
qjaiD |
|
... |
... |
... |
... |
... |
... |
qk |
... |
... |
... |
qkanC |
При графовом представлении вершинам графа соответствуют состояния машины, а дугам – переходы в те состояния, которые предусмотрены командой. При этом на дуге указывают считываемый сигнал обозреваемой ячейки / записываемый сигнал в обозреваемую ячейку и команда на перемещение головки (рис. 3.1). Граф машины Тьюринга, реализующей заданный алгоритм, часто называют граф-схемой алгоритма (ГСА).
qi q|
Рис. 3.1. Граф-схема алгоритма
Граф-схема алгоритма обеспечивает наглядность и позволяет применять различные методы исследования графов для оптимизации структуры алгоритма.