- •1. Алгоритм и его характеристики
- •2. Вычислимые функции и их графики
- •3.Разрешимые и перечислимые множества. Критерий разрешимости множества
- •4.Рекурсивные функции и операторы. Примеры
- •5. Машина Тьюринга и её программа. Машина Тьюринга как алгоритм
- •6. Эффективная нумерация машин Тьюринга
- •7. Неразрешимые алгоритмические проблемы
- •8. Детерминированные конечные автоматы и их работа. Диаграмма и функция переходов. Расширенная функция переходов. Язык дка
- •9. Недетерминированные конечные автоматы и их работа. Диаграмма и отношение переходов. Язык нка
- •10. Недетерминированные конечные автоматы с ε-переходами и их работа. Язык ε-нка
- •11. Языки. Операции над языками
- •12. Регулярные выражения и их свойства. Язык регулярного выражения
- •13. Регулярные выражения и дка
- •14. Свойства регулярных языков. Лемма о накачке. Замкнутость регулярных языков
- •15. Контекстно-свободные грамматики, порождения цепочек, язык грамматики
- •16. Замкнутость и разрешимость кс-языков
- •17. Полезные, порождающие и достижимые символы кс – грамматики. Нормальная форма Хомского кс-грамматики
- •18. Приведение кс-грамматики (контекстно-свободной) к нфх - грамматике (нормальной форме Хомского)
- •19. Автоматы с магазинной памятью и их работа. Конфигурация мп-автомата и его язык, вычисление.
- •21. Эффективная нумерация машин Тьюринга. Язык диагонализации и универсальный язык. Эффективная нумерация машин Тьюринга
- •22. Рекурсивный и рекурсивно-перечислимые языки. Иерархия языков по Хомскому
- •23. Временная сложность машин Тьюринга. Классы p и np языков и связь между ними
4.Рекурсивные функции и операторы. Примеры
Опр. класс вычислимых функций, определяемый 5 характеристиками алгоритма, определяется ими однозначно и называется рекурсивными функциями.
Функции - простые рекурсивные функции. Эти ф-ции всюду определены на N и вычисляются аналитически.
Новые рекурсивные функции получаются из этих с помощью трех операторов:
- суперпозиции (подстановки);
- примитивной рекурсии;
- минимизации. Это доп. правила вывода в этой теории.
1.Оператор суперпозиции (подстановки).
.
n-местных функций и еще одна m-местная функция . Если функция. Функция - n-местная функция. φ получена из данных с помощью оператора суперпозиции, если:
.
2. Оператор примитивной рекурсии.
К ним относятся:
Есть 2 функции n-местная и n+2 – местная:
-местная функция f получена из функций g и h c помощью оператора примитивной рекурсии, если для любых выполняются следующие неравенства:
,
,
, то - функция двух переменных.
.
- еще одно обозначение этой рекурсивной функции
Опр. Функция называется примитивно рекурсивной, если ее можно получить с помощью конечного числа суперпозиций рекурсии этих функций
Все примитивно-рекурсивные функции всюду определены.
3.Оператор минимизации. Имеем 2 функции переменного.
Функция получена из функций с помощью оператора минимизации, если для нее выполнимы следующие условия:
.
Опр. Любая функция, полученная с помощью конечного числа этих трех операторов, называется рекурсивной.
Пример 1: . Доказать, что она рекурсивная.
Пример2: (доказать что рекурсивна)
Пример 3:
Пример 4:
(ЗНАК) Парная ей
Пример 5:
(частный случай усеченной разности)
Пример 6.
- примитивно рекурсивная?
=
Пример 7.
[x|0] = x
рекурсивная разность
.
Опр. Функция называется рекурсивной, если она получена из простых рекурсивных функций с помощью конечного числа операторов.
Опр. Функция называется общерекурсивной, если она рекурсивна и всюду определена.
5. Машина Тьюринга и её программа. Машина Тьюринга как алгоритм
Ещё называют: машина Поста. В реальности её нет, это некий алгоритм. Представим её устройство.
Состоит из: бесконечной в обе стороны ленты разбитой на ячейки.
1). В процессе работы машина обозревает конечное число ячеек, находящихся в одном из состояний а0, а1, а2, …, am и может, в зависимости от условий, пристраивать одну ячейку справа или слева.
а0 – пустое состояние.
Опр. совокупность состояний ячеек обозначается A = {а0, а1, а2, …, am} и называется внешним алфавитом машины. Соответственно сама лента называется внешней памятью машины и считается направленной.
2). Есть внутренняя память устройства, которая в определённое время находится в одном из состояний Q = {q0, q1, q2, …, qm} – совокупность состояний, которые образуют внутреннюю память. Одно из этих состояний называется заключительным (q0). Стартовое состояние - q1 – находясь в этом состоянии, машина начинает работать. В это состояние машину надо привести, иначе она не начнёт работать.
3). Третья часть – управляющая головка. Некоторое устройство, которое может перемещаться вдоль ленты. В каждый момент времени находится в одном из состояний q и обозревает определённую ячейку внешней памяти.
4). Механическое устройство, которое в зависимости от состояния обозреваемой ячейки и внутренней памяти может изменить состоянии внутренней памяти, т.е. . Необязательно, чтобы состояние было новым. Причём (может изменить состояние ячейки) и может передвинуть управляющую головку в соседнюю справа/слева ячейку (а может и не двинуть).
Если машина обозревает крайнюю правую ячейку и ей надо сдвинуться вправо, то она сдвигается и пристраивает ячейку, находящуюся в пустом состоянии.
Если вдруг на каком-то этапе машина приходит в состояние q0, то она останавливается. Может случится так, что она в состояние q0 не приходит никогда, тогда говорят, что она работает вечно.
Опр. Состоянием машины или её конфигурацией называется совокупность, образованная последовательностью всех обозреваемых ячеек ленты в данный моменты времени (внешняя память); состоянием внутренней памяти ; номером обозреваемой ячейки в данный момент.
Т.е.
|
|
|
… |
|
… |
|
||
|
|
|
– называется машинным словом. Символ q находится только один раз и не может быть в нём самым крайним справа.
. Программа состоит из команд .
Опр. Команда – выражение одного из 3-х видов:
:
.
.
Или
Машина не глядя заменяет символ новым.
, , , х =П
Машина переходит к обозрению соседней справа ячейки, если Х = П. Влево, если Х = Л, остаётся на месте, если Х = С.
,
,
…
q0
Если машина не попадает в q0, то она работает вечно.
Алфавит машины Тьюринга: A, Q, A Q конечный набор символов.
Слово α А\{a0} – любая последовательность символов алфавита. Слово α воспринимается машиной в стандартном состоянии, если оно записано в последовательных ячейках на ленте, все другие пустые и машина обозревает крайнюю справа ячейку из тех, в которых написано слово.
Слово α перерабатывается машиной в слово β, если от слова α, воспринимаемого машиной в стандартном начальном положении, машина переходит к слову β, которое воспринимается машиной в состоянии остановки q0.
.
Слово α перешло в β.
Примеры: Чтобы задать машину Тьюринга, надо сначала задать алфавит:
A = {0, 1}, Q = {q0, q1, q2}
A Q |
q1 |
q |
0 |
q2ОП |
q01 |
1 |
q21П |
q21П |
Как изменится состояние машины ,если вначале оно было:q111, т.е. в какое слово машина переработает слово 11?
1 1 → 1 1 → 11 0 → 110 0 → 110 1
q1 q1 q1 q2 q0
11 → 1101
Задачи, связанные с машиной Тьюринга:
1. Дана машина, анализируем её.
2. Задан алфавит: внешний и внутренний. Создать машину Тьюринга.
Машина Тьюринга как алгоритм.
.
, E
,
.
n-ку будем записывать в виде слова:
f(10, 2, 3, 5)
→…→
.
Опр. Функция называется вычислимой по Тьюрингу, если существует машина Тьюринга, которая её вычисляет.
Пример:
– примитивно рекурсивные функции, т.е. есть алгоритм, который их вычисляет.
. Если функция не определена на каком-то наборе, то на этом наборе машина Тьюринга будет работать вечно.
1). S(x) = x + 1
a) x≠0
011…1q110 – стандартное начальное состояние.
Из состояния q11 → q11П, т.е. q10 → q01
…1 1
q1
…11 0
q0
б). х = 0
A Q |
q1 |
0 |
q01 |
1 |
q11П |
2). O(x) = 0
001… q110 →
q11→ q11Л … q10 → q01