- •© Михеева е. А., 2016 © Ульяновский государственный университет, 2016 оглавление
- •Раздел 6. Элементы математической логики . . . . . . . . . . . . . . . . . . . . 9
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Раздел 8. Вычислимые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
- •Раздел 9. Теория кодирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- •Раздел 6. Элементы математической логики Предисловие
- •Исчисление высказываний
- •Язык ив
- •Аксиомы ив
- •Формулы алгебры высказываний
- •Соответствие между формулами ав и ив
- •Непротиворечивость ив
- •Полнота ив
- •Логические операции над предикатами
- •Теорема о полноте системы одноместных предикатов, заданных на конечном множестве
- •Исчисление предикатов (ип)
- •Формулы исчисления предикатов
- •Определение формул
- •Замена переменных в формулах
- •Правила образования выводимых формул
- •Замена переменного предиката
- •Задания для самостоятельной работы
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Детерминированные функции
- •Свойство детерминированной функции
- •Примеры детерминированных и недетерминированных функций
- •Способ задания д.Функций
- •Вес детерминированной функции
- •Ограниченно-детерминированные функции
- •Способы задания о.Д.Функций
- •Конечные автоматы
- •Задания для самостоятельной работы
- •Раздел 8. Вычислимые функции Машины Тьюринга
- •Пусть в некоторый момент головка машины обозревает символ , находясь в состоянии , тогда:
- •Методы построения машин Тьюринга
- •1. Принцип двойственности для программ (машин).
- •2. Последовательное подключение одной машины к другой.
- •3. Итерация машины.
- •4. Специальный операторный язык для записи алгоритмов.
- •Описание технологии программирования для машин Тьюринга
- •Вычислимые функции
- •Операции с, Пр и
- •Классы вычислимых и рекурсивных функций
- •Эквивалентность класса рекурсивных функций и функций, вычислимых на машинах Тьюринга
- •Задания для самостоятельной работы
- •Раздел 9. Теория кодирования Алфавитное кодирование
- •Критерий однозначности декодирования
- •Задания для самостоятельной работы
Вычислимые функции
Пусть
= (1,2,…n),
n
1,
- произвольный набор целых неотрицательных
чисел. Слово
называется основным
машинным кодом
набора
в алфавите {0,1} и обозначается через
K(
),
т.е. K(
)
=
,
где
= (1,2,…n),
n
1.
В
частности, слово
является основным машинным кодом числа
В дальнейшем будем рассматривать частичные числовые функции.
Определение.
Функция f(x1,
x2,…,
xn),
n
1,
называется частичной
числовой функцией,
если переменные xi
(
)
принимают значения из расширенного
натурального ряда N={0,1,...}
и в том случае, когда на наборе
= (1,2,…n)
функция f
определена,
f(
)N.
Определение. Частичная числовая функция f называется вычислимой, если существует машина Тьюринга Mf, обладающая следующими свойствами:
Если f( ) определена, то Mf (K( ))=K(f( )) (т.е. машина Mf, будучи применима к основному коду для и находясь в начальном состоянии над его левой единицей, останавливается и в заключительном состоянии на ленте выдает код для f( )).
Если f( ) не определена, то либо M f(K( )) не является кодом никакого числа из N, либо Mf не применима к слову K( ) (т.е. машина Mf, будучи применима к основному коду для и находясь в начальном состоянии над его левой единицей, либо останавливается, но при этом запись на ленте отлична от кода любого числа из N, либо не останавливается).
Определение. Если функция f вычислима с помощью машины Mf, то будем говорить, что машина Mf вычисляет функцию f.
Определение. Машина Mf вычисляет функцию f(x1, x2,…, xn) правильным образом:
а) если f( ) определено, то Mf (K( ))=K(f( )), при этом останов происходит над левой единицей кода для f( );
б) если f( ) не определено, то Mf, будучи применима к K( ) и находясь в начальном состоянии над его левой единицей, не останавливается.
П
ример.
S(x) = x + 1;
O(x1, x2,…, xn)=0, n 1; простейшие частичные
(
x1, x2,…, xn)
= xm,
.
числовые функции
Покажем, что данные функции вычислимы.
1) Вычислимость функции S(x) следует из того, что она реализуема следующей машиной:
-
S
0
1S
1
1L
2) Вычислимость функции O(x1, x2,…, xn)=0, n 1, следует из того, что она реализуема следующей машиной:
-
O
0
1S
1
0R
3) Вычислимость функции ( x1, x2,…, xn) = xm, , следует из того, что она реализуема следующей машиной:
|
q1 |
… |
qm-1 |
qm
|
|
…
|
qn
|
|
|
|
0 |
0R |
… |
0R |
0R |
0R |
… |
0L |
0L |
0R |
|
1 |
0R |
… |
0R |
1R |
0R |
… |
0R |
1L |
1L |
|
Машина для идет направо (в начальный момент обозревается, как всегда, левая единица основного кода) и стирает все массивы основного кода для (1,2,…n), кроме m-го, затем возвращается влево и встает над левой единицей оставшегося массива.
Замечание. Машина Mf вычисляет данные функции правильным образом.
Лемма. Если f(x1, x2,…, xn) - вычислимая функция, то существует машина Тьюринга, которая вычисляет ее правильным образом.
Замечание. В дальнейшем для вычислимых функций будем использовать исключительно машины, вычисляющие их правильным образом.
Через Pвыч. обозначим класс всех вычислимых функций.
