diff --git a/data/data.yaml b/data/data.yaml index a70794b8..b481fe32 100644 --- a/data/data.yaml +++ b/data/data.yaml @@ -2759,6 +2759,12 @@ ' - 'Когда слово допускается переключающимся автоматом? + ' + - 'Автомат имеющий множество конъюнктивных состояний + + ' + - 'Когда слово допускается переключающимся автоматом? + ' - answer: 'Конъюнктивная грамматика G задаётся четырьмя компонентами: G = <Σ, N, S, Δ>, где Σ - алфавит, N - множество нетерминальных символов, S - начальный символ, @@ -2809,6 +2815,9 @@ ' - 'Конъюнктивная грамматика в двоичном нормальном виде + ' + - 'Конъюнктивная грамматика в двоичном нормальном виде + ' - answer: 'Переходы DFA над односимвольным алфавитом Σ = {a} образуют конечный граф со степенью исхода (числом выходящих из вершины рёбер) 1. Поскольку граф конечный @@ -3975,6 +3984,11 @@ детерминированные нисходящие (Top-Bottom) древесные автоматы, недетерминированные нисходящие (Top-Bottom) древесные автоматы + ' + author: Егорова Алиса + id: 182 + questions: + - 'Как удалить цепные правила в контекстно-свободной грамматике? Недетерминированные древесные автоматы любого типа эквивалентны по выразительной силе детерминированным восходящим древесным автоматам. @@ -4416,3 +4430,178 @@ - 'Существование линейной конъюнктивной грамматики из одного нетерминала' - 'Лемма о сжатии для линейных конъюнктивных грамматик ' +- answer: 'Лемма о накачке для контекстно-свободных языков (англ. Pumping lemma) является необходимым условием для того, чтобы язык порождался контекстно-свободной грамматикой, однако недостаточным. + То есть, если язык не накачивается с помощью леммы - он точно не контекстно-свободный, однако если накачивается - может таковым не являться. + Пример: язык L = {a^mb^mc^i, i ≠ m}. Докажем, что этот язык накачивается с помощью леммы. + Выберем для языка L = {a^mb^mc^i, i ≠ m} константу из леммы n = 5. Рассмотрим следующие случаи: + 1) Слово w = c^i. Пусть u = c^(i-1), v = c, x = y = z = ℇ (пустое слово). |vxy| ≤ 5. Очевидно, что при накачке uv^kxy^kz будет так же словом вида c^j, принадлежащим языку. + 2) Слово w = a^jb^j. Пусть u = a^(j-1), v = a, x = ℇ, y = b, z = b^(j-1). |vxy| ≤ n. При накачке uv^kxy^kz количество a и b будет увеличиваться одновременно и сбалансированно, структура слова a^jb^j сохранится и слово uv^kxy^kz = a^hb^h будет также принадлежать языку. + 3) Слово w = a^jb^jc^i, i < j-1. Пусть u = a^(j-1), v = a, x = ℇ, y = b, z = b^(j-1)c^i. |vxy| ≤ 5. При накачке uv^kxy^kz количество a и b будет одновременно и сбалансированно увеличиваться, при этом никогда не будет равным i. То есть, слово сохранит структуру uv^kxy^kz = a^hb^hc^i. + 4) Слово w = a^jb^jc^j-1. Пусть u = a^(j-2), v = aa, x = ℇ, y = bb, z = b^(j-2)c^j-1. |vxy| ≤ 5. При накачке uv^kxy^kz количество a и b будет одновременно и сбалансированно увеличиваться, при этом никогда не будет равно числу i. + 5) Слово w = a^jb^jc^(j+1). Пусть u = a^(j-2), v = aa, x = ℇ, y = bb, z = b^(j-2)c^j+1. |vxy| ≤ 5. При накачке uv^kxy^kz количество a и b будет одновременно и сбалансированно увеличиваться, при этом никогда не будет равно числу i. + 6) Слово w = a^jb^jc^i, i > j+1. Пусть u = a^jb^c^i-1, v = c, x = y = z = ℇ. |vxy| ≤ 5. При накачке uv^kxy^kz количество a и b не будет меняться, в то время как число c будет увеличиваться и никогда не будет равно j. + Таким образом, существует такое n из леммы, что все условия для этого языка выполняются. Однако, данный язык не будет являться контекстно-свободным. Докажем это с помощью леммы Огдена. + Для фиксированного n из леммы Огдена рассмотрим слово w = a^mb^mc^(m!+m). Пометим все символы a и b и разобьем на u, v, x, y, z так, что x содержит выделенную позицию, u и v содержат выделенные позиции и vxy содержат не более n выделенных позиций. + Тогда очевидно, что vy должно содержать одинаковое число символов a и b, иначе выбираем k=0 и тогда количество символов a и b станет разным. + Пусть символов a в vy будет t. Очевидно, что vy не содержит символов c, так как vxy содержат не более n выделенных позиций, но v точно содержит символ a. Тогда выберем k = (m!)/t + 1 и получим слово a^(m!+m)b^(m!+m)c^(m!+m) которое не принадлежит языку. Значит, язык не удовлетворяет лемме Огдена и не является контекстно-свободным. + + ' + author: Проклашкина Софья + id: 248 + questions: + - 'Является ли выполнение условия леммы о накачке для контекстно-свободных языков достаточным для того, чтобы язык назвать контекстно-свободным? + Приведи пример языка, который накачивается в соответствии с этой леммой, но не является контекстно-свободным. + + ' + - 'Может ли язык накачиваться по лемме о накачке для контекстно-свободных языков, и при этом не быть контекстно-свободным + + ' + - 'Приведи пример не КС языка который накачивается + + ' +- answer: 'Язык {a^n b^n | n>0} является контекстно-свободным языком, который может быть распознан с помощью конечного автомата со стековой памятью. + Данный автомат будет содержать следующие состояния: + q_0: Начальное состояние, "накапливаем" количество символов a. + q_1: Состояние, когда мы уже прочитали все a и при встрече b снимаем со стека символы. + q_2: Принимающее состояние (конечное состояние), в которое можно попасть лишь по пустому стеку, что гарантирует равенство количества символов a и b. + Алфавит стека: + Z_0: Дно стека. + X: Символ, добавляемый в стек. + Правила: + 2. При чтении символа a в состоянии q_0 добавляем символ X на стек, и остаемся в состоянии q_0. (q_0, a, Z_0) -> (q_0, XZ_0), (q_0, a, X) -> (q_0, XX). + 3. При чтении символа b в состоянии q_0 переходим в состояние q_1. (q_0, b, X) -> (q_1, ""). + 4. При чтении символа b в состоянии q_1 удаляем символ X со стека. (q_1, b, X) -> (q_1, ""). + 5. При чтении пустого символа ε и если в стеке Z_0 переходим в принимающее состояние q_2. (q_1, ε, Z_0) -> (q_2, Z_0). + + ' + author: Проклашкина Софья + id: 249 + questions: + - 'Конечный PDA для распознавания {a^n b^n | n>0} + + ' +- answer: 'Длина накачки n регулярного языка L не больше (иногда меньше) числа нетерминалов в минимальной грамматике для L. Или, эквивалентно: длина накачки регулярного языка L не больше, чем размер минимального НКА для этого языка. + + ' + author: Проклашкина Софья + id: 250 + questions: + - 'Как связана длина накачки из леммы о накачке регулярных языков и размер минимального НКА + + ' + - 'Как связано количество нетерминалов в минимальной грамматике и длина накачки для этого языка + + ' +- answer: 'Пусть A= ⟨Q, Σ, G, δ, s, Z0, T⟩ — автомат с магазинной памятью, где + Q — множество состояний автомата, + Σ — входной алфавит на ленте, + G — стековый алфавит, + δ — функция переходов, + s — стартовое состояние автомата, + Z0 — маркер дна стека, + T — множество допускающих состояний автомата. + Тогда языком, допускаемым автоматом Aпо заключительному состоянию, является L(A) = {w ∣ (s, w, Z0) ⊢∗ (q, ε, α)} для некоторого состояния q ∈ T и произвольной магазинной цепочки α. Сочетание (s, w, Z0) ⊢* (q, ε, α) означает, что функция переходов δ позволяет от (s, w, Z0), проходя через промежуточные значения функции, попасть в (q, ε, α). Начиная с стартовой вершины s и w на входе, автомат читает слово w и достигает допускающего состояния. Содержимое стека в этот момент не имеет значения. + + ' + author: Проклашкина Софья + id: 251 + questions: + - 'Язык, допускаемый по заключительному состоянию + + ' + - 'Язык, допускаемый по финальному состоянию + + ' +- answer: 'Пусть A= ⟨Q, Σ, G, δ, s, Z0⟩, где + Q — множество состояний автомата, + Σ — входной алфавит на ленте, + G — стековый алфавит, + δ — функция переходов, + s — стартовое состояние автомата, + Z0 — маркер дна стека, + T — множество допускающих состояний автомата. + Тогда языком, допускаемым автоматом Aпо пустому стеку, является множество N(A) = {w ∣ (s, w, Z0) ⊢* (q, ε, ε)}, где q — произвольное состояние. Сочетание (s, w, Z0) ⊢∗ (q, ε, α) означает, что функция переходов δ позволяет от (s, w, Z0), проходя через промежуточные значения функции, попасть в (q, ε, α). Таким образом, автомат A допускает слово w, полностью опустошив свой стек. Множество заключительных состояний T не имеет значения. + + ' + author: Проклашкина Софья + id: 252 + questions: + - 'Язык, допускаемый по пустому стеку + + ' +- answer: 'Классы языков, допускаемых автоматами с магазинной памятью по заключительному состоянию и по пустому магазину (стеку), совпадают. + + ' + author: Проклашкина Софья + id: 253 + questions: + - 'Классы языков, допускаемых автоматами с магазинной памятью по заключительному состоянию и по пустому стеку + + ' +- answer: 'ДМПА (DPDA) в нормальной форме - это детерминированный автомат с магазинной памятью M, представленный конечным набором состояний Q, входным алфавитом на ленте Σ, стековым алфавитом G и множеством переходов Δ, который удовлетворяет следующим условиям: + 1. Если (p, a, S) → (q, γ) ∈ Δ, то |γ|⩽2, где γ ∈ G* — последовательность стековых символов, S∈G. + 2. Если (p, ε, S) → (q, γ) ∈ Δ, то γ = ε. + 3. Δ не содержит бесполезных переходов (переход (p, a, S) → (q, γ) считается бесполезным, если L(q, γ) = ∅, то есть из конфигурации (q, γ) нельзя ничего вывести). + Нормальная форма ДМП упрощает его вид - все операции со стеком либо добавляют один символ, либо удаляют, либо оставляет стек неизменным, в автомате не существует бесполезных переходов (ловушек), а также по пустому символу переходы происходят в состояние с пустым стеком. + + ' + author: Проклашкина Софья + id: 254 + questions: + - 'Детерминированный автомат с магазинной памятью в нормальной форме + + ' + - 'Нормальная форма ДМПА + + ' + - 'Нормальная форма DPDA + + ' +- answer: 'Пусть M - автомат со стековой памятью, представленный тройкой: входной алфавит на ленте Σ, стековый алфавит G и множество переходов Δ. + Тогда M называется автоматом с единственным состоянием (англ. Single State Push Down Automata, SDA), если переходы в нем имеют вид (S, a) → γ, где a ∈ Σ, S ∈ G, γ ∈ G*. ДМП-автомат с единственным состоянием — это минимальная модель для работы со стеком, который может обрабатывать некоторые КС-языки, в которых, например, не важен порядок элементов, но важно количество. + Автомат с единственным состоянием находится в нормальной форме, если все его переходы удовлетворяют следующему условию: если (S, a) → γ ∈ Δ, тогда |γ|⩽2 и L(γ) ≠ ∅. + + ' + author: Проклашкина Софья + id: 255 + questions: + - 'Автомат с единственным состоянием. Его нормальная форма. + + ' + - 'SDA normal form + + ' + +- answer: 'Автомат Глушкова - недетерминированный конечный автомат, построенный с использованием множеств First, Last, Follow линеаризованного регулярного выражения. Принимает те же строки, что и соответствующее регулярное выражение. + Автомат Глушкова эквивалентен автомату без ε-переходов, построенному по тому же регулярному выражению по алгоритму Томсона. + + ' + author: Проклашкина Софья + id: 256 + questions: + - 'Автомат Глушкова + + ' +- answer: 'Алгоритм построения автомата Глушкова по регулярному выражению: + 1) Линеаризация регулярного выражения - пронумеруем все символы регулярного выражения, начиная с 0 и исключая скобки и другие специальные символы выражения + 2) Вычисление множеств FIRST и LAST для регулярного выражения (множества символов, которые могут начинать и заканчивать слова, распознаваемые этим регулярным выражением) + 3) Вычисление множества FOLLOW для регулярного выражения, состоящего из пар (γ_i, γ_j), в каждой из которых γ_j может стоять после γ_i в регулярном выражении + 4) Создание состояний: добавляем стартовое состояние и состояния, соответствующие пронумерованным символам регулярного выражения. Финальными обозначаем состояния, которые соответствуют пронумерованным символам, присутствующим в множестве LAST. Также делаем финальным состоянием стартовое, если регулярное выражение принимает пустую строку. + 5) Для каждого пронумерованного состояния из множества FIRST добавляем переходы из стартового состояния в состояние по этому символу, соответствующее пронумерованному символу из множества FIRST. + 6) Для каждой пары (γ_i, γ_j) из множества FOLLOW добавляем переход по символу γ_j из состояния, соответствующего символу γ_i в состояние, соответствующее символу γ_j + Таким образом будет построен недетерминированный конечный автомат Глушкова, распознающий это регулярное выражение + + ' + author: Проклашкина Софья + id: 257 + questions: + - 'Как построить автомат Глушкова + + ' + - 'Как построить автомат, распознающий данное регулярное выражение + + ' + - 'Как построить НКА по регулярному выражению + + ' +