- •© Михеева е. А., 2016 © Ульяновский государственный университет, 2016 оглавление
- •Раздел 6. Элементы математической логики . . . . . . . . . . . . . . . . . . . . 9
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Раздел 8. Вычислимые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
- •Раздел 9. Теория кодирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- •Раздел 6. Элементы математической логики Предисловие
- •Исчисление высказываний
- •Язык ив
- •Аксиомы ив
- •Формулы алгебры высказываний
- •Соответствие между формулами ав и ив
- •Непротиворечивость ив
- •Полнота ив
- •Логические операции над предикатами
- •Теорема о полноте системы одноместных предикатов, заданных на конечном множестве
- •Исчисление предикатов (ип)
- •Формулы исчисления предикатов
- •Определение формул
- •Замена переменных в формулах
- •Правила образования выводимых формул
- •Замена переменного предиката
- •Задания для самостоятельной работы
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Детерминированные функции
- •Свойство детерминированной функции
- •Примеры детерминированных и недетерминированных функций
- •Способ задания д.Функций
- •Вес детерминированной функции
- •Ограниченно-детерминированные функции
- •Способы задания о.Д.Функций
- •Конечные автоматы
- •Задания для самостоятельной работы
- •Раздел 8. Вычислимые функции Машины Тьюринга
- •Пусть в некоторый момент головка машины обозревает символ , находясь в состоянии , тогда:
- •Методы построения машин Тьюринга
- •1. Принцип двойственности для программ (машин).
- •2. Последовательное подключение одной машины к другой.
- •3. Итерация машины.
- •4. Специальный операторный язык для записи алгоритмов.
- •Описание технологии программирования для машин Тьюринга
- •Вычислимые функции
- •Операции с, Пр и
- •Классы вычислимых и рекурсивных функций
- •Эквивалентность класса рекурсивных функций и функций, вычислимых на машинах Тьюринга
- •Задания для самостоятельной работы
- •Раздел 9. Теория кодирования Алфавитное кодирование
- •Критерий однозначности декодирования
- •Задания для самостоятельной работы
Раздел 8. Вычислимые функции Машины Тьюринга
Мы
говорили, что
можно задать при помощи канонических
уравнений
q(1) = 0,
y(t) = F(x(t),q(t)),
q(t+1) = G(x(t),q(t)).
Эти уравнения позволяют определить по входной последовательности значений переменных x(1), … , x(k) выходную последовательность:
…
Значения выходной последовательности находятся постепенно по мере поступления входных значений. Это позволяет трактовать выписанные выше уравнения как описание работы некоторого дискретного преобразователя или автомата, который обладает r состояниями (r – вес ) и работает дискретно во времени, формируя состояние памяти и выходное значение в соответствии с каноническими уравнениями:
q(t)
t=1,2…
Данное устройство, в отличие от реальных автоматов, никогда не заканчивает работы. Это устройство можно трактовать в виде «машины» таким образом:
Машина состоит из бесконечной вправо ленты и автомата:
1 2 t k
…
X(1)
X(2)
…
…
X(k)
…
X(t)
Бесконечная лента разделена на ячейки, которые нумеруются натуральными числами 1, 2, … ; в ячейки с номерами 1, 2, … , k вписываются символы x(1), x(2), … , x(k) из алфавита (0,1, …, k-1). Автомат обладает головкой и может находиться в одном из (конечного числа) состояний q(1), q(2), …, q(r ). Головка в каждый из моментов времени t (t = 1,2,…) обозревает одну ячейку ленты. По символу, прочитанному на ленте, и по внутреннему состоянию автомат вырабатывает новое состояние и некоторый символ, который через головку вписывает в ту же ячейку. После этого головка сдвигается по ленте на одну ячейку вправо и т. д. Машина останавливается при появлении в поле зрения головки символа (пусто), и на ленте в ячейках 1, 2, … , k получается выходная последовательность {y(1),y(2),…,y(k)}. Работу этой машины можно задать при помощи так называемой программы, т.е. специальной таблицы:
-
q(1)
…
q(j)
…
q(r)
…
…
0
…
…
…
…
…
…
…
…
…
{F,R,G}
…
…
…
…
…
…
…
k-1
…
…
В данной таблице строки занумерованы символами , 0, 1, … , k-1; а столбцы – символами q(1), … , q(r). Строка, соответствующая символу , оставляется незаполненной. В клетку, расположенную в строке и в j-м столбце, выписывается тройка символов {F(,q(j)), R, G(,q(j))}. Эта тройка называется командой. Машина выполняет команду следующим образом: если головка обозревает на ленте символ ,и машина к этому моменту находится в состоянии q(j), то в рассматриваемый момент в ячейку вместо символа записывается символ F(,q(j)), а машина переходит в состояние G(,q(j)) и передвигает головку по ленте на одну ячейку вправо (R). Если читаемым символом является , то в соответствующей клетке таблицы стоит пустая команда, что рассматривается как команда остановки машины. Очевидно, что программа машины полностью определяется каноническими уравнениями .
Данный тип машины можно обобщить, допуская более широкий класс программ и более сложное взаимодействие автомата с лентой.
Пусть машина M состоит из бесконечной в обе стороны ленты, разбитой на квадратные ячейки, и конечного автомата G:
… …
G
В
ячейки ленты вписываются символы из
алфавита {0,1,…,k-1},
автомат G
обладает
головкой, в каждый момент времени
обозревающей некоторую ячейку ленты
и способной осуществлять одно из
следующих движений: R
- сдвигаться на одну ячейку вправо, L
– сдвигаться на одну ячейку влево и S
– продолжать обозревать ту же ячейку.
Состояние автомата G
обозначаем
.
Работа машины M определяется программой Т:
-
…
…
0
…
cDq
k-1
В
ней часть клеток может быть незаполненной,
т.е. содержать пустые команды, остальная
часть заполняется тройками символов
cDq,
где с
{0, 1, …, k-1},
D
{R,
L,
S},
q
{
,…,
},
представляющими команды машины.
