1. Вычислительная сложность формальных грамматик
Александр Охотин
Кафедра математики, университет Турку, Финляндия
25 сентября 2011 г. от Р. Х.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 1 / 31
2. Часть I
Назначение и математическое определение
грамматик
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 2 / 31
3. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
4. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
5. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
1 В математике, языках программирования, и т.д.:
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
6. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
1 В математике, языках программирования, и т.д.:
Число это выражение.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
7. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
1 В математике, языках программирования, и т.д.:
Число это выражение.
Если e и e выражения, то e + e , e ∗ e и (e) тоже выражения.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
8. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
1 В математике, языках программирования, и т.д.:
Число это выражение.
Если e и e выражения, то e + e , e ∗ e и (e) тоже выражения.
2 В естественных языках:
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
9. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
1 В математике, языках программирования, и т.д.:
Число это выражение.
Если e и e выражения, то e + e , e ∗ e и (e) тоже выражения.
2 В естественных языках:
Подлежащее и следующее за ним сказуемое образуют
предложение.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
10. Определение синтаксиса
Сложные данные передаются последовательностью символов.
Индуктивные определения правильных записей.
1 В математике, языках программирования, и т.д.:
Число это выражение.
Если e и e выражения, то e + e , e ∗ e и (e) тоже выражения.
2 В естественных языках:
Подлежащее и следующее за ним сказуемое образуют
предложение.
Прилагательное и существительное образуют подлежащее.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 3 / 31
11. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
12. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Σ: алфавит целевого языка (a,b,c,. . . )
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
13. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Σ: алфавит целевого языка (a,b,c,. . . )
N: вспомогательный символы для синтаксических понятий,
таких, как выражение или подлежащее.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
14. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Σ: алфавит целевого языка (a,b,c,. . . )
N: вспомогательный символы для синтаксических понятий,
таких, как выражение или подлежащее.
Всякая строка w ∈ Σ∗ может иметь или не иметь
каждое свойство A ∈ N.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
15. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Σ: алфавит целевого языка (a,b,c,. . . )
N: вспомогательный символы для синтаксических понятий,
таких, как выражение или подлежащее.
Всякая строка w ∈ Σ∗ может иметь или не иметь
каждое свойство A ∈ N.
R: множество правил вида
A → X1 . . . X (A ∈ N, 0, Xi ∈ Σ ∪ N)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
16. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Σ: алфавит целевого языка (a,b,c,. . . )
N: вспомогательный символы для синтаксических понятий,
таких, как выражение или подлежащее.
Всякая строка w ∈ Σ∗ может иметь или не иметь
каждое свойство A ∈ N.
R: множество правил вида
A → X1 . . . X (A ∈ N, 0, Xi ∈ Σ ∪ N)
S ∈ N: множество правильных предложений.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
17. Формальная запись для таких описаний
Четвёрка G = (Σ, N, R, S), где
Σ: алфавит целевого языка (a,b,c,. . . )
N: вспомогательный символы для синтаксических понятий,
таких, как выражение или подлежащее.
Всякая строка w ∈ Σ∗ может иметь или не иметь
каждое свойство A ∈ N.
R: множество правил вида
A → X1 . . . X (A ∈ N, 0, Xi ∈ Σ ∪ N)
S ∈ N: множество правильных предложений.
Если w ∈ Σ∗ представима, как X1 · . . . · X , то w имеет свойство A.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 4 / 31
18. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
19. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
20. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
21. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Example: S → aSb | ε
[a, a] (аксиома)
[b, b] (аксиома)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
22. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Example: S → aSb | ε
[a, a] (аксиома)
[b, b] (аксиома)
[S, ε] (S → ε)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
23. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Example: S → aSb | ε
[a, a] (аксиома)
[b, b] (аксиома)
[S, ε] (S → ε)
[a, a], [S, ε], [b, b] [S, ab] (S → aSb)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
24. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Example: S → aSb | ε
[a, a] (аксиома)
[b, b] (аксиома)
[S, ε] (S → ε)
[a, a], [S, ε], [b, b] [S, ab] (S → aSb)
[a, a], [S, ab], [b, b] [S, aabb] (S → aSb)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
25. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Example: S → aSb | ε
[a, a] (аксиома)
[b, b] (аксиома)
[S, ε] (S → ε)
[a, a], [S, ε], [b, b] [S, ab] (S → aSb)
[a, a], [S, ab], [b, b] [S, aabb] (S → aSb)
Pro: Это истинный смысл грамматик.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
26. Определение через дедукцию
Утверждения вида “w имеет свойство X ”,
где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
Аксиомы: [a, a] для всех a ∈ Σ.
Правила вывода:
[X1 , w1 ], . . . , [Xk , wk ] [A, w1 . . . wk ] (A → X1 . . . Xk ∈ R, wi ∈ Σ∗ )
Example: S → aSb | ε
[a, a] (аксиома)
[b, b] (аксиома)
[S, ε] (S → ε)
[a, a], [S, ε], [b, b] [S, ab] (S → aSb)
[a, a], [S, ab], [b, b] [S, aabb] (S → aSb)
Pro: Это истинный смысл грамматик.
Contra: Не столь удобно в использовании.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 5 / 31
27. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
28. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Система уравнений
A= X1 · . . . · X (для всех A ∈ N),
A→X1 ...X ∈R
где Xj = a ∈ Σ постоянный язык {a}.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
29. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Система уравнений
A= X1 · . . . · X (для всех A ∈ N),
A→X1 ...X ∈R
где Xj = a ∈ Σ постоянный язык {a}.
Всегда имеет решение, и среди них есть наименьшее.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
30. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Система уравнений
A= X1 · . . . · X (для всех A ∈ N),
A→X1 ...X ∈R
где Xj = a ∈ Σ постоянный язык {a}.
Всегда имеет решение, и среди них есть наименьшее.
Записывает счётное множество шагов дедукции одновременно.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
31. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Система уравнений
A= X1 · . . . · X (для всех A ∈ N),
A→X1 ...X ∈R
где Xj = a ∈ Σ постоянный язык {a}.
Всегда имеет решение, и среди них есть наименьшее.
Записывает счётное множество шагов дедукции одновременно.
Example: S → aSb | ε
S = {a}S{b} ∪ {ε}, единственное решение S = {an bn | n 0}.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
32. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Система уравнений
A= X1 · . . . · X (для всех A ∈ N),
A→X1 ...X ∈R
где Xj = a ∈ Σ постоянный язык {a}.
Всегда имеет решение, и среди них есть наименьшее.
Записывает счётное множество шагов дедукции одновременно.
Example: S → aSb | ε
S = {a}S{b} ∪ {ε}, единственное решение S = {an bn | n 0}.
Pro: Легко проверить решение.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
33. Определение через языковые уравнения
Всякий A ∈ N: неизвестный язык над Σ.
Множество строк w ∈ Σ∗ , имеющих свойство A.
Система уравнений
A= X1 · . . . · X (для всех A ∈ N),
A→X1 ...X ∈R
где Xj = a ∈ Σ постоянный язык {a}.
Всегда имеет решение, и среди них есть наименьшее.
Записывает счётное множество шагов дедукции одновременно.
Example: S → aSb | ε
S = {a}S{b} ∪ {ε}, единственное решение S = {an bn | n 0}.
Pro: Легко проверить решение.
Contra: Трудно получить непринадлежность наименьшему
решению.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 6 / 31
34. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
35. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
36. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Правила как правила перезаписи:
µAν =⇒ µαν (A → α ∈ R)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
37. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Правила как правила перезаписи:
µAν =⇒ µαν (A → α ∈ R)
w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
38. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Правила как правила перезаписи:
µAν =⇒ µαν (A → α ∈ R)
w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
a ∈ Σ: “терминальные символы”,
A ∈ N: “нетерминальные символы”.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
39. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Правила как правила перезаписи:
µAν =⇒ µαν (A → α ∈ R)
w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
a ∈ Σ: “терминальные символы”,
A ∈ N: “нетерминальные символы”.
Example: S → aSb | ε
S =⇒ aSb =⇒ aaSbb =⇒ aabb
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
40. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Правила как правила перезаписи:
µAν =⇒ µαν (A → α ∈ R)
w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
a ∈ Σ: “терминальные символы”,
A ∈ N: “нетерминальные символы”.
Example: S → aSb | ε
S =⇒ aSb =⇒ aaSbb =⇒ aabb
Pro: Просто, можно преподавать даже школьникам.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
41. Определение через перезапись строк
Н. Хомский, “О некоторых формальных свойствах грамматик”
(1959).
Перезапись строк над (Σ ∪ N)∗ .
Правила как правила перезаписи:
µAν =⇒ µαν (A → α ∈ R)
w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
a ∈ Σ: “терминальные символы”,
A ∈ N: “нетерминальные символы”.
Example: S → aSb | ε
S =⇒ aSb =⇒ aaSbb =⇒ aabb
Pro: Просто, можно преподавать даже школьникам.
Contra: Не передаёт истинный смысл грамматик.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 7 / 31
42. Часть II
Разновидности грамматик
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 8 / 31
43. Булевы действия в грамматиках
S → aSb | ε
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
44. Булевы действия в грамматиках
S → aSb | ε
w имеет свойство S
w = aub, где u имеет свойство S
∨
w =ε
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
45. Булевы действия в грамматиках
S → aSb | ε
w имеет свойство S
w = aub, где u имеет свойство S
∨
w =ε
Несколько правил для одного символа: дизъюнкция.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
46. Булевы действия в грамматиках
S → aSb | ε
w имеет свойство S
w = aub, где u имеет свойство S
∨
w =ε
Несколько правил для одного символа: дизъюнкция.
“w удовлетворяет условию A или условию B”
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
47. Булевы действия в грамматиках
S → aSb | ε
w имеет свойство S
w = aub, где u имеет свойство S
∨
w =ε
Несколько правил для одного символа: дизъюнкция.
“w удовлетворяет условию A или условию B”
Где конъюнкция и отрицание?
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
48. Булевы действия в грамматиках
S → aSb | ε
w имеет свойство S
w = aub, где u имеет свойство S
∨
w =ε
Несколько правил для одного символа: дизъюнкция.
“w удовлетворяет условию A или условию B”
Где конъюнкция и отрицание?
“w удовлетворяет обоим условиям A и B”
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
49. Булевы действия в грамматиках
S → aSb | ε
w имеет свойство S
w = aub, где u имеет свойство S
∨
w =ε
Несколько правил для одного символа: дизъюнкция.
“w удовлетворяет условию A или условию B”
Где конъюнкция и отрицание?
“w удовлетворяет обоим условиям A и B”
“w удовлетворяет A, но не B”
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 9 / 31
50. Конъюнктивные грамматики (Охотин, 2000)
Правила вида
A → α1 & . . . &αm (α1 , . . . , αm ∈ (Σ ∪ N)∗ )
“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 10 / 31
51. Конъюнктивные грамматики (Охотин, 2000)
Правила вида
A → α1 & . . . &αm (α1 , . . . , αm ∈ (Σ ∪ N)∗ )
“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”
Определение через дедукцию утверждений [A, w ].
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 10 / 31
52. Конъюнктивные грамматики (Охотин, 2000)
Правила вида
A → α1 & . . . &αm (α1 , . . . , αm ∈ (Σ ∪ N)∗ )
“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”
Определение через дедукцию утверждений [A, w ].
Определение через языковые уравнения.
m
A= αi
A→α1 &...&αm ∈R i=1
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 10 / 31
53. Конъюнктивные грамматики (Охотин, 2000)
Правила вида
A → α1 & . . . &αm (α1 , . . . , αm ∈ (Σ ∪ N)∗ )
“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”
Определение через дедукцию утверждений [A, w ].
Определение через языковые уравнения.
m
A= αi
A→α1 &...&αm ∈R i=1
Определение через перезапись термов.
sAs =⇒ s(α1 & . . . &αm )s =⇒ . . . =⇒ s(w & . . . &w )s =⇒ sws
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 10 / 31
54. Конъюнктивные грамматики (Охотин, 2000)
Правила вида
A → α1 & . . . &αm (α1 , . . . , αm ∈ (Σ ∪ N)∗ )
“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”
Определение через дедукцию утверждений [A, w ].
Определение через языковые уравнения.
m
A= αi
A→α1 &...&αm ∈R i=1
Определение через перезапись термов.
sAs =⇒ s(α1 & . . . &αm )s =⇒ . . . =⇒ s(w & . . . &w )s =⇒ sws
n
Могут задать {an bn c n | n 0}, {wcw | w ∈ Σ∗ }, {a4 | n 0}, и т.д.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 10 / 31
55. Булевы грамматики (Охотин, 2003)
Правила вида
A → α1 & . . . &αm &¬β1 & . . . &¬βn
“Если w представимо в виде α1 , . . . , αm и непредставимо в виде β1 ,
. . . , βn , то w имеет свойство A”.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 11 / 31
56. Булевы грамматики (Охотин, 2003)
Правила вида
A → α1 & . . . &αm &¬β1 & . . . &¬βn
“Если w представимо в виде α1 , . . . , αm и непредставимо в виде β1 ,
. . . , βn , то w имеет свойство A”.
Можно выразить противоречие: S → ¬S.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 11 / 31
57. Булевы грамматики (Охотин, 2003)
Правила вида
A → α1 & . . . &αm &¬β1 & . . . &¬βn
“Если w представимо в виде α1 , . . . , αm и непредставимо в виде β1 ,
. . . , βn , то w имеет свойство A”.
Можно выразить противоречие: S → ¬S.
Определение через языковые уравнения.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 11 / 31
58. Краткий обзор грамматик
Индуктивное определение.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 12 / 31
60. Краткий обзор грамматик
Индуктивное определение.
Длинные строки получаются сцеплением коротких.
Сцепления образуют дерево разбора.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 12 / 31
61. Краткий обзор грамматик
Индуктивное определение.
Длинные строки получаются сцеплением коротких.
Сцепления образуют дерево разбора.
Строка длины n зависит от n2 её подстрок.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 12 / 31
62. Краткий обзор грамматик
Индуктивное определение.
Длинные строки получаются сцеплением коротких.
Сцепления образуют дерево разбора.
Строка длины n зависит от n2 её подстрок.
1 Логика для определения синтаксиса.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 12 / 31
63. Краткий обзор грамматик
Индуктивное определение.
Длинные строки получаются сцеплением коротких.
Сцепления образуют дерево разбора.
Строка длины n зависит от n2 её подстрок.
1 Логика для определения синтаксиса.
2 Обыкновенная бесконтекстная грамматика дизъюнктивный
фрагмент.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 12 / 31
64. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
65. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
66. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
67. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
68. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Для всякого сцепления BC в правилах,
w ∈ L(B)L(C ) =⇒ ∃! разбиение.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
69. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Для всякого сцепления BC в правилах,
w ∈ L(B)L(C ) =⇒ ∃! разбиение.
3 Детерминированные или LR(k) грамматики:
правило/разбиение можно определить, читая слева направо.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
70. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Для всякого сцепления BC в правилах,
w ∈ L(B)L(C ) =⇒ ∃! разбиение.
3 Детерминированные или LR(k) грамматики:
правило/разбиение можно определить, читая слева направо.
4 LL(k) грамматики: можно определить, начиная читать подстроку.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
71. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Для всякого сцепления BC в правилах,
w ∈ L(B)L(C ) =⇒ ∃! разбиение.
3 Детерминированные или LR(k) грамматики:
правило/разбиение можно определить, читая слева направо.
4 LL(k) грамматики: можно определить, начиная читать подстроку.
5 Грамматики, управлямые входом (input-driven;
также “visibly pushdown” на ломаном английском):
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
72. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Для всякого сцепления BC в правилах,
w ∈ L(B)L(C ) =⇒ ∃! разбиение.
3 Детерминированные или LR(k) грамматики:
правило/разбиение можно определить, читая слева направо.
4 LL(k) грамматики: можно определить, начиная читать подстроку.
5 Грамматики, управлямые входом (input-driven;
также “visibly pushdown” на ломаном английском):
Алфавит Σ+1 ∪ Σ0 ∪ Σ−1 .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
73. Важные особые случаи грамматик
1 Линейные грамматики: правила вида A → uBv и A → w , где
u, v , w ∈ Σ∗ .
A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
2 Однозначные грамматики:
Правила A → A1 | . . . | An порождают непересекающиеся языки.
Для всякого сцепления BC в правилах,
w ∈ L(B)L(C ) =⇒ ∃! разбиение.
3 Детерминированные или LR(k) грамматики:
правило/разбиение можно определить, читая слева направо.
4 LL(k) грамматики: можно определить, начиная читать подстроку.
5 Грамматики, управлямые входом (input-driven;
также “visibly pushdown” на ломаном английском):
Алфавит Σ+1 ∪ Σ0 ∪ Σ−1 .
Правила A → aDbE (a ∈ Σ+1 , b ∈ Σ−1 ), A → cD (c ∈ Σ0 ), A → ε.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 13 / 31
74. Классификация формальных грамматик
Общего вида однозначные детерминированные (LR)
сильно детерминированные (LL).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 14 / 31
75. Классификация формальных грамматик
Общего вида однозначные детерминированные (LR)
сильно детерминированные (LL).
Oбщего вида с линейным сцеплением управляемые входом.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 14 / 31
76. Классификация формальных грамматик
Общего вида однозначные детерминированные (LR)
сильно детерминированные (LL).
Oбщего вида с линейным сцеплением управляемые входом.
Булевы действия: {∨, ∧, ¬} {∨, ∧} {∨}.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 14 / 31
77. Классификация формальных грамматик
Общего вида однозначные детерминированные (LR)
сильно детерминированные (LL).
Oбщего вида с линейным сцеплением управляемые входом.
Булевы действия: {∨, ∧, ¬} {∨, ∧} {∨}.
***
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 14 / 31
78. Часть III
Сложность языков
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 15 / 31
79. Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 16 / 31
80. Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.
O(n) O(nω)
O(n2)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 16 / 31
81. Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.
O(n) O(nω)
O(n2)
Булевы грамматики общего вида: за время O(BMM(n) log n)
(Валиант, 1975; Охотин, 2010).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 16 / 31
82. Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.
O(n) O(nω)
O(n2)
Булевы грамматики общего вида: за время O(BMM(n) log n)
(Валиант, 1975; Охотин, 2010).
Однозначные грамматики: за время O(n2 )
(Касами и Тории, 1967; Охотин, 2008).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 16 / 31
83. Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.
O(n) O(nω)
O(n2)
Булевы грамматики общего вида: за время O(BMM(n) log n)
(Валиант, 1975; Охотин, 2010).
Однозначные грамматики: за время O(n2 )
(Касами и Тории, 1967; Охотин, 2008).
LR(k)-грамматики (DetCF): за время O(n) (Кнут, 1965).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 16 / 31
84. NL-полнота линейных бесконтекстных грамматик
NL = NSPACE(log n); NL-полная задача: достижимость в графе.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 17 / 31
85. NL-полнота линейных бесконтекстных грамматик
NL = NSPACE(log n); NL-полная задача: достижимость в графе.
Теорема (Сэдборо, 1975)
1 LinCF ⊆ NL,
2 LinCF содержит NL-полный язык.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 17 / 31
86. NL-полнота линейных бесконтекстных грамматик
NL = NSPACE(log n); NL-полная задача: достижимость в графе.
Теорема (Сэдборо, 1975)
1 LinCF ⊆ NL,
2 LinCF содержит NL-полный язык.
Правила A → uBv , разбор угадывается с двух концов.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 17 / 31
87. NL-полнота линейных бесконтекстных грамматик
NL = NSPACE(log n); NL-полная задача: достижимость в графе.
Теорема (Сэдборо, 1975)
1 LinCF ⊆ NL,
2 LinCF содержит NL-полный язык.
Правила A → uBv , разбор угадывается с двух концов.
Построение NL-полного языка: f {w $w R | w ∈ {a, b}} , где:
f (L) = [w1,1 # . . . #w1, 1 ] . . . [wk,1 # . . . #wk, k ]
∃i1 , . . . , ik : w1,i1 . . . wk,ik ∈ L
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 17 / 31
88. NL-полнота линейных бесконтекстных грамматик
NL = NSPACE(log n); NL-полная задача: достижимость в графе.
Теорема (Сэдборо, 1975)
1 LinCF ⊆ NL,
2 LinCF содержит NL-полный язык.
Правила A → uBv , разбор угадывается с двух концов.
Построение NL-полного языка: f {w $w R | w ∈ {a, b}} , где:
f (L) = [w1,1 # . . . #w1, 1 ] . . . [wk,1 # . . . #wk, k ]
∃i1 , . . . , ik : w1,i1 . . . wk,ik ∈ L
Кодирование достижимости в графе:
[a1 b]
[#a1 bat1,1 b# . . . #a1 bat1,m1 b] . . .
[an b$] [#ban ban ] . . . [#ba1 ba1 ]
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 17 / 31
89. L-полнота линейных детерминированных грамматик
L = DSPACE(log n);
L-полная задача: достижимость в графе со степенью исхода 1.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 18 / 31
90. L-полнота линейных детерминированных грамматик
L = DSPACE(log n);
L-полная задача: достижимость в графе со степенью исхода 1.
DetLinCF : линейные LR(1) грамматики.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 18 / 31
91. L-полнота линейных детерминированных грамматик
L = DSPACE(log n);
L-полная задача: достижимость в графе со степенью исхода 1.
DetLinCF : линейные LR(1) грамматики.
Теорема (Хольцер, Ланге, 1993)
1 DetLinCF ⊆ L,
2 DetLinCF содержит L-полный язык.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 18 / 31
92. L-полнота линейных детерминированных грамматик
L = DSPACE(log n);
L-полная задача: достижимость в графе со степенью исхода 1.
DetLinCF : линейные LR(1) грамматики.
Теорема (Хольцер, Ланге, 1993)
1 DetLinCF ⊆ L,
2 DetLinCF содержит L-полный язык.
Уточнение предыдущего доказательства.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 18 / 31
93. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
94. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
95. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
96. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
2 yA,i,j;D,k, &xD,k, → xA,i,j .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
97. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
2 yA,i,j;D,k, &xD,k, → xA,i,j .
3 yA,i,j;E ,s,t &yE ,s,t;D,k, → yA,i,j;D,k, .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
98. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
2 yA,i,j;D,k, &xD,k, → xA,i,j .
3 yA,i,j;E ,s,t &yE ,s,t;D,k, → yA,i,j;D,k, .
Удвоение длины строки.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
99. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
2 yA,i,j;D,k, &xD,k, → xA,i,j .
3 yA,i,j;E ,s,t &yE ,s,t;D,k, → yA,i,j;D,k, .
Удвоение длины строки.
Высота O(log2 n), O(n6 ) элементов.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
100. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
2 yA,i,j;D,k, &xD,k, → xA,i,j .
3 yA,i,j;E ,s,t &yE ,s,t;D,k, → yA,i,j;D,k, .
Удвоение длины строки.
Высота O(log2 n), O(n6 ) элементов.
Можно улучшить до O(BMM(n2 )) элементов.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
101. Разбор обыкновенных бесконтекстных грамматик в NC2
NC2 : схемы высоты O(log2 n) с nO(1) элементов.
Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .
Основные элементы: xA,i,j (ai+1 . . . aj ∈ LG (A)),
yA,i,j;D,k, (если ak+1 . . . a ∈ LG (D), то ai+1 . . . aj ∈ LG (A)).
1 xB,i,k &xC ,k,j → xA,i,j (для правила A → BC )
2 yA,i,j;D,k, &xD,k, → xA,i,j .
3 yA,i,j;E ,s,t &yE ,s,t;D,k, → yA,i,j;D,k, .
Удвоение длины строки.
Высота O(log2 n), O(n6 ) элементов.
Можно улучшить до O(BMM(n2 )) элементов.
NC2 ⊆ DSPACE(log2 n) = DTIMESPACE(nlog n , log2 n)
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 19 / 31
103. P-полнота булевых грамматик
P= k)
k 0 DTIME(n
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
104. P-полнота булевых грамматик
P = k 0 DTIME(nk )
P-полная задача: значение булевой схемы.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
105. P-полнота булевых грамматик
P = k 0 DTIME(nk )
P-полная задача: значение булевой схемы.
Теорема (Ибарра и Ким, 1984; Охотин, 2003)
1 Bool ⊆ P,
2 LinConj содержит P-полный язык. (покажем для Bool )
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
106. P-полнота булевых грамматик
P = k 0 DTIME(nk )
P-полная задача: значение булевой схемы.
Теорема (Ибарра и Ким, 1984; Охотин, 2003)
1 Bool ⊆ P,
2 LinConj содержит P-полный язык. (покажем для Bool )
Принадлежность P: обычным алгоритмом разбора.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
107. P-полнота булевых грамматик
P = k 0 DTIME(nk )
P-полная задача: значение булевой схемы.
Теорема (Ибарра и Ким, 1984; Охотин, 2003)
1 Bool ⊆ P,
2 LinConj содержит P-полный язык. (покажем для Bool )
Принадлежность P: обычным алгоритмом разбора.
Построение P-полного языка: CVP с элементом xi = ¬xi−1 ∧ ¬xji .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
108. P-полнота булевых грамматик
P = k 0 DTIME(nk )
P-полная задача: значение булевой схемы.
Теорема (Ибарра и Ким, 1984; Охотин, 2003)
1 Bool ⊆ P,
2 LinConj содержит P-полный язык. (покажем для Bool )
Принадлежность P: обычным алгоритмом разбора.
Построение P-полного языка: CVP с элементом xi = ¬xi−1 ∧ ¬xji .
Схема представляется строкой
an−1−jn b an−2−jn−1 b . . . a2−j3 b a1−j2 b.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
109. P-полнота булевых грамматик
P = k 0 DTIME(nk )
P-полная задача: значение булевой схемы.
Теорема (Ибарра и Ким, 1984; Охотин, 2003)
1 Bool ⊆ P,
2 LinConj содержит P-полный язык. (покажем для Bool )
Принадлежность P: обычным алгоритмом разбора.
Построение P-полного языка: CVP с элементом xi = ¬xi−1 ∧ ¬xji .
Схема представляется строкой
an−1−jn b an−2−jn−1 b . . . a2−j3 b a1−j2 b.
S → ¬AbS&¬CS
Грамматика: A → aA | ε
C → aCAb | b
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 21 / 31
110. Сравнение семейств языков
NC1 ⊆ L ⊆ UL ⊆ NL ⊆ NC2 ⊆ . . . ⊆ NCk ⊆ . . . ⊆ P
SC2
LLCF DetCF UnambCF CF
NC2
L Conj Bool
?
Reg LLLinCF DetLinCF UnambLinCF LinCF ? ?
?
UL NL
UnambConj UnambBool
IDPDA LinConj P
NC1
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 22 / 31
111. Часть IV
Проверка свойств данной грамматики
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 23 / 31
112. Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 24 / 31
113. Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).
Задача пустоты для семейства грамматик G
Для данной грамматики G ∈ G, определить, пуст ли язык L(G ).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 24 / 31
114. Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).
Задача пустоты для семейства грамматик G
Для данной грамматики G ∈ G, определить, пуст ли язык L(G ).
Задача равенства регулярному языку для G
Для данной грамматики G ∈ G и для данного (или фиксированного)
L0 ∈ Reg , определить, совпадает ли L(G ) с L0 .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 24 / 31
115. Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).
Задача пустоты для семейства грамматик G
Для данной грамматики G ∈ G, определить, пуст ли язык L(G ).
Задача равенства регулярному языку для G
Для данной грамматики G ∈ G и для данного (или фиксированного)
L0 ∈ Reg , определить, совпадает ли L(G ) с L0 .
Задача равенства (включения) для G
Для данных грамматик G1 , G2 ∈ G, определить, верно ли, что
L(G1 ) = L(G2 ) (L(G1 ) ⊆ L(G2 ), соответственно).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 24 / 31
116. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
117. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
118. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Было: элемент xi ; стало: Ai ∈ N.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
119. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Было: элемент xi ; стало: Ai ∈ N.
Было: xi = 1; стало: Ai → ε.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
120. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Было: элемент xi ; стало: Ai ∈ N.
Было: xi = 1; стало: Ai → ε.
Было: xi = xj ∨ xk ; стало: Ai → Aj | Ak .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
121. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Было: элемент xi ; стало: Ai ∈ N.
Было: xi = 1; стало: Ai → ε.
Было: xi = xj ∨ xk ; стало: Ai → Aj | Ak .
Было: xi = xj ∧ xk ; стало: Ai → Aj Ak .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
122. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Было: элемент xi ; стало: Ai ∈ N.
Было: xi = 1; стало: Ai → ε.
Было: xi = xj ∨ xk ; стало: Ai → Aj | Ak .
Было: xi = xj ∧ xk ; стало: Ai → Aj Ak .
Грамматика может оказаться неоднозначной.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
123. Общая задача принадлежности
Теорема
1 Общая задача принадлежности для Bool принадлежит P.
2 Она P-полна уже для LLCF и для строки ε.
Принадлежность P: обычным алгоритмом разбора.
P-полнота для CF : сведением MCVP (значение монотонной
схемы).
Было: элемент xi ; стало: Ai ∈ N.
Было: xi = 1; стало: Ai → ε.
Было: xi = xj ∨ xk ; стало: Ai → Aj | Ak .
Было: xi = xj ∧ xk ; стало: Ai → Aj Ak .
Грамматика может оказаться неоднозначной.
Построение LL(1) грамматики: прямым кодированием машины
Тьюринга.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 25 / 31
124. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
125. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
126. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
127. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
128. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
129. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
130. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
131. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
A = BC ∪ aDb ∪ {ε} fA (x) =
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
132. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
A = BC ∪ aDb ∪ {ε} fA (x) = fB (x)fC (x) +
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
133. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
A = BC ∪ aDb ∪ {ε} fA (x) = fB (x)fC (x) + x 2 fD (x) +
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
134. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
A = BC ∪ aDb ∪ {ε} fA (x) = fB (x)fC (x) + x 2 fD (x) + 1
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
135. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
A = BC ∪ aDb ∪ {ε} fA (x) = fB (x)fC (x) + x 2 fD (x) + 1
Решение алгебраическая функция; раскладывается в ряд.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
136. UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .
Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
L
an : количество строк длины n в языке L.
an ∪L an + an ; если K ∩ L = ∅, то an ∪L = an + an .
K K L K K L
Если сцепление K · L однозначно, то an = n aiK · an−i .
KL
i=0
L
∞
Формальный степенной ряд: fL (x) = an x n .
L
n=0
Языковые уравнения → функциональные уравнения.
A = BC ∪ aDb ∪ {ε} fA (x) = fB (x)fC (x) + x 2 fD (x) + 1
Решение алгебраическая функция; раскладывается в ряд.
Использовать разрешимость элементарного анализа.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 26 / 31
137. DetCF: проверка на равенство
Даны две LR(k) грамматики G1 , G2 ;
определить, равны ли L(G1 ) и L(G2 ).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 27 / 31
138. DetCF: проверка на равенство
Даны две LR(k) грамматики G1 , G2 ;
определить, равны ли L(G1 ) и L(G2 ).
Детерминированные магазинные автоматы (DPDA).
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 27 / 31
139. DetCF: проверка на равенство
Даны две LR(k) грамматики G1 , G2 ;
определить, равны ли L(G1 ) и L(G2 ).
Детерминированные магазинные автоматы (DPDA).
Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 27 / 31
140. DetCF: проверка на равенство
Даны две LR(k) грамматики G1 , G2 ;
определить, равны ли L(G1 ) и L(G2 ).
Детерминированные магазинные автоматы (DPDA).
Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.
Теорема (Валиант, 1974)
Задача равенства двух DetLinCF языков разрешима.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 27 / 31
141. DetCF: проверка на равенство
Даны две LR(k) грамматики G1 , G2 ;
определить, равны ли L(G1 ) и L(G2 ).
Детерминированные магазинные автоматы (DPDA).
Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.
Теорема (Валиант, 1974)
Задача равенства двух DetLinCF языков разрешима.
По двум DPDA строится третий, распознающий их различия.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 27 / 31
142. DetCF: проверка на равенство
Даны две LR(k) грамматики G1 , G2 ;
определить, равны ли L(G1 ) и L(G2 ).
Детерминированные магазинные автоматы (DPDA).
Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.
Теорема (Валиант, 1974)
Задача равенства двух DetLinCF языков разрешима.
По двум DPDA строится третий, распознающий их различия.
Теорема (Сенизерг, 1997)
Задача равенства двух DetCF языков разрешима.
Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 27 / 31