
- •1. Алгоритм и его характеристики
- •2. Вычислимые функции и их графики
- •3.Разрешимые и перечислимые множества. Критерий разрешимости множества
- •4.Рекурсивные функции и операторы. Примеры
- •5. Машина Тьюринга и её программа. Машина Тьюринга как алгоритм
- •6. Эффективная нумерация машин Тьюринга
- •7. Неразрешимые алгоритмические проблемы
- •8. Детерминированные конечные автоматы и их работа. Диаграмма и функция переходов. Расширенная функция переходов. Язык дка
- •9. Недетерминированные конечные автоматы и их работа. Диаграмма и отношение переходов. Язык нка
- •10. Недетерминированные конечные автоматы с ε-переходами и их работа. Язык ε-нка
- •11. Языки. Операции над языками
- •12. Регулярные выражения и их свойства. Язык регулярного выражения
- •13. Регулярные выражения и дка
- •14. Свойства регулярных языков. Лемма о накачке. Замкнутость регулярных языков
- •15. Контекстно-свободные грамматики, порождения цепочек, язык грамматики
- •16. Замкнутость и разрешимость кс-языков
- •17. Полезные, порождающие и достижимые символы кс – грамматики. Нормальная форма Хомского кс-грамматики
- •18. Приведение кс-грамматики (контекстно-свободной) к нфх - грамматике (нормальной форме Хомского)
- •19. Автоматы с магазинной памятью и их работа. Конфигурация мп-автомата и его язык, вычисление.
- •21. Эффективная нумерация машин Тьюринга. Язык диагонализации и универсальный язык. Эффективная нумерация машин Тьюринга
- •22. Рекурсивный и рекурсивно-перечислимые языки. Иерархия языков по Хомскому
- •23. Временная сложность машин Тьюринга. Классы p и np языков и связь между ними
Оглавление
1. Алгоритм и его характеристики 2
2. Вычислимые функции и их графики 3
3.Разрешимые и перечислимые множества. Критерий разрешимости множества 4
4.Рекурсивные функции и операторы. Примеры 6
5. Машина Тьюринга и её программа. Машина Тьюринга как алгоритм 9
6. Эффективная нумерация машин Тьюринга 12
7. Неразрешимые алгоритмические проблемы 13
8. Детерминированные конечные автоматы и их работа. Диаграмма и функция переходов. Расширенная функция переходов. Язык ДКА 14
9. Недетерминированные конечные автоматы и их работа. Диаграмма и отношение переходов. Язык НКА 16
10. Недетерминированные конечные автоматы с ε-переходами и их работа. Язык ε-НКА 19
11. Языки. Операции над языками 21
12. Регулярные выражения и их свойства. Язык регулярного выражения 22
13. Регулярные выражения и ДКА 23
14. Свойства регулярных языков. Лемма о накачке. Замкнутость регулярных языков 24
15. Контекстно-свободные грамматики, порождения цепочек, язык грамматики 26
16. Замкнутость и разрешимость КС-языков 28
17. Полезные, порождающие и достижимые символы КС – грамматики. Нормальная форма Хомского КС-грамматики 29
18. Приведение КС-грамматики (контекстно-свободной) к НФХ - грамматике (нормальной форме Хомского) 30
19. Автоматы с магазинной памятью и их работа. Конфигурация МП-автомата и его язык, вычисление. 31
МП-автомат – один из способов задания КС - грамматики 31
20. МП-автоматы (с магазинной памятью) и КС-грамматики 33
21. Эффективная нумерация машин Тьюринга. Язык диагонализации и универсальный язык. 35
Эффективная нумерация машин Тьюринга 35
22. Рекурсивный и рекурсивно-перечислимые языки. Иерархия языков по Хомскому 37
23. Временная сложность машин Тьюринга. Классы P и NP языков и связь между ними 38
24. NP – полные проблемы 39
1. Алгоритм и его характеристики
Алгоритм – точная система инструкций о выполнении в определенном порядке некоторых действий для решения всех задач некоторого класса. (Это интуитивное понятие).
Каждый алгоритм характеризуется следующими 5 свойствами:
Дискретность алгоритма – процесс получения некоторых величин идущий в дискретном времени так, что в начальный момент задается некоторая начальная система величин, а в каждый следующий момент система величин получается по определенному закону (программе) из системы величин, полученных в предыдущий момент.
Детерминированность - система величин, полученных в какой-то неначальный момент. Однозначно определяется системой величин, полученных в предыдущий момент.
Элементарность шагов. Закон получения последующей системы величин должен быть простым и локальным.
Направленность алгоритма. Если способ получения последующих систем величин из какой-то заданной не дает результата, то должно быть указано, что считать результатом.
Массовость. Начальные данные (начальная система величин) должны выбираться из потенциального бесконечного множества.
Примеры: действия арифметики.
«Алгоритм» раньше писалось как «алгорифм» (Мухамед ал Харизми)
Примеры:
1. 2/0 = 99…9… – не натуральное число.
2. a:0 = х
а) а = х∙0 = 0 =>?! (если а≠0)
б) 0 :0 = х
0 = 0∙х => частное любое
2. Вычислимые функции и их графики
В
теории рассматриваются n-местные
функции:
;
,
т. е. рассматриваются целочисленные
функции целочисленного аргумента.
Опр.
Функция
называется вычислимой, если
существует алгоритм, позволяющий
вычислить значение этой функции для
тех наборов переменных, на которых она
определена и работающая вечно на
тех наборах, на которых она не определена.
Опр.:
Если область определения
(собственное подмножество
)
и функция вычислима, тогда она называется
частично вычислимой.
Пример:
,
- частично вычислимая.
Опр.: Класс вычислимых функций, удовлетворяющий 5-ти свойствам алгоритма строится однозначно и называется классом рекурсивных функций.
3 типа функций:
- функция следования;
- тождественный ноль;
- функция-проектор.
x – проекция для (х; у) на ось Ох.
Опр.:
График вычислимой функции –
это множество картежей вида
В зависимости от графика классифицируются сами функции.
3.Разрешимые и перечислимые множества. Критерий разрешимости множества
Опр. Множество M называется разрешимым, если имеется алгоритм для выяснения того, принадлежит ли данный кортеж этому множеству, или нет.
С каждым множеством можно связать функцию
(характеристическая функция)
Теорема 1. Множество М разрешимо тогда и только тогда, когда его характеристическая функция вычислима.
Опр.
.
Множество М (рекурсивно, эффективно
алгоритмически) перечислимо, если оно
либо пусто, либо является областью
значений некоторой вычислимой функции.
Теорема 2. Даны 2 множества M и K. Если оба этих множества перечислимы, то перечислимы и их объединения, и их пересечения.
Пусть
f – алгоритм, который
перечисляет М:
,
Пусть
g – алгоритм, который
перечисляет K:
.
Надо доказать, что
.
Док-во:
Построим
алгоритм, который перечисляет
.
Породим элементы
Породим
Теорема
3. Множество М разрешимо
оно само М и его дополнение
перечислимые. (Критерий разрешимости
множества).
Доказательство:
.
Оно не пусто.
Если хотя бы один элемент
,
то
- вычислима. Надо доказать, что
перечислимы.
Для этого надо построить алгоритм, который порождает элементы М и
.
перечисляет элементы множества М, она
построена по характеристической функции,
которая вычислима; значит, функция f
вычислима, М – множество значений
вычислимой функции, по определению М –
перечислима.
Теперь
для
.
;
g – вычислима, поэтому – перечислимо.
M, – перечислимы => М – множество значений вычислимой функции.
; - область знач. пер. ф-ции.
f,
g - вычислимы.
Строим алгоритм.
,
позволяющий выяснить принадлежит ли
данное натуральное число М или не.
Порождаем
первые элементы
и сравниваем
.
Последовательно порождаем пары и сравниваем n = f(0) или n = g(0). В итоге n = f(i) или n = g(j). Т.к. есть алгоритм перечисления, то множество М – разрешимо. Ч.т.д.
- эти кортежи можно пронумеровать,
существует диагональный метод нумерации
кортежей, либо канторовская нумерация.
- кортеж длины 2. Неважно какие значения
принимают
,
нумеруются номера пар.
- диагональная нумерация.
Возьмёт
пару
.
Какой номер она имеет?
.
– четверки
.
Все кортежи длины n можно пронумеровать.
Теорема 4:Существует перечислимое, но не разрешимое множество
Множество
перечислимо, если существует функция
его порождающая, например,
- перечислимое.
.
Это разрешимое множество, т.к. для любого
числа можно определить является ли оно
кубом.
Доказательство:
Построим множество, которое будет перечислимым, но не разрешимым.
(идея доказательства).
эффективное перечисление всех перечислимых
множеств, по номеру множества можно
восстановить множество.
Построим алгоритм порождающий множество U.
На
шаге с номером С
этот алгоритм вычисляет (порождает)
m-ный элемент множества
.
Если
оказывается, что этот элемент совпадает
с n , то алгоритм относит
его к U, т.е.
.
Это множество U – перечислимо (по построению).
Его
дополнение
, т.е. состоит из элементов
.
Это значит, что множество
отличается от
хотя бы одним элементом. Это дополнение
нельзя перечислить, оно не разрешимо
(по Теореме 3).