- •1. Алгоритм и его характеристики
- •2. Вычислимые функции и их графики
- •3.Разрешимые и перечислимые множества. Критерий разрешимости множества
- •4.Рекурсивные функции и операторы. Примеры
- •5. Машина Тьюринга и её программа. Машина Тьюринга как алгоритм
- •6. Эффективная нумерация машин Тьюринга
- •7. Неразрешимые алгоритмические проблемы
- •8. Детерминированные конечные автоматы и их работа. Диаграмма и функция переходов. Расширенная функция переходов. Язык дка
- •9. Недетерминированные конечные автоматы и их работа. Диаграмма и отношение переходов. Язык нка
- •10. Недетерминированные конечные автоматы с ε-переходами и их работа. Язык ε-нка
- •11. Языки. Операции над языками
- •12. Регулярные выражения и их свойства. Язык регулярного выражения
- •13. Регулярные выражения и дка
- •14. Свойства регулярных языков. Лемма о накачке. Замкнутость регулярных языков
- •15. Контекстно-свободные грамматики, порождения цепочек, язык грамматики
- •16. Замкнутость и разрешимость кс-языков
- •17. Полезные, порождающие и достижимые символы кс – грамматики. Нормальная форма Хомского кс-грамматики
- •18. Приведение кс-грамматики (контекстно-свободной) к нфх - грамматике (нормальной форме Хомского)
- •19. Автоматы с магазинной памятью и их работа. Конфигурация мп-автомата и его язык, вычисление.
- •21. Эффективная нумерация машин Тьюринга. Язык диагонализации и универсальный язык. Эффективная нумерация машин Тьюринга
- •22. Рекурсивный и рекурсивно-перечислимые языки. Иерархия языков по Хомскому
- •23. Временная сложность машин Тьюринга. Классы p и np языков и связь между ними
16. Замкнутость и разрешимость кс-языков
КС-язык – язык построен по КС-грамматике
Замкнутость.
Опр. Язык грамматики – множество цепочек, которое порождается этой грамматикой из стартового состояния. Если язык задан некоторой контекстно-свободной грамматикой, то он называется контекстно-свободным языком (он может быть регулярным, но не в общем случае)
Теорема. КС языки замкнуты относительно объединения, конкатенации (конкатенация языков – язык, цепочки которого представляют собой конкатенацию цепочек этих языков (конкатенация – символ «·»,цепочки полученные с ее помощью имеют вид х·у=ху=а1а2…акb1…bl, то есть к символам цепочки х приписываем справа символы цепочки у, в общем случае операция не коммутативна (кроме хх=хх, хε=εх)), замыкания, гомоморфизма (язык, цепочки которого являются цепочки, гомоморфные цепочкам языка L), обрат. гомоморфизма, обращения языков (символы цепочки в обратном порядке - обратная цепочка, множество таких цепочек - обращение языка), но не замкнуты относительно пересечения языков.
Разрешимость.
Мы можем ответить на 2 вопроса:
1. Дан КСГ, пуст данный язык или нет?
2. Есть язык, цепочка из символов языка. Принадлежит ли цепочка языку?
Если у автомата все допустимые состояния изолированы, то его язык пуст. Если есть хотя бы один путь из начала в заключительное состояние, то язык не пуст. Строим автомат с магазинной памятью, пропускаем цепочку через данный автомат и смотрим на результаты. Если автомат ее допускает, значит, цепочка принадлежит языку, иначе – нет. Решение есть, если решение совершается за конечное число шагов, решение может быть длительным.
17. Полезные, порождающие и достижимые символы кс – грамматики. Нормальная форма Хомского кс-грамматики
Опр. КС – грамматика – G=(V,T,P,S)
V – множество переменных (переменные определяют язык – не терминалы, синтаксические категории)
Т – множество терминалов (элементы алфавита, из которого составляются цепочки определяемого данной грамматикой языка)
Р – множество правил вывода, конечное (продукции, каждая из них представляет рекурсивное определение языка. Продукция состоит из переменной, определяющей продукцию – головы продукции; символа продукции «→»; конечной цепочки, состоящей из терминалов и переменных – тело продукции = способ образования цепочек языка, определяемого переменной в голове)
S – стартовый символ
Опр. Символ х называется полезным в этой грамматике, если существует порождение следующего вида: S*=> αXβ *=> w, где w T* (терминальная цепочка) в данной грамматике.
Опр. Символ Х называется порождающим, если из него можно вывести терминальную цепочку Х =>w, w T*. Любой терминальный символ является порождающим
Опр. Символ Х называется достижимым, если существует порождение из стартового символа цепочек с этим символом Х. S=> αXβ для некоторых α,β.
Как связаны эти символы? Полезные являются и порождающими и достижимыми. Если из грамматики удалить непорождающие и недостижимые символы, то получим новую грамматику с полезными символами. Язык новой грамматики (с полезными символами) совпадает с языком исходной грамматики (с неиспользуемыми символами)
Опр. Грамматика G, не имеющая бесполезные символы, все продукции которой имеют один из следующих видов:
1). А → ВС, А, В, С – некоторые переменные; 2). А → а, а – терминал; называется грамматикой, имеющей нормальную форму Хомского (НФХ-грамматики). Все КСГ являются НФХ-грамматиками
Теорема: Если G – контекстно-свободная грамматика с непустым языком, то существует НФХ – грамматика G1 с языком: L(G1) = L(G) – {ε}, то есть практически совпадает с языком данной грамматики.