- •1.Основные понятия теории алгоритмов.
- •2.Примитивно рекурсивные функции. Базис элементарных функций. Операции подстановки и примитивной рекурсии.
- •3.Примитивно рекурсивные функции. Основные свойства операций подстановки и примитивной рекурсии.
- •4.Примитивно рекурсивные функции относительно совокупности функций. Основные свойства.
- •5.Производные операции над функциями.
- •6.Операции конечного суммирования и конечного произведения.
- •7.Предикат, логическая функция. Логические операции с предикатами.
- •8.Операции навешивания кванторов. Операции навешивания кванторов относительно двуместных предикатов
- •9.Примитивно рекурсивный предикат.
- •10. Операция навешивания ограниченного квантора над предикатами
- •11. Кусочное задание функции.
- •12 Операция ограниченной минимизации.
- •13.Частично рекурсивные функции.
- •14. Машина Тьюринга (мт). Применение мт к словам
- •16. Вычислимые по Тьюрингу функции.
- •17. Правильная вычислимость функций на машине Тьюринга.
- •18. Вычислимость по Тьюрингу примитивно рекурсивных функций. Суперпозиция.
- •19. Вычислимость по Тьюрингу примитивно рекурсивных функций. Примитивная рекурсия.
- •20. Вычислимость по Тьюрингу частично рекурсивных функций.
- •22. Нормальные алгоритмы Маркова и их применение к словам.
- •23. Нормально вычислимые функции и принцип нормализации Маркова.
- •15.Конструирование мт. Операции над машинами Тьюринга.
20. Вычислимость по Тьюрингу частично рекурсивных функций.
Теорема. Если функция f(x,y) правильно вычислима на машине Тьюринга, то и функция φ(x)=μy[f(x,y)=0], получающаяся с помощью оператора минимизации из функции f(x,y), также правильно вычислима на машине Тьюринга.
Доказательство: Обозначим F – машину Тьюринга, правильно вычисляющую функцию f(x,y). Используя ее, сконструируем такую машину Тьюринга, которая для заданного значения x вычисляет последовательно значения f(x,0), f(x,1), f(x,2), … до тех пор, пока в первый раз получится f(x,i)=0. После этого машина должна выдать на ленту число i, представляющее собой значение функции φ(x)=i. Если же для всех i будет иметь место f(x,i)>0,то машина должна будет работать вечно, и это будет означать, что функция φ не определена в точке x. начальная конфигурация на конструируемой машине такова: q101x0. Будем мыслить ее следующим образом q101x010 и начнем с применения к ней машины “копирование” К2. Получим конфигурацию 01x010q101x010. Теперь вычислим значение f(x,0), применив машину
F: 01x010qα01f(x,o).
Далее подбираем команды, которые при условии f(x,i)>0 преобразовывают конфигурацию 01x01iq01f(x,i) в конфигурацию 01x01i+1q01f(x,i+1):
qα0→ qα+10П: 01x0100 qα+1 1f(x,o);
qα+11→ qα+20: 01x0100 qα+2 1f(x,o)-1;
qα+20→ qα+30Л: 01x010qα+3 001f(x,o)-1;
qα+30→ qα+41: 01x010qα+4 101f(x,o)-1;
qα+41→ qα+51П: 01x0110 qα+5 01f(x,o)-1;
О: 01x011q0;
(Б-)2: 01x011q 01x011;
F: 01x011 qβ 01f(x,1);
qβ0→ qα0: 01x011 qα 01f(x,1);
Последняя команда зацикливает программу, и машина от конфигурации 01x011 qα 01f(x,1) переходит к конфигурации 01x012 qα 01f(x,2) , затем к конфигурации 01x013 qα 01f(x,3) и т.д. Допустим, что на некотором шаге машина домтагла конфигурации 01x01i qα 01f(x,i), при которой f(x,i)=0. Это значит, что φ(x)=i и машина должна выдать этот результат. Число i yнакоплено в «счетчике» 01i. Поэтому поступаем следующим образом. Уже имеющаяся команда qα0→ qα+10П приведет машину к конфигурации 01x01i 0qα+10. Следующие команды выдают на ленту необходимую конфигурацию q001i, т.е. q001φ(x):
qα+10→ qγ0: 01x01i 0qγ0;
(Б-)2: 01x qγ 01i 0;
ВО Б-: qδ 01i ;
q δ 0→ q00: q001φ(x)
Теорема доказана.
Теорема 2. Если функция вычислима по Тьюрингу, то она частично рекурсивна.
Теорема 3. Функция вычислима по Тьюрингу тогда и только тогда, когда она частично рекурсивна.
22. Нормальные алгоритмы Маркова и их применение к словам.
Марковские подстановки. Алфавитом (как и прежде) называется любое непустое множество. Его элементы называются буквами, а любые последовательности букв — словами в данном алфавите. Для удобства рассуждений допускаются пустые слова (они не имеют в своем составе ни одной буквы). Пустое слово будем обозначать . Если А и B — два алфавита, причем АB то алфавит В называется расширением алфавита А.
Определение 1. Марковской подстановкой называется операция над словами, задаваемая с помощью упорядоченной пары слов (Р, Q), состоящая в следующем. В заданном слове R находят первое вхождение слова Р (если таковое имеется) и, не изменяя остальных частей слова R, заменяют в нем это вхождение словом Q. Полученное слово называется результатом применения марковской подстановки (Р, Q) к слову R. Если же первого вхождения Р в слово R нет (и, следовательно, вообще нет ни одного вхождения Р в R), то считается, что марковская подстановка (Р, Q) неприменима к слову R.
Нормальные алгоритмы и их применение к словам. Упорядоченный конечный список формул подстановок
в алфавите А называется схемой (или записью) нормального алгоритма в А. (Запись точки в скобках означает, что она может стоять в этом месте, а может отсутствовать.) Данная схема определяет (детерминирует) алгоритм преобразования слов, называемый нормальным алгоритмом Маркова. Дадим его точное определение.
Определение 2. Нормальным алгоритмом (Маркова) в алфавите А называется следующее правило построения последовательности Vi слов в алфавите А, исходя из данного слова V в этом алфавите. В качестве начального слова V0 последовательности берется слово V. Пусть для некоторого i >= 0 слово Vi построено и процесс построения рассматриваемой последовательности еще не завершился. Если при этом в схеме нормального алгоритма нет формул, левые части которых входили бы в Vi , то Vi+1 полагают равным Vi и процесс построения последовательности считается завершившимся. Если же в схеме имеются формулы с левыми частями, входящими в Vi, то в качестве Vi+1, берется результат марковской подстановки правой части первой из таких формул вместо первого вхождения ее левой части в слово Vi; процесс построения последовательности считается завершившимся, если на данном шаге была применена формула заключительной подстановки, и продолжающимся — в противном случае. Если процесс построения упомянутой последовательности обрывается, то говорят, что рассматриваемый нормальный алгоритм применим к слову V. Последний член W последовательности называется результатом применения нормального алгоритма к слову V. Говорят, что нормальный алгоритм перерабатывает V b W.
Последовательность Vi, будем записывать следующим образом:
V0 => V0 => V2 => ... => Vm-1 => Vm,
где V0 = V и Vm = W.
Мы определили понятие нормального алгоритма в алфавите А. Если же алгоритм задан в некотором расширении алфавита А, то говорят, что он есть нормальный алгоритм над А.