SlideShare una empresa de Scribd logo
1 de 165
Descargar para leer sin conexión
Вычислительная сложность формальных грамматик

                                Александр Охотин

                   Кафедра математики, университет Турку, Финляндия


                           25 сентября 2011 г. от Р. Х.




Александр Охотин             Сложность формальных грамматик      CS клуб ПОМИ   1 / 31
Часть I

        Назначение и математическое определение
                      грамматик




Александр Охотин   Сложность формальных грамматик   CS клуб ПОМИ   2 / 31
Определение синтаксиса


    Сложные данные передаются последовательностью символов.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


    Сложные данные передаются последовательностью символов.
    Индуктивные определения правильных записей.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


     Сложные данные передаются последовательностью символов.
     Индуктивные определения правильных записей.

 1   В математике, языках программирования, и т.д.:




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


     Сложные данные передаются последовательностью символов.
     Индуктивные определения правильных записей.

 1   В математике, языках программирования, и т.д.:
          Число     это выражение.




 Александр Охотин         Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


     Сложные данные передаются последовательностью символов.
     Индуктивные определения правильных записей.

 1   В математике, языках программирования, и т.д.:
          Число это выражение.
          Если e и e выражения, то e + e , e ∗ e и (e)    тоже выражения.




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


     Сложные данные передаются последовательностью символов.
     Индуктивные определения правильных записей.

 1   В математике, языках программирования, и т.д.:
          Число это выражение.
          Если e и e выражения, то e + e , e ∗ e и (e)    тоже выражения.
 2   В естественных языках:




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


     Сложные данные передаются последовательностью символов.
     Индуктивные определения правильных записей.

 1   В математике, языках программирования, и т.д.:
          Число это выражение.
          Если e и e выражения, то e + e , e ∗ e и (e)    тоже выражения.
 2   В естественных языках:
          Подлежащее и следующее за ним сказуемое образуют
          предложение.




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Определение синтаксиса


     Сложные данные передаются последовательностью символов.
     Индуктивные определения правильных записей.

 1   В математике, языках программирования, и т.д.:
          Число это выражение.
          Если e и e выражения, то e + e , e ∗ e и (e)    тоже выражения.
 2   В естественных языках:
          Подлежащее и следующее за ним сказуемое образуют
          предложение.
          Прилагательное и существительное образуют подлежащее.




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   3 / 31
Формальная запись для таких описаний

Четвёрка G = (Σ, N, R, S), где




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   4 / 31
Формальная запись для таких описаний

Четвёрка G = (Σ, N, R, S), где
           Σ: алфавит целевого языка (a,b,c,. . . )




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   4 / 31
Формальная запись для таких описаний

Четвёрка G = (Σ, N, R, S), где
           Σ: алфавит целевого языка (a,b,c,. . . )
          N: вспомогательный символы для синтаксических понятий,
             таких, как выражение или подлежащее.




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   4 / 31
Формальная запись для таких описаний

Четвёрка G = (Σ, N, R, S), где
           Σ: алфавит целевого языка (a,b,c,. . . )
          N: вспомогательный символы для синтаксических понятий,
             таких, как выражение или подлежащее.
                 Всякая строка w ∈ Σ∗ может иметь или не иметь
                 каждое свойство A ∈ N.




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   4 / 31
Формальная запись для таких описаний

Четвёрка G = (Σ, N, R, S), где
           Σ: алфавит целевого языка (a,b,c,. . . )
          N: вспомогательный символы для синтаксических понятий,
             таких, как выражение или подлежащее.
                 Всякая строка w ∈ Σ∗ может иметь или не иметь
                 каждое свойство A ∈ N.
           R: множество правил вида

                      A → X1 . . . X     (A ∈ N,          0, Xi ∈ Σ ∪ N)




 Александр Охотин        Сложность формальных грамматик        CS клуб ПОМИ   4 / 31
Формальная запись для таких описаний

Четвёрка 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
Формальная запись для таких описаний

Четвёрка 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
Определение через дедукцию
    Утверждения вида “w имеет свойство X ”,
    где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   5 / 31
Определение через дедукцию
    Утверждения вида “w имеет свойство X ”,
    где w ∈ Σ∗ и X ∈ Σ ∪ N. Обозначение: [X , w ].
    Аксиомы: [a, a] для всех a ∈ Σ.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   5 / 31
Определение через дедукцию
    Утверждения вида “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
Определение через дедукцию
    Утверждения вида “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
Определение через дедукцию
    Утверждения вида “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
Определение через дедукцию
    Утверждения вида “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
Определение через дедукцию
    Утверждения вида “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
Определение через дедукцию
    Утверждения вида “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
Определение через дедукцию
    Утверждения вида “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
Определение через языковые уравнения
    Всякий A ∈ N: неизвестный язык над Σ.
          Множество строк w ∈ Σ∗ , имеющих свойство A.




 Александр Охотин       Сложность формальных грамматик   CS клуб ПОМИ   6 / 31
Определение через языковые уравнения
    Всякий A ∈ N: неизвестный язык над Σ.
          Множество строк w ∈ Σ∗ , имеющих свойство A.
    Система уравнений

                    A=                  X1 · . . . · X   (для всех A ∈ N),
                         A→X1 ...X ∈R

    где Xj = a ∈ Σ          постоянный язык {a}.




 Александр Охотин             Сложность формальных грамматик        CS клуб ПОМИ   6 / 31
Определение через языковые уравнения
    Всякий A ∈ N: неизвестный язык над Σ.
          Множество строк w ∈ Σ∗ , имеющих свойство A.
    Система уравнений

                    A=                  X1 · . . . · X   (для всех A ∈ N),
                         A→X1 ...X ∈R

    где Xj = a ∈ Σ постоянный язык {a}.
    Всегда имеет решение, и среди них есть наименьшее.




 Александр Охотин             Сложность формальных грамматик        CS клуб ПОМИ   6 / 31
Определение через языковые уравнения
    Всякий A ∈ N: неизвестный язык над Σ.
          Множество строк w ∈ Σ∗ , имеющих свойство A.
    Система уравнений

                    A=                  X1 · . . . · X   (для всех A ∈ N),
                         A→X1 ...X ∈R

    где Xj = a ∈ Σ постоянный язык {a}.
    Всегда имеет решение, и среди них есть наименьшее.
    Записывает счётное множество шагов дедукции одновременно.




 Александр Охотин             Сложность формальных грамматик        CS клуб ПОМИ   6 / 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
Определение через языковые уравнения
    Всякий 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
Определение через языковые уравнения
    Всякий 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
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).
    Перезапись строк над (Σ ∪ N)∗ .




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).
    Перезапись строк над (Σ ∪ N)∗ .
    Правила как правила перезаписи:

                     µAν =⇒ µαν         (A → α ∈ R)




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).
    Перезапись строк над (Σ ∪ N)∗ .
    Правила как правила перезаписи:

                      µAν =⇒ µαν         (A → α ∈ R)

    w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).
    Перезапись строк над (Σ ∪ N)∗ .
    Правила как правила перезаписи:

                      µAν =⇒ µαν         (A → α ∈ R)

    w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
    a ∈ Σ: “терминальные символы”,
    A ∈ N: “нетерминальные символы”.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).
    Перезапись строк над (Σ ∪ N)∗ .
    Правила как правила перезаписи:

                       µAν =⇒ µαν         (A → α ∈ R)

    w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
    a ∈ Σ: “терминальные символы”,
    A ∈ N: “нетерминальные символы”.

Example: S → aSb | ε
S =⇒ aSb =⇒ aaSbb =⇒ aabb




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (1959).
    Перезапись строк над (Σ ∪ N)∗ .
    Правила как правила перезаписи:

                       µAν =⇒ µαν         (A → α ∈ R)

    w ∈ Σ∗ имеет свойство A ∈ N, если A =⇒ . . . =⇒ w
    a ∈ Σ: “терминальные символы”,
    A ∈ N: “нетерминальные символы”.

Example: S → aSb | ε
S =⇒ aSb =⇒ aaSbb =⇒ aabb

        Pro: Просто, можно преподавать даже школьникам.


 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   7 / 31
Определение через перезапись строк
    Н. Хомский, “О некоторых формальных свойствах грамматик”
    (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
Часть II

                   Разновидности грамматик




Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   8 / 31
Булевы действия в грамматиках

S → aSb | ε




 Александр Охотин   Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Булевы действия в грамматиках

S → aSb | ε

                          w имеет свойство S

              w = aub, где u имеет свойство S
                     ∨
              w =ε




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Булевы действия в грамматиках

S → aSb | ε

                          w имеет свойство S

              w = aub, где u имеет свойство S
                     ∨
              w =ε

    Несколько правил для одного символа: дизъюнкция.




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Булевы действия в грамматиках

S → aSb | ε

                          w имеет свойство S

              w = aub, где u имеет свойство S
                     ∨
              w =ε

    Несколько правил для одного символа: дизъюнкция.
          “w удовлетворяет условию A или условию B”




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Булевы действия в грамматиках

S → aSb | ε

                          w имеет свойство S

              w = aub, где u имеет свойство S
                     ∨
              w =ε

    Несколько правил для одного символа: дизъюнкция.
          “w удовлетворяет условию A или условию B”
    Где конъюнкция и отрицание?




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Булевы действия в грамматиках

S → aSb | ε

                          w имеет свойство S

              w = aub, где u имеет свойство S
                     ∨
              w =ε

    Несколько правил для одного символа: дизъюнкция.
          “w удовлетворяет условию A или условию B”
    Где конъюнкция и отрицание?
          “w удовлетворяет обоим условиям A и B”




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Булевы действия в грамматиках

S → aSb | ε

                          w имеет свойство S

              w = aub, где u имеет свойство S
                     ∨
              w =ε

    Несколько правил для одного символа: дизъюнкция.
          “w удовлетворяет условию A или условию B”
    Где конъюнкция и отрицание?
          “w удовлетворяет обоим условиям A и B”
          “w удовлетворяет A, но не B”




 Александр Охотин        Сложность формальных грамматик   CS клуб ПОМИ   9 / 31
Конъюнктивные грамматики (Охотин, 2000)
Правила вида

                 A → α1 & . . . &αm    (α1 , . . . , αm ∈ (Σ ∪ N)∗ )

“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”




  Александр Охотин         Сложность формальных грамматик       CS клуб ПОМИ   10 / 31
Конъюнктивные грамматики (Охотин, 2000)
Правила вида

                 A → α1 & . . . &αm    (α1 , . . . , αm ∈ (Σ ∪ N)∗ )

“Если w представимо в виде α1 , . . . , αm , то w имеет свойство A”
     Определение через дедукцию утверждений [A, w ].




  Александр Охотин         Сложность формальных грамматик       CS клуб ПОМИ   10 / 31
Конъюнктивные грамматики (Охотин, 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
Конъюнктивные грамматики (Охотин, 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
Конъюнктивные грамматики (Охотин, 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
Булевы грамматики (Охотин, 2003)



Правила вида
                     A → α1 & . . . &αm &¬β1 & . . . &¬βn
“Если w представимо в виде α1 , . . . , αm и непредставимо в виде β1 ,
. . . , βn , то w имеет свойство A”.




  Александр Охотин        Сложность формальных грамматик    CS клуб ПОМИ   11 / 31
Булевы грамматики (Охотин, 2003)



Правила вида
                     A → α1 & . . . &αm &¬β1 & . . . &¬βn
“Если w представимо в виде α1 , . . . , αm и непредставимо в виде β1 ,
. . . , βn , то w имеет свойство A”.
     Можно выразить противоречие: S → ¬S.




  Александр Охотин        Сложность формальных грамматик    CS клуб ПОМИ   11 / 31
Булевы грамматики (Охотин, 2003)



Правила вида
                     A → α1 & . . . &αm &¬β1 & . . . &¬βn
“Если w представимо в виде α1 , . . . , αm и непредставимо в виде β1 ,
. . . , βn , то w имеет свойство A”.
     Можно выразить противоречие: S → ¬S.
     Определение через языковые уравнения.




  Александр Охотин        Сложность формальных грамматик    CS клуб ПОМИ   11 / 31
Краткий обзор грамматик



    Индуктивное определение.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   12 / 31
Краткий обзор грамматик



    Индуктивное определение.
    Длинные строки получаются сцеплением коротких.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   12 / 31
Краткий обзор грамматик



    Индуктивное определение.
    Длинные строки получаются сцеплением коротких.
    Сцепления образуют дерево разбора.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   12 / 31
Краткий обзор грамматик



    Индуктивное определение.
    Длинные строки получаются сцеплением коротких.
    Сцепления образуют дерево разбора.
    Строка длины n зависит от n2 её подстрок.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   12 / 31
Краткий обзор грамматик



     Индуктивное определение.
     Длинные строки получаются сцеплением коротких.
     Сцепления образуют дерево разбора.
     Строка длины n зависит от n2 её подстрок.

 1   Логика для определения синтаксиса.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   12 / 31
Краткий обзор грамматик



     Индуктивное определение.
     Длинные строки получаются сцеплением коротких.
     Сцепления образуют дерево разбора.
     Строка длины n зависит от n2 её подстрок.

 1   Логика для определения синтаксиса.
 2   Обыкновенная бесконтекстная грамматика             дизъюнктивный
     фрагмент.




 Александр Охотин      Сложность формальных грамматик      CS клуб ПОМИ   12 / 31
Важные особые случаи грамматик

 1   Линейные грамматики: правила вида A → uBv и A → w , где
     u, v , w ∈ Σ∗ .




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   13 / 31
Важные особые случаи грамматик

 1   Линейные грамматики: правила вида A → uBv и A → w , где
     u, v , w ∈ Σ∗ .
          A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.




 Александр Охотин         Сложность формальных грамматик    CS клуб ПОМИ   13 / 31
Важные особые случаи грамматик

 1   Линейные грамматики: правила вида A → uBv и A → w , где
     u, v , w ∈ Σ∗ .
          A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
 2   Однозначные грамматики:




 Александр Охотин         Сложность формальных грамматик    CS клуб ПОМИ   13 / 31
Важные особые случаи грамматик

 1   Линейные грамматики: правила вида A → uBv и A → w , где
     u, v , w ∈ Σ∗ .
          A → u1 B1 v1 & . . . &um Bm vm : линейная конъюнктивная.
 2   Однозначные грамматики:
          Правила A → A1 | . . . | An порождают непересекающиеся языки.




 Александр Охотин         Сложность формальных грамматик    CS клуб ПОМИ   13 / 31
Важные особые случаи грамматик

 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
Важные особые случаи грамматик

 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
Важные особые случаи грамматик

 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
Важные особые случаи грамматик

 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
Важные особые случаи грамматик

 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
Важные особые случаи грамматик

 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
Классификация формальных грамматик
    Общего вида однозначные детерминированные (LR)
    сильно детерминированные (LL).




 Александр Охотин   Сложность формальных грамматик   CS клуб ПОМИ   14 / 31
Классификация формальных грамматик
    Общего вида однозначные детерминированные (LR)
    сильно детерминированные (LL).
    Oбщего вида     с линейным сцеплением              управляемые входом.




 Александр Охотин     Сложность формальных грамматик        CS клуб ПОМИ   14 / 31
Классификация формальных грамматик
    Общего вида однозначные детерминированные (LR)
    сильно детерминированные (LL).
    Oбщего вида     с линейным сцеплением              управляемые входом.
    Булевы действия: {∨, ∧, ¬}      {∨, ∧}      {∨}.




 Александр Охотин     Сложность формальных грамматик        CS клуб ПОМИ   14 / 31
Классификация формальных грамматик
    Общего вида однозначные детерминированные (LR)
    сильно детерминированные (LL).
    Oбщего вида     с линейным сцеплением              управляемые входом.
    Булевы действия: {∨, ∧, ¬}      {∨, ∧}      {∨}.

                                 ***




 Александр Охотин     Сложность формальных грамматик        CS клуб ПОМИ   14 / 31
Часть III

                   Сложность языков




Александр Охотин   Сложность формальных грамматик   CS клуб ПОМИ   15 / 31
Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   16 / 31
Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.


      O(n)                                                  O(nω)



                                O(n2)




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   16 / 31
Время работы известных алгоритмов
Задача принадлежности для семейства языков L
Пусть L ∈ L. Для данной строки w , определить, принадлежит ли она L.


      O(n)                                                  O(nω)



                                O(n2)

    Булевы грамматики общего вида: за время O(BMM(n) log n)
    (Валиант, 1975; Охотин, 2010).



 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   16 / 31
Время работы известных алгоритмов
Задача принадлежности для семейства языков 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
Время работы известных алгоритмов
Задача принадлежности для семейства языков 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
NL-полнота линейных бесконтекстных грамматик
    NL = NSPACE(log n); NL-полная задача: достижимость в графе.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   17 / 31
NL-полнота линейных бесконтекстных грамматик
     NL = NSPACE(log n); NL-полная задача: достижимость в графе.

Теорема (Сэдборо, 1975)
 1   LinCF ⊆ NL,
 2   LinCF содержит NL-полный язык.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   17 / 31
NL-полнота линейных бесконтекстных грамматик
     NL = NSPACE(log n); NL-полная задача: достижимость в графе.

Теорема (Сэдборо, 1975)
 1   LinCF ⊆ NL,
 2   LinCF содержит NL-полный язык.

     Правила A → uBv , разбор угадывается с двух концов.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   17 / 31
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
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
L-полнота линейных детерминированных грамматик


    L = DSPACE(log n);
    L-полная задача: достижимость в графе со степенью исхода 1.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   18 / 31
L-полнота линейных детерминированных грамматик


    L = DSPACE(log n);
    L-полная задача: достижимость в графе со степенью исхода 1.
    DetLinCF : линейные LR(1) грамматики.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   18 / 31
L-полнота линейных детерминированных грамматик


     L = DSPACE(log n);
     L-полная задача: достижимость в графе со степенью исхода 1.
     DetLinCF : линейные LR(1) грамматики.

Теорема (Хольцер, Ланге, 1993)
 1   DetLinCF ⊆ L,
 2   DetLinCF содержит L-полный язык.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   18 / 31
L-полнота линейных детерминированных грамматик


     L = DSPACE(log n);
     L-полная задача: достижимость в графе со степенью исхода 1.
     DetLinCF : линейные LR(1) грамматики.

Теорема (Хольцер, Ланге, 1993)
 1   DetLinCF ⊆ L,
 2   DetLinCF содержит L-полный язык.

     Уточнение предыдущего доказательства.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   18 / 31
Разбор обыкновенных бесконтекстных грамматик в NC2

    NC2 : схемы высоты O(log2 n) с nO(1) элементов.

Теорема (Руззо, 1981; Брент и Гольдшлягер, 1984; Риттер, 1985)
CF ⊆ NC2 .




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   19 / 31
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор обыкновенных бесконтекстных грамматик в 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
Разбор детерминированных бесконтекстных грамматик




    SC2 = DTIMESPACE(poly , log2 n)

Теорема (Кук, 1979)
DetCF ⊆ SC2 .




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   20 / 31
P-полнота булевых грамматик
    P=                     k)
             k 0 DTIME(n




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   21 / 31
P-полнота булевых грамматик
    P = k 0 DTIME(nk )
    P-полная задача: значение булевой схемы.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   21 / 31
P-полнота булевых грамматик
     P = k 0 DTIME(nk )
     P-полная задача: значение булевой схемы.

Теорема (Ибарра и Ким, 1984; Охотин, 2003)
 1   Bool ⊆ P,
 2   LinConj содержит P-полный язык.                    (покажем для Bool )




 Александр Охотин      Сложность формальных грамматик     CS клуб ПОМИ   21 / 31
P-полнота булевых грамматик
     P = k 0 DTIME(nk )
     P-полная задача: значение булевой схемы.

Теорема (Ибарра и Ким, 1984; Охотин, 2003)
 1   Bool ⊆ P,
 2   LinConj содержит P-полный язык.                    (покажем для Bool )

     Принадлежность P: обычным алгоритмом разбора.




 Александр Охотин      Сложность формальных грамматик     CS клуб ПОМИ   21 / 31
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
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
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
Сравнение семейств языков


           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
Часть IV

             Проверка свойств данной грамматики




Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   23 / 31
Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   24 / 31
Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).

Задача пустоты для семейства грамматик G
Для данной грамматики G ∈ G, определить, пуст ли язык L(G ).




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   24 / 31
Верхние оценки
Общая задача принадлежности для семейства грамматик G
Для данной грамматики G ∈ G и для данной строки w , определить,
принадлежит ли w яаыку L(G ).

Задача пустоты для семейства грамматик G
Для данной грамматики G ∈ G, определить, пуст ли язык L(G ).

Задача равенства регулярному языку для G
Для данной грамматики G ∈ G и для данного (или фиксированного)
L0 ∈ Reg , определить, совпадает ли L(G ) с L0 .




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   24 / 31
Верхние оценки
Общая задача принадлежности для семейства грамматик 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
Общая задача принадлежности

Теорема
 1   Общая задача принадлежности для Bool принадлежит P.
 2   Она P-полна уже для LLCF и для строки ε.

     Принадлежность P: обычным алгоритмом разбора.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   25 / 31
Общая задача принадлежности

Теорема
 1   Общая задача принадлежности для Bool принадлежит P.
 2   Она P-полна уже для LLCF и для строки ε.

     Принадлежность P: обычным алгоритмом разбора.
     P-полнота для CF : сведением MCVP (значение монотонной
     схемы).




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   25 / 31
Общая задача принадлежности

Теорема
 1   Общая задача принадлежности для Bool принадлежит P.
 2   Она P-полна уже для LLCF и для строки ε.

     Принадлежность P: обычным алгоритмом разбора.
     P-полнота для CF : сведением MCVP (значение монотонной
     схемы).
          Было: элемент xi ; стало: Ai ∈ N.




 Александр Охотин         Сложность формальных грамматик   CS клуб ПОМИ   25 / 31
Общая задача принадлежности

Теорема
 1   Общая задача принадлежности для Bool принадлежит P.
 2   Она P-полна уже для LLCF и для строки ε.

     Принадлежность P: обычным алгоритмом разбора.
     P-полнота для CF : сведением MCVP (значение монотонной
     схемы).
          Было: элемент xi ; стало: Ai ∈ N.
          Было: xi = 1; стало: Ai → ε.




 Александр Охотин         Сложность формальных грамматик   CS клуб ПОМИ   25 / 31
Общая задача принадлежности

Теорема
 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
Общая задача принадлежности

Теорема
 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
Общая задача принадлежности

Теорема
 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
Общая задача принадлежности

Теорема
 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
UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   26 / 31
UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .

    Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   26 / 31
UnambCF: равенство регулярному языку
Теорема (Саломаа и Сойттола, 1978)
Существует алгоритм проверки равенства L(G ) = L0
для данной G из UnambCF и для данного регулярного языка L0 .

    Проверить пустоту L(G ) ∩ L0 (легко) и равенство L(G ) ∩ L0 = L0 .
     L
    an : количество строк длины n в языке L.




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   26 / 31
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
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
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
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
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
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
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
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
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
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
DetCF: проверка на равенство
    Даны две LR(k) грамматики G1 , G2 ;
    определить, равны ли L(G1 ) и L(G2 ).




 Александр Охотин      Сложность формальных грамматик   CS клуб ПОМИ   27 / 31
DetCF: проверка на равенство
    Даны две LR(k) грамматики G1 , G2 ;
    определить, равны ли L(G1 ) и L(G2 ).
    Детерминированные магазинные автоматы (DPDA).




 Александр Охотин   Сложность формальных грамматик   CS клуб ПОМИ   27 / 31
DetCF: проверка на равенство
    Даны две LR(k) грамматики G1 , G2 ;
    определить, равны ли L(G1 ) и L(G2 ).
    Детерминированные магазинные автоматы (DPDA).

Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.




 Александр Охотин    Сложность формальных грамматик   CS клуб ПОМИ   27 / 31
DetCF: проверка на равенство
    Даны две LR(k) грамматики G1 , G2 ;
    определить, равны ли L(G1 ) и L(G2 ).
    Детерминированные магазинные автоматы (DPDA).

Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.

Теорема (Валиант, 1974)
Задача равенства двух DetLinCF языков разрешима.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   27 / 31
DetCF: проверка на равенство
    Даны две LR(k) грамматики G1 , G2 ;
    определить, равны ли L(G1 ) и L(G2 ).
    Детерминированные магазинные автоматы (DPDA).

Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.

Теорема (Валиант, 1974)
Задача равенства двух DetLinCF языков разрешима.

    По двум DPDA строится третий, распознающий их различия.




 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   27 / 31
DetCF: проверка на равенство
    Даны две LR(k) грамматики G1 , G2 ;
    определить, равны ли L(G1 ) и L(G2 ).
    Детерминированные магазинные автоматы (DPDA).

Теорема (Розенкранц, Стирнс, 1970; Ольшанский, Пнуэли, 1977)
Задача равенства двух LLCF языков разрешима.

Теорема (Валиант, 1974)
Задача равенства двух DetLinCF языков разрешима.

    По двум DPDA строится третий, распознающий их различия.

Теорема (Сенизерг, 1997)
Задача равенства двух DetCF языков разрешима.



 Александр Охотин     Сложность формальных грамматик   CS клуб ПОМИ   27 / 31
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity
20110925 csseminar formal_grammars_complexity

Más contenido relacionado

Destacado

20111023 csseminar geometry_algorithms_implementation_kovalev
20111023 csseminar geometry_algorithms_implementation_kovalev20111023 csseminar geometry_algorithms_implementation_kovalev
20111023 csseminar geometry_algorithms_implementation_kovalevComputer Science Club
 
20111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture0220111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture02Computer Science Club
 
20111030 computer graphics_galinsky_lecture07_3_dvisualization
20111030 computer graphics_galinsky_lecture07_3_dvisualization20111030 computer graphics_galinsky_lecture07_3_dvisualization
20111030 computer graphics_galinsky_lecture07_3_dvisualizationComputer Science Club
 
20111204 intro malware_livshits_lecture02
20111204 intro malware_livshits_lecture0220111204 intro malware_livshits_lecture02
20111204 intro malware_livshits_lecture02Computer Science Club
 
20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikovComputer Science Club
 
20111120 csseminar expert_forum_chabanovski
20111120 csseminar expert_forum_chabanovski20111120 csseminar expert_forum_chabanovski
20111120 csseminar expert_forum_chabanovskiComputer Science Club
 
20111204 web security_livshits_lecture01
20111204 web security_livshits_lecture0120111204 web security_livshits_lecture01
20111204 web security_livshits_lecture01Computer Science Club
 
20111202 machine learning_nikolenko_lecture07
20111202 machine learning_nikolenko_lecture0720111202 machine learning_nikolenko_lecture07
20111202 machine learning_nikolenko_lecture07Computer Science Club
 
20111030 csseminar machine_learning_kuralenok
20111030 csseminar machine_learning_kuralenok20111030 csseminar machine_learning_kuralenok
20111030 csseminar machine_learning_kuralenokComputer Science Club
 
20120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture0220120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture02Computer Science Club
 
20120218 model checking_karpov_lecture02
20120218 model checking_karpov_lecture0220120218 model checking_karpov_lecture02
20120218 model checking_karpov_lecture02Computer Science Club
 
20120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture0120120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture01Computer Science Club
 
20121006 algorithmsinbioinformatics vyahhi_lecture02
20121006 algorithmsinbioinformatics vyahhi_lecture0220121006 algorithmsinbioinformatics vyahhi_lecture02
20121006 algorithmsinbioinformatics vyahhi_lecture02Computer Science Club
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikovComputer Science Club
 
20110925 computer graphics_galinsky_lecture03_color
20110925 computer graphics_galinsky_lecture03_color20110925 computer graphics_galinsky_lecture03_color
20110925 computer graphics_galinsky_lecture03_colorComputer Science Club
 
20110919 computer graphics_galinsky_lecture01_intro
20110919 computer graphics_galinsky_lecture01_intro20110919 computer graphics_galinsky_lecture01_intro
20110919 computer graphics_galinsky_lecture01_introComputer Science Club
 

Destacado (19)

20111023 csseminar geometry_algorithms_implementation_kovalev
20111023 csseminar geometry_algorithms_implementation_kovalev20111023 csseminar geometry_algorithms_implementation_kovalev
20111023 csseminar geometry_algorithms_implementation_kovalev
 
20111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture0220111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture02
 
20111030 computer graphics_galinsky_lecture07_3_dvisualization
20111030 computer graphics_galinsky_lecture07_3_dvisualization20111030 computer graphics_galinsky_lecture07_3_dvisualization
20111030 computer graphics_galinsky_lecture07_3_dvisualization
 
20111204 intro malware_livshits_lecture02
20111204 intro malware_livshits_lecture0220111204 intro malware_livshits_lecture02
20111204 intro malware_livshits_lecture02
 
20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov
 
20110918 csseminar smal_privacy
20110918 csseminar smal_privacy20110918 csseminar smal_privacy
20110918 csseminar smal_privacy
 
20111120 csseminar expert_forum_chabanovski
20111120 csseminar expert_forum_chabanovski20111120 csseminar expert_forum_chabanovski
20111120 csseminar expert_forum_chabanovski
 
20111204 web security_livshits_lecture01
20111204 web security_livshits_lecture0120111204 web security_livshits_lecture01
20111204 web security_livshits_lecture01
 
20111202 machine learning_nikolenko_lecture07
20111202 machine learning_nikolenko_lecture0720111202 machine learning_nikolenko_lecture07
20111202 machine learning_nikolenko_lecture07
 
20121021 bspapproach tiskin
20121021 bspapproach tiskin20121021 bspapproach tiskin
20121021 bspapproach tiskin
 
20111030 csseminar machine_learning_kuralenok
20111030 csseminar machine_learning_kuralenok20111030 csseminar machine_learning_kuralenok
20111030 csseminar machine_learning_kuralenok
 
20120408 text detection_vasilieva
20120408 text detection_vasilieva20120408 text detection_vasilieva
20120408 text detection_vasilieva
 
20120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture0220120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture02
 
20120218 model checking_karpov_lecture02
20120218 model checking_karpov_lecture0220120218 model checking_karpov_lecture02
20120218 model checking_karpov_lecture02
 
20120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture0120120218 model cheсking_karpov_lecture01
20120218 model cheсking_karpov_lecture01
 
20121006 algorithmsinbioinformatics vyahhi_lecture02
20121006 algorithmsinbioinformatics vyahhi_lecture0220121006 algorithmsinbioinformatics vyahhi_lecture02
20121006 algorithmsinbioinformatics vyahhi_lecture02
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
 
20110925 computer graphics_galinsky_lecture03_color
20110925 computer graphics_galinsky_lecture03_color20110925 computer graphics_galinsky_lecture03_color
20110925 computer graphics_galinsky_lecture03_color
 
20110919 computer graphics_galinsky_lecture01_intro
20110919 computer graphics_galinsky_lecture01_intro20110919 computer graphics_galinsky_lecture01_intro
20110919 computer graphics_galinsky_lecture01_intro
 

Más de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Más de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20110925 csseminar formal_grammars_complexity

  • 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
  • 59. Краткий обзор грамматик Индуктивное определение. Длинные строки получаются сцеплением коротких. Александр Охотин Сложность формальных грамматик 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
  • 102. Разбор детерминированных бесконтекстных грамматик SC2 = DTIMESPACE(poly , log2 n) Теорема (Кук, 1979) DetCF ⊆ SC2 . Александр Охотин Сложность формальных грамматик CS клуб ПОМИ 20 / 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