- •Математическая логика и теория алгоритмов
- •Воронеж 2011
- •1. Логика высказываний
- •1.1. Алгебра высказываний
- •Операции над высказываниями
- •1.1.2. Правила записи сложных формул
- •1.1.3. Таблицы истинности
- •1.1.4. Равносильность формул
- •1.1.5. Дизъюнктивные и конъюнктивные нормальные формы
- •1.1.6. Логическое следствие
- •1.2. Исчисление высказываний
- •1.2.1. Алгоритмы проверки общезначимости и противоречивости в исчислении высказываний
- •1.2.2. Метод резолюций в исчислении высказываний
- •1.2.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.3. Конечные автоматы
- •4. Неклассические логики
- •4.1. Пропозиционные логики
- •4.2. Алгоритмические логики
- •Задачи и упражнения
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
3.2.1. Описание машины Тьюринга
Математическая модель машины Тьюринга имеет вид:
Т = < vt; Q; W; ; ; >,
где: VT = {ai; a2; ... an} |
– множество символов внешнего алфавита; |
Q = {qi; q2; ... qm} |
– множество символов внутреннего алфавита; |
W = {R; L; S} |
– множество символов алфавита перемещения головки; |
: Q vt => vt |
– функция выхода машины Тьюринга; |
: Q vt => vt |
– функция переходов машины Тьюринга. |
: Q vt => vt |
– функция перемещения головки машины Тьюринга. |
С алгебраической точки зрения машина Тьюринга является трехосновной алгеброй, т. е. алгеброй с тремя множествами (внешним алфавитом, внутренним алфавитом и перемещения головки) и тремя функциями (выхода, переходов и перемещений).
Полное описание машины Тьюринга определяется полной записью всех слов на информационной ленте, положением головки относительно ячеек информационной ленты и текущим состоянием управляющего устройства. Такое описание называют конфигурацией машины Тьюринга и обозначают
K = qi , где – слово, расположенное слева от головки;
– слово, расположенное вправо от головки;
qi – текущее состояние машины Тьюринга.
Введенное понятие «состояние» машины Тьюринга определяет ее «память», т. е. учет всех тех конфигураций, которые привели машину в текущее qi состояние. Следует обратить внимание, что символ, находящийся в ячейке под считывающей головкой, является первым символом слова , т.е. =(aj ).
Каждая конфигурация содержит только одно вхождение символа qi. К незаключительной конфигурации может быть применима только одна команда, которая переводит машину в новую конфигурацию. Так реализуется дискретность и детерминированность алгоритмического процесса.
Для удобства анализа вычислительных алгоритмов рекурсивных функций математик Пост предложил ограничить множество символов внешнего алфавита vt двумя символами, т.е. vt = {|; #}, где "|" (палочка) есть символ унарного кода числа, а "#" – символ пробела между числами. При этом любое целое неотрицательное число может быть представлено на информационной ленте последовательностью палочек, как это представлено в табл. 2.
Запись числа «x» эквивалентно « | x + 1».
Таблица 2
Число в десятичной системе счисления |
«Слово» в унарном коде на информационной ленте |
0 |
| |
1 |
|| |
2 |
||| |
3 |
|||| |
........................ |
.......................................... |
i |
|
Для упорядочения составления протоколов машины Тьюринга информационную ленту ограничивают полулентой бесконечной длины только в одну сторону. Алгоритмы допустимо исследовать на левой полуленте бесконечной в левую сторону и правой полуленте бесконечной в правую сторону. В зависимости от используемой полуленты приняты различные схемы записи стандартных конфигураций машины Тьюринга (табл. 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) ai qí ajqiW
2) ak qi ai qj W
.................................
n) am q| an qk S.
При табличном представлении строки описывают текущее состояние машины, а столбцы – содержимое обозреваемой ячейки. Тогда элементами матрицы этой таблицы являются правые части команд (aiqjW) для соответствующей пары текущего состояния машины (акqi). Табличная форма описания машины более компактна и позволяет применить матричные методы анализа для оптимизации структуры алгоритма (табл. 4).
Таблица 4
Текущее |
Символы vt
|
|||
состояние |
аi |
ак |
... |
am |
q1 |
ajqiW |
... |
|
|
qi |
... |
aiqjW |
|
... |
... |
... |
... |
... |
... |
q0 |
... |
... |
... |
anqkS |