Skip to content

Commit 735ff84

Browse files
committed
Нормальная форма для MCFG перенесена в раздел про MVFG из раздела про допстижимость с огранияениями в виде MCFG.
1 parent 916b5f6 commit 735ff84

2 files changed

Lines changed: 71 additions & 58 deletions

File tree

tex/Multiple_Context-Free_Language_Reachability.tex

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,57 +14,6 @@ \chapter{Поиск путей с ограничениями в терминах
1414
На практике хорошим приёмом для получения высокопроизводительных решений задач анализа графов является выражение наиболее критичных вычислений через операции линейной алгебры, например, через матричные операции~\cite{doi:10.1137/1.9780898719918}. Существуют эффективные алгоритмы парсинга для MCFL на основе линейной алгебры, использующие умножения булевых матриц~\cite{nakanishi1997efficient,cohen2016parsing} и способные лечь в основу новых алгоритмов MCFL-достижимости. Однако алгоритм в работе~\cite{cohen2016parsing} может быть применен только для некоторого подкласса многокомпонентных контекстно-свободных грамматик, называемого \textit{несбалансированными}. Поэтому далее в этой главе будет приведён алгоритм поиска путей с ограничениями в терминах многокомпонентных контекстно-свободных языков, основанный на алгоритме из работы~\cite{nakanishi1997efficient}.
1515

1616

17-
\section{Нормальная форма MCFG}\label{normalformmcfg}
18-
Сперва мы введём следующую нормальную форму для MCFG, которая позволяет решать задачу MCFL-достижимости с помощью операций линейной алгебры.
19-
20-
\begin{definition} m-MCFG $G = (\Sigma, N, S, P)$ находится в \emph{нормальной форме}, если любое правило $p: A \rightarrow (\gamma_1, \dots, \gamma_{dim(A)}) \in P$ соответствует одной из следующих форм.
21-
\begin{itemize}
22-
%\item $\forall i: 1 \leq i \leq d(A) \ \ \gamma_i \neq \varepsilon$
23-
\item $\forall i: |\gamma_i| = 1$ и $\gamma_i \in \Sigma \cup \{\varepsilon\}$.
24-
\item $\forall i: \gamma_i \in N_c^*$, т.е. в правой части правила нету терминальных символов. Для простоты будем обозначать такие правила $p: A \rightarrow f(B_1, \dots, B_n)$, где $B_k \in N$. В таком случае необходимо, чтобы $n = 2$. В итоге, имеем правила вида $p: A \rightarrow f(B_1, B_2)$, где $B_1, B_2 \in N$. Для таких правил также должно выполнятся следующее.
25-
\begin{itemize}
26-
\item \textbf{Non-erasing condition}:$\forall i \in \{1,2\}, 1 \leq j \leq d(B_i)$ $B_i^j$ используется в $\gamma_k$ для некоторого $k$,
27-
\item никакая пара символов $B^j, B^k$, являющихся компонентами одного и того нетерминала, не присутствует в правой части правила подряд, т.е. компоненты нетерминалов $B_1, B_2$ чередуются,
28-
\item $\exists i: 1 \leq i \leq d(A) \ \ |\gamma_i| \geq 2$.
29-
\end{itemize}
30-
\end{itemize}
31-
\end{definition}
32-
33-
Согласно~\cite{nakanishi1997efficient}, справедлива следующая теорема.
34-
35-
\begin{theorem}\label{thm:formofmcfg}
36-
Для любой MCFG $G$ может быть построена MCFG $G'$ такая, что $L(G') = L(G)$ и $G'$ находится в описанной нормальной форме.
37-
\end{theorem}
38-
39-
Например, для $m = 1$ описанная нормальная форма соответствует ослабленной нормальной форме Хомского для КС-грамматик.
40-
41-
Пусть имеется MCFG $G_1 = (\Sigma_1, N_1, S, P_1)$, где $\Sigma_1 = \{a,b,c,d\}$, $N_1 = \{S_, A, B\}$, $P_1 = \{$
42-
\begin{align*}
43-
S^1 \rightarrow A^1 B^1 A^2 B^2 \\
44-
(A^1, A^2) \rightarrow (a,c) \\
45-
(B^1, B^2) \rightarrow (b,d) \\
46-
(B^1, B^2) \rightarrow (bB^1, dB^2) \\
47-
(A^1, A^2) \rightarrow (aA^1, cA^2)
48-
\end{align*}
49-
$\}.$
50-
51-
Такая грамматика порождает один из классических MCFL: $L(G_1) = \{a^nb^mc^nd^m \mid n,m \in \mathbb{N}\}$, который не является контекстно-свободным.
52-
53-
Тогда грамматика $G'_1$ в нормальной форме может быть построена по грамматике $G_1$, где $L(G'_1) = L(G_1)$ и $N'_1 = \{S, S_1, S_2, A, B, C, D\}$, $P'_1 = \{$
54-
\begin{align*}
55-
A^1 \rightarrow a \\
56-
B^1 \rightarrow b \\
57-
C^1 \rightarrow c \\
58-
D^1 \rightarrow d \\
59-
(S_1^1, S_1^2) \rightarrow (a,c) \\
60-
(S_2^1, S_2^2) \rightarrow (b,d) \\
61-
(S_1^1, S_1^2) \rightarrow (S_3^1, S_3^2 C^1) \\
62-
(S_3^1, S_3^2) \rightarrow (A^1 S_1^1, S_1^2) \\
63-
(S_2^1, S_2^2) \rightarrow (S_4^1, S_4^2 D^1) \\
64-
(S_4^1, S_4^2) \rightarrow (B^1 S_2^1, S_2^2) \\
65-
S^1 \rightarrow S_1^1 S_2^1 S_1^2 S_2^2
66-
\end{align*}
67-
$\}.$
6817

6918
\section{Постановка задачи}
7019
Сформулируем задачу MCFL-достижимости.
@@ -266,7 +215,7 @@ \subsection{Алгоритм}
266215

267216
\subsection{Пример}
268217

269-
Рассмотрим некоторые шаги алгоритма на примере. В качестве входных данных возьмем граф $D_1$, представленный на рисунке~\ref{fig:example_input_graph_mcfg}, и многокомпонентную контекстно-свободную грамматику $G'_1$ из раздела~\ref{normalformmcfg}.
218+
Рассмотрим некоторые шаги алгоритма на примере. В качестве входных данных возьмем граф $D_1$, представленный на рисунке~\ref{fig:example_input_graph_mcfg}, и многокомпонентную контекстно-свободную грамматику $G'_1$ из определения~\ref{thm:mcfg_normal_form} главы~\ref{MCFG}.
270219

271220
\begin{figure}[h]
272221
\centering
@@ -398,4 +347,4 @@ \subsection{Корректность и сложность}
398347
Пусть дана m-MCFG $G = (\Sigma, N, S, P)$ в нормальной форме и помеченный граф $D =(V, E, \Sigma)$. Пусть $p'$ --- правило грамматики, для которого $e(p') - 0.624i(p') = max\{e(p) - 0.624i(p) \mid p\in P\}$, и пусть $e' = e(p')$, $i' = i(p')$. Тогда алгоритм, представленный на листинге~\ref{lst:algomcfg}, завершит работу за $O(|V|^{e' - 0.624i' + 2m})$.
399348
\end{theorem}
400349

401-
Это первое наивное ограничение временной сложности для проблемы MCFL-достижимости. Например, для грамматики $G'_1$ из раздела~\ref{normalformmcfg}, $e' = 5$, $i' = 1$, а $m = 2$. Таким образом, граница временной сложности для этой грамматики составляет $O(|V|^{8,376})$. Однако $O(n^{2m})$ итераций может быть достигнуто только на специальных искусственных графах, а обычно на реальных графах количество итераций невелико. Кроме того, известны приёмы улучшения такой оценки сложности путём рекурсивного умножения подматриц~\cite{Valiant:1975:GCR:1739932.1740048}. Наконец, оценка сложности может быть улучшеноа за счёт учёта разреженности матриц и исползования операций над разреженными матрицами.
350+
Это первое наивное ограничение временной сложности для проблемы MCFL-достижимости. Например, для грамматики $G'_1$ из определения~\ref{thm:mcfg_normal_form} главы~\ref{MCFG}, $e' = 5$, $i' = 1$, а $m = 2$. Таким образом, граница временной сложности для этой грамматики составляет $O(|V|^{8,376})$. Однако $O(n^{2m})$ итераций может быть достигнуто только на специальных искусственных графах, а обычно на реальных графах количество итераций невелико. Кроме того, известны приёмы улучшения такой оценки сложности путём рекурсивного умножения подматриц~\cite{Valiant:1975:GCR:1739932.1740048}. Наконец, оценка сложности может быть улучшеноа за счёт учёта разреженности матриц и исползования операций над разреженными матрицами.

tex/Multiple_Context-Free_Languages.tex

Lines changed: 69 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@ \section{Примеры}
6868

6969
Теперь рассмотрим язык, не являющийся контекстно-свободным:
7070
\[
71-
L = \{a^n c^m b^n d^m \mid n, m \ge 0\}.
71+
L = \{a^n b^m c^n d^m \mid n, m \ge 0\}.
7272
\]
7373
Этот язык порождается следующей $2$-MCFG($2$):
7474
\begin{align*}
75-
S(x_1 y_1 x_2 y_2) &\leftarrow P(x_1,x_2), Q(y_1,y_2) \\
76-
P(ax_1, bx_2) &\leftarrow P(x_1,x_2) \\
75+
S(x_1 x_2 x_3 x_4) &\leftarrow P(x_1,x_3), Q(x_2,x_4) \\
76+
P(ax_1, cx_2) &\leftarrow P(x_1,x_2) \\
7777
P(\varepsilon,\varepsilon) &\leftarrow \\
78-
Q(cx_1, dx_2) &\leftarrow Q(x_1,x_2) \\
78+
Q(bx_1, dx_2) &\leftarrow Q(x_1,x_2) \\
7979
Q(\varepsilon,\varepsilon) &\leftarrow
8080
\end{align*}
81-
Здесь нетерминал $P$ порождает пары $(a^n, b^n)$, нетерминал $Q$~--- пары $(c^m, d^m)$, а стартовое правило собирает их в нужном порядке.
81+
Здесь нетерминал $P$ порождает пары $(a^n, c^n)$, нетерминал $Q$~--- пары $(b^m, d^m)$, а стартовое правило собирает их в нужном порядке.
8282

8383
\section{Разновидности MCFG}
8484

@@ -117,6 +117,70 @@ \section{Разновидности MCFG}
117117
\]
118118
В частности, язык $\{a^{2^n} \mid n \ge 0\}$ порождается PMCFG (правила $S(xx) \leftarrow S(x)$, $S(a) \leftarrow$), но не является MCFL.
119119

120+
Помимо классификации по ограничениям на использование переменных, для MCFG
121+
существует нормальная форма, обобщающая ослабленную нормальную форму
122+
Хомского для контекстно-свободных грамматик~\sidecite{nakanishi1997efficient}.
123+
124+
\begin{definition}
125+
MCFG $G = (\Sigma, N, S, P)$ находится в \emph{нормальной форме},
126+
если любое правило $A(s_1,\ldots,s_k) \leftarrow B_1(\bar x_1),\ldots,B_n(\bar x_n)$
127+
удовлетворяет одному из следующих условий:
128+
\begin{itemize}
129+
\item $n = 0$ и каждый $s_i$ есть либо $\varepsilon$, либо символ из $\Sigma$:
130+
$A(a_1,\ldots,a_k) \leftarrow$ или $A(\varepsilon,\ldots,\varepsilon) \leftarrow$,
131+
где $a_i \in \Sigma$.
132+
\item $n = 2$, в строках $s_i$ нет терминальных символов,
133+
и выполнены следующие условия:
134+
\begin{itemize}
135+
\item \textbf{неудаляющее условие}: каждая переменная $x^i_j$
136+
хотя бы один раз используется в $s_1,\ldots,s_k$;
137+
\item компоненты $B_1$ и $B_2$ \emph{чередуются}: в каждой строке $s_i$
138+
никакие две компоненты одного нетерминала не расположены подряд;
139+
\item хотя бы одна строка $s_i$ имеет длину $|s_i| \ge 2$.
140+
\end{itemize}
141+
\end{itemize}
142+
\end{definition}
143+
144+
\begin{theorem}\label{thm:mcfg_normal_form}
145+
Для любой MCFG $G$ может быть построена эквивалентная MCFG $G'$,
146+
находящаяся в описанной нормальной форме~\sidecite{nakanishi1997efficient}.
147+
\end{theorem}
148+
149+
Для $m = 1$ эта нормальная форма соответствует ослабленной нормальной форме
150+
Хомского для КС-грамматик (определение~\ref{defn:wCNF}).
151+
152+
\begin{example}
153+
Приведём к нормальной форме грамматику для языка
154+
$\{a^n b^m c^n d^m \mid n,m \in \mathbb{N}\}$.
155+
Исходная грамматика $G_1$:\begin{align*}
156+
A(a, c) &\leftarrow \\
157+
A(a x_1, c x_2) &\leftarrow A(x_1, x_2) \\
158+
B(b, d) &\leftarrow \\
159+
B(b x_1, d x_2) &\leftarrow B(x_1, x_2) \\
160+
S(x_1 x_2 x_3 x_4) &\leftarrow A(x_1, x_3), B(x_2, x_4)
161+
\end{align*}
162+
163+
Эквивалентная грамматика $G'_1$ в нормальной форме использует
164+
вспомогательные нетерминалы $A_1,B_1,C_1,D_1$ ранга~1 и
165+
$S_1,S_2,S_3,S_4$ ранга~2:\begin{align*}
166+
A_1(x) &\leftarrow a \\
167+
B_1(x) &\leftarrow b \\
168+
C_1(x) &\leftarrow c \\
169+
D_1(x) &\leftarrow d \\[4pt]
170+
S_1(a, c) &\leftarrow \\
171+
S_3(x_1 y_1, y_2) &\leftarrow A_1(x_1), S_1(y_1, y_2) \\
172+
S_1(x_1, x_2 y_1) &\leftarrow S_3(x_1, x_2), C_1(y_1) \\[4pt]
173+
S_2(b, d) &\leftarrow \\
174+
S_4(x_1 y_1, y_2) &\leftarrow B_1(x_1), S_2(y_1, y_2) \\
175+
S_2(x_1, x_2 y_1) &\leftarrow S_4(x_1, x_2), D_1(y_1) \\[4pt]
176+
S(x_1 x_2 x_3 x_4) &\leftarrow S_1(x_1, x_3), S_2(x_2, x_4)
177+
\end{align*}
178+
Здесь $S_1$ и $S_2$ порождают терминальные пары $(a,c)$ и $(b,d)$,
179+
а рекурсивные правила $S_1/S_3$ и $S_2/S_4$ добавляют по одному символу
180+
в каждый компонент за два шага, сохраняя условие чередования и отсутствие
181+
терминалов в нетерминальных правилах.
182+
\end{example}
183+
120184
\section{Лемма о накачке}
121185

122186
Для MCFG известно несколько вариантов леммы о накачке, различающихся по своей силе и применимости к различным подклассам.

0 commit comments

Comments
 (0)