Skip to content

Commit 83b573e

Browse files
committed
MCFG chapter
1 parent 2a0dc09 commit 83b573e

File tree

2 files changed

+122
-124
lines changed

2 files changed

+122
-124
lines changed

tex/FormalLanguageConstrainedReachabilityLectureNotes.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
\input{GLR-based_CFPQ}
7272
% %\input{CombinatorsForCFPQ}
7373
\input{Multiple_Context-Free_Language_Reachability} % FIXME: Исправить главу
74+
\input{Multiple_Context-Free_Languages}
7475
% %\input{DerivativesForCFPQ}
7576
% %\input{CFPQ_to_Datalog}
7677
\input{Conclusion}
Lines changed: 121 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки\footnote{Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовдленные Сильваном Салвати (Sylvain Salvati): \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}}}
2-
3-
\textit{Многокомпонентны контекстно-свободные языки} (и соответствующий класс грамматик) --- это строгое расширение контекстно-свободных языков (грамматик), обладающее рядом свойств !!!
1+
\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки\footnotemark}
2+
\footnotetext{Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовленные Сильваном Салвати (Sylvain Salvati): \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}}
43

54
\begin{definition}
65
\textit{m-MCFG(r)} это четвёрка $\langle \Sigma, N, S, P \rangle$
@@ -13,155 +12,154 @@
1312
A(s_1,\ldots,s_k) \leftarrow B_1(x_1^1,\ldots,x_{k_1}^1), \ldots, B_n(x_1^n,\ldots,x_{k_n}^n)
1413
$$
1514
\begin{itemize}
16-
\item $A$ --- нетерминал ранга $k$, $B_i$ --- нетерминалы ранга $k_i$, $n \leq r$
15+
\item $A$ --- нетерминал ранга $k$, $B_i$ --- нетерминалы ранга $k_i$, $n \leq r$;
1716
\item Все $x^i_j$ попарно различны (переменные)
18-
\item $s_i \in (\Sigma \cup X)^*, X = \bigcup_{i=1}^n \bigcup_{j=1}^{k_i} {x^i_j}$
17+
\item Строки $s_i \in (\Sigma \cup X)^*, X = \bigcup_{i=1}^n \bigcup_{j=1}^{k_i} {x^i_j}$
18+
\item Каждая $x^i_j$ встречается не более одного раза в последовательности $s_1,\ldots, s_k$. Если допустить несколько вхождений, то это PMCFG.
1919
\end{itemize}
2020
\end{itemize}
21-
\end{definition}
21+
\end{definition}
22+
23+
MCFG позволяет правилам грамматики оперировать несколькими компонентами одновременно. Нетерминалы в MCFG могут выводить не одну строку, а кортеж из нескольких строк.
24+
Также, можно произвольно комбинировать компоненты — переставлять их, дублировать, вставлять между ними терминалы.
25+
26+
Приведём примеры многокомпонентных контекстно-свободных грамматик.
27+
Для начала рассмотрим грамматики для известных нам контекстно-свободных языков и перепишем их в MCFG грамматику:
2228

23-
Приведём примеры многокомпонентных контекстно-свободных грамматик. Для начал рассмотрим грамматики для известных нам контекстно-свободных языков:
2429
\begin{itemize}
25-
\item язык вложенных скобок (\ref{grm:nestedbrs_cfg} и \ref{grm:nestedbrs_mcfg}, соответственно);\\
26-
\begin{minipage}[t]{0.4\textwidth}
27-
\begin{align}\label{grm:nestedbrs_cfg}
28-
S &\to a S b \nonumber \\
29-
S &\to \varepsilon
30-
\end{align}
31-
\end{minipage}
32-
~
33-
\begin{minipage}[t]{0.2\textwidth}
34-
\end{minipage}
35-
~
36-
\begin{minipage}[t]{0.4\textwidth}
37-
\begin{align}\label{grm:nestedbrs_mcfg}
38-
S(axb) & \leftarrow S(x) \nonumber \\
39-
S(\varepsilon) & \leftarrow
40-
\end{align}
41-
\end{minipage}
42-
\item язык Дика на одном типе скобок(\ref{grm:d1_cfg} и \ref{grm:d1_mcfg}, соответственно).\\
43-
\begin{minipage}[t]{0.4\textwidth}
44-
\begin{align}\label{grm:d1_cfg}
45-
S &\to a S b S \nonumber \\
46-
S &\to \varepsilon
47-
\end{align}
48-
\end{minipage}
49-
~
50-
\begin{minipage}[t]{0.2\textwidth}
51-
\end{minipage}
52-
~
53-
\begin{minipage}[t]{0.4\textwidth}
54-
\begin{align}\label{grm:d1_mcfg}
55-
S(ax_1bx_2) & \leftarrow S(x_1), S(x_2) \nonumber \\
56-
S(\varepsilon) & \leftarrow
57-
\end{align}
58-
\end{minipage}
59-
60-
\end{itemize}
30+
\item \textbf{Язык вложенных скобок}
6131

62-
Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным:
6332
\begin{align*}
64-
S(x_1 y_1 x_2 y_2) & \leftarrow P(x1,x2),Q(y_1,y_2) \\
65-
P(ax_1, bx_2) & \leftarrow P(x_1,x_2) \\
66-
P(\varepsilon,\varepsilon) &\leftarrow \\
67-
Q(cx_1, dx_2) & \leftarrow Q(x_1,x_2) \\
68-
Q(\varepsilon,\varepsilon) &\leftarrow
33+
S &\rightarrow aSb &\quad& S(axb) \leftarrow S(x) \\
34+
S &\rightarrow \varepsilon &\quad& S(\varepsilon) \leftarrow
6935
\end{align*}
70-
7136

72-
37+
\item \textbf{Язык Дика на одном типе скобок}
7338

74-
75-
Расширения MCFG
76-
\begin{enumerate}
77-
\item \textbf{PMCFG} (parallel MCFG)
78-
$$
79-
A(x, ax) \leftarrow B(x)
80-
$$
81-
82-
\item
83-
$$
84-
A(x) \leftarrow B(x),C(x)
85-
$$
86-
\item \textbf{simpleLMG}
87-
$$
88-
A(x, x) \leftarrow B(x),C(x)
89-
$$
90-
\end{enumerate}
39+
\begin{align*}
40+
S &\rightarrow aSbS &\quad& S(ax_1bx_2) \leftarrow S(x_1), S(x_2) \\
41+
S &\rightarrow \varepsilon &\quad& S(\varepsilon) \leftarrow
42+
\end{align*}
43+
44+
В MCFG-варианте ранг $S$ равен двум, то есть $S$ возвращает две компоненты. Такая грамматика записывается как 2-MCFG.
45+
46+
\end{itemize}
47+
48+
49+
Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным, но выразимого в 2-MCFG(2) грамматике :
50+
\begin{align*}
51+
S(x_1 y_1 x_2 y_2) & \leftarrow P(x1,x2),Q(y_1,y_2) \\
52+
P(ax_1, bx_2) & \leftarrow P(x_1,x_2) \\
53+
P(\varepsilon,\varepsilon) &\leftarrow \\
54+
Q(cx_1, dx_2) & \leftarrow Q(x_1,x_2) \\
55+
Q(\varepsilon,\varepsilon) &\leftarrow
56+
\end{align*}
57+
58+
59+
\section{Расширения MCFG}
60+
61+
Как было сказано раннее, в MCFG каждая переменная в левой части правила встречается ровно один раз в его правой части, и наоборот.
62+
Если мы откажемся от этого ограничения, мы получим более общие грамматики.
63+
64+
\begin{enumerate}
65+
\item \textbf{PMCFG} (Parallel Multiple Context-Free Grammar).
66+
67+
PMCFG задает некоторое ограничение над MCFG.
68+
В правилах PMCFG компоненты должны комбинироваться параллельно, без перемешивания между разными нетерминалами: $i$-й компонент результата формируется только из $i$-х компонентов правой части.
69+
70+
$$
71+
A(xy, xz) \leftarrow B(x), C(y, z)
72+
$$
73+
74+
\item \textbf{sLMG (Simple LMG, Simple Literal Movement Grammar)}.
9175

92-
$MCFL \varsubsetneq PMCFL \varsubsetneq simpleLMG = P$
93-
94-
$\{a^{2^n} \mid n\geq 0\} \in PMCFL - MCFL $
95-
96-
$S(xx) \leftarrow S(x)$
97-
98-
$S(a) \leftarrow $
76+
sLMG является ограниченным подклассом LMG (Literal Movement Grammar).
77+
Общее определение LMG допускает любую комбинацию переменных и терминалов в компонентах левой и правой части правила.
78+
LMG являются грамматическими формализмами, основанными на предикатах над строковыми кортежами и расширяют класс контекстно-свободных грамматик.
9979

100-
Разновидности MCFG
80+
Предикатом будем называть синтаксическую единицу вида $A(\alpha_1, \alpha_2, ..., \alpha_n)$, где A —-- нетерминальный символ (имя предиката),
81+
$\alpha_1, \alpha_2, ..., \alpha_n$ --- аргументы (последовательности терминалов и переменных).
82+
83+
Правила (так же называемые клаузы (clauses)) в такой грамматике имеют вид $\varphi \leftarrow \psi_1, \psi_2, ..., \psi_m$, где $\phi$ --- предикат в левой части (голова),
84+
$\psi_1, \psi_2, ..., \psi_m$ --- последовательность предикатов в правой части (тело). Клауза может быть инстанцироваться (т.е конкретные значения будут подставлены в аргументы) путем замены каждой переменной в клаузе на строку.
85+
\\
86+
\textbf{Simple LMG} — это подкласс LMG, где каждая клауза (правило) должна удовлетворять трём синтаксическим ограничениям:
10187
\begin{itemize}
102-
\item \textbf{Неудаляющая} --- $\forall i \in \{i,\ldots,n\}, j\in \{1,\ldots,k_i\} \ x^i_j \text{ используется в } s_1,\ldots,s_k $
103-
\item \textbf{Непереставляющая} --- $\forall i \in \{i,\ldots,n\}, j,k\in \{1,\ldots,k_i\}, \text{если} j < k, \text{ то } x^i_j \text{ встречается в } s_1,\ldots,s_k \text{ перед } x^i_k$
104-
\item \textbf{Well-nested} --- неудаляющая, непереставляющая и
105-
\begin{align*}
106-
&\forall i,i' \in \{i,\ldots,n\}, i\neq i', \\
107-
&j\in \{1,\ldots,k_i-1\}, j\in \{1,\ldots,k_{i'}-1\},\\
108-
&s_1\cdots s_k \notin (\Sigma \cup X)^* x^i_j (\Sigma \cup X)^* x^{i'}_{j'} (\Sigma \cup X)^* x^i_{j+1} (\Sigma \cup X)^* x^{i'}_{j'+1}(\Sigma \cup X)^*
109-
\end{align*}
88+
\item Non-combinatorial (некомбинаторность). Аргументы каждого $\psi_i$ должны быть переменными.
89+
\item Bottom-up nonerasing (восходящая неудаляемость). Все переменные из каждого $\psi_i$ также должны встречаться в $\varphi$. Это означает, что правая часть не может вводить новые переменные —-- все переменные должны "приходить" из левой части.
90+
\item Bottom-up linear (восходящая линейность). Ни одна переменная не встречается в $\varphi$ более одного раза.
11091
\end{itemize}
92+
\end{enumerate}
11193

112-
Пример well-nested MCFG
113-
\begin{itemize}
114-
%\item[\faCheck] [\faTimes]
115-
\item[\faCheck] $A(\highlight[pink]{x_1},\highlight{z_1,z_2},\highlight[pink]{x_2},\highlight[green]{y_1,y_2,y_3},\highlight[pink]{x_3}) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$
116-
\item[\faTimes] $A(\highlight{z_1},\highlight[pink]{x_1},\highlight[green]{y_1},\highlight[pink]{x_2},\highlight{z_2},\highlight[green]{y_2},\highlight[pink]{x_3},\highlight[green]{y_3}) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$
117-
\end{itemize}
94+
$MCFL \varsubsetneq PMCFL \varsubsetneq simpleLMG = P$
11895

119-
\begin{theorem}[genaral MCFG]
120-
\begin{align*}
121-
&\forall L \in \text{m-MCFG } \exists n \geq 1 \ \underline{\boldsymbol{\exists} z} \in L (|z| \geq n) \\
122-
&\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\
123-
&\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L
124-
\end{align*}
125-
\end{theorem}
96+
$\{a^{2^n} \mid n\geq 0\} \in PMCFL - MCFL $
12697

127-
\begin{theorem}[well-nested MCFG]
128-
\begin{align*}
129-
&\forall L \in \text{m-wnMCFG } \exists n \geq 1 \ \underline{\boldsymbol{\forall} z} \in L (|z| \geq n) \\
130-
&\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\
131-
&\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L
132-
\end{align*}
133-
\end{theorem}
98+
\section{Разновидности MCFG}
99+
\begin{itemize}
100+
\item \textbf{Неудаляющая} --- $\forall i \in \{i,\ldots,n\}, j\in \{1,\ldots,k_i\} \ x^i_j \text{ используется в } s_1,\ldots,s_k $
101+
\item \textbf{Непереставляющая} --- $\forall i \in \{i,\ldots,n\}, j,k\in \{1,\ldots,k_i\}, \text{если} j < k, \text{ то } x^i_j \text{ встречается в } s_1,\ldots,s_k \text{ перед } x^i_k$
102+
\item \textbf{Well-nested} --- неудаляющая, непереставляющая и
103+
\begin{align*}
104+
&\forall i,i' \in \{i,\ldots,n\}, i\neq i', \\
105+
&j\in \{1,\ldots,k_i-1\}, j\in \{1,\ldots,k_{i'}-1\},\\
106+
&s_1\cdots s_k \notin (\Sigma \cup X)^* x^i_j (\Sigma \cup X)^* x^{i'}_{j'} (\Sigma \cup X)^* x^i_{j+1} (\Sigma \cup X)^* x^{i'}_{j'+1}(\Sigma \cup X)^*
107+
\end{align*}
108+
\end{itemize}
109+
110+
Пример Well-nested MCFG
111+
\begin{itemize}
112+
\item[\faCheck] $A(x_1,z_1,z_2,x_2,y_1,y_2,y_3,x_3) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$
113+
\item[\faTimes] $A(z_1,x_1,y_1,x_2,z_2,y_2,x_3,y_3) \leftarrow B(x_1,x_2,x_3),C(y_1,y_2,y_3),D(z_1,z_2)$
114+
\end{itemize}
115+
116+
\begin{theorem}[Genaral MCFG]
117+
\begin{align*}
118+
&\forall L \in \text{m-MCFG } \exists n \geq 1 \ \underline{\boldsymbol{\exists} z} \in L (|z| \geq n) \\
119+
&\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\
120+
&\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L
121+
\end{align*}
122+
\end{theorem}
123+
124+
\begin{theorem}[Well-nested MCFG]
125+
\begin{align*}
126+
&\forall L \in \text{m-wnMCFG } \exists n \geq 1 \ \underline{\boldsymbol{\forall} z} \in L (|z| \geq n) \\
127+
&\exists \text{ разбиение } z=u_1 v_1 w_1 s_1 u_2 \ldots u_m v_m w_m s_m u_{m+1}, \Sigma|v_js_j| \geq 1 \\
128+
&\forall i \geq 0: z_i = u_1 v_1^i w_1 s_1^i u_2 \ldots u_m v_m^i w_m s_m^i u_{m+1} \in L
129+
\end{align*}
130+
\end{theorem}
131+
132+
\section{Иерархии внутри MCFL}
133+
134+
\begin{theorem}
135+
$(m*(k-1))$-$MCFL(r-k) \subseteq m$-$MCFL(r) $ если $1 \leq k \leq r - 2$
136+
\end{theorem}
134137

135-
Иерархии внутри MCFL
136-
\begin{theorem}
137-
$(m*(k-1))$-$MCFL(r-k) \subseteq m$-$MCFL(r) $ если $1 \leq k \leq r - 2$
138-
\end{theorem}
139-
140-
\begin{theorem}[Seki et al]
141-
$L_{m+1} = \{a_1^nb_1^n\cdots a_{m+1}^n b_{m+1}^n \mid n\in \mathbb{N}\}$ является $(m+1)$-$MCFL(1)$, но не является $m$-$MCFL(r)$ ни для какого $r$
142-
\end{theorem}
138+
\begin{theorem}[Seki et al]
139+
$L_{m+1} = \{a_1^nb_1^n\cdots a_{m+1}^n b_{m+1}^n \mid n\in \mathbb{N}\}$ является $(m+1)$-$MCFL(1)$, но не является $m$-$MCFL(r)$ ни для какого $r$
140+
\end{theorem}
143141

144142

145143
\begin{figure}
146144
\includegraphics[width=\textwidth]{figures/mcfg/mcfg.pdf}
147-
\label{fig:mcfg_hierarachy_1}
145+
\label{fig:mcfg_hierarachy_1}
148146
\caption{Иерархия по $m$}
149-
\end{figure}
147+
\end{figure}
150148

151-
Иерархия для $m=1$
149+
Иерархия для $m=1$
152150
\begin{theorem}
153151
1-MCFL = CFL
154152
\end{theorem}
155153

156154
\begin{theorem}
157155
1-MCFL(1) $\varsubsetneq$ 1-MCFL(2)
158156
\end{theorem}
159-
157+
160158
\begin{theorem}
161159
1-MCFL($r$) = 1-MCFL($r+1$), $r\geq2$
162160
\end{theorem}
163161

164-
Иерархия для $m=2$
162+
Иерархия для $m=2$
165163
\begin{theorem}[Ramow, Satta]
166164
2-MCFL(2) = 2-MCFL(3)
167165
\end{theorem}
@@ -172,9 +170,9 @@
172170

173171
\begin{figure}
174172
\includegraphics[width=\textwidth]{figures/mcfg/mcfg_2.pdf}
175-
\label{fig:mcfg_hierarachy_2}
173+
\label{fig:mcfg_hierarachy_2}
176174
\caption{Иерархия по $r$}
177-
\end{figure}
175+
\end{figure}
178176

179177

180178
Про MIX и $O_n$
@@ -185,16 +183,16 @@
185183
\item $MIX = \{\omega \in \{a,b,c\}^* \mid |\omega|_a = |\omega|_b = |\omega|_c\}$ --- MCFL? Хотелось верить, что нет
186184
\begin{itemize}
187185
\item \href{https://hal.inria.fr/inria-00564552/document}{MIX is a 2-MCFL and the word problem in $\mathbb{Z}^2$ is solved by a third-order collapsible pushdown automaton, Sylvain Salvati, 2011}~\cite{salvati:inria-00564552}
188-
\end{itemize}
186+
\end{itemize}
189187
\item $O_2=\{\omega \in \{a,\overline{a},b,\overline{b}\}^* \mid |\omega|_a=|\omega|_{\overline{a}} \wedge |w|_b=|w|_{\overline{b}}\}$
190188
\item $O_n=\{\omega \in \{a_1,\overline{a_1},a_2,\overline{a_2},\ldots,a_n,\overline{a_n}\}^* \mid |\omega|_{a_1}=|\omega|_{\overline{a_1}} \wedge |w|_{a_2}=|w|_{\overline{a_2}} \wedge \cdots \wedge |w|_{a_n}=|w|_{\overline{a_n}}\}$
191-
\item $MIX_n = \{\omega \in \{a_1,\ldots,a_n\}^* \mid |\omega|_{a_1} = |\omega|_{a_2} =\cdots = |\omega|_{a_n}\}$
189+
\item $MIX_n = \{\omega \in \{a_1,\ldots,a_n\}^* \mid |\omega|_{a_1} = |\omega|_{a_2} =\cdots = |\omega|_{a_n}\}$
192190
\item $MIX_n$ регулярно эквивалентен $O_n$ (существует алгоритм построения грамматики одного языка по грамматике другого)
193191
\begin{itemize}
194192
\item \href{https://hal.archives-ouvertes.fr/hal-01771670/document}{$O_n$ is an n-MCFL, Sylvain Salvati, 2018}~\cite{GEBHARDT202241}
195193
\end{itemize}
196194
\end{itemize}
197-
195+
198196

199197
\begin{itemize}
200198
\item Варианты леммы о накачке
@@ -203,5 +201,4 @@
203201
\item Многомерный язык Дика: \href{https://link.springer.com/chapter/10.1007/978-3-662-59620-3_5}{Towards a 2-Multiple Context-Free Grammar for the 3-Dimensional Dyck Language, Konstantinos Kogkalidis, Orestis Melkonian, 2019}~\cite{10.1007/978-3-662-59620-3_5}
204202
\item Шафл языков Дика: \href{https://dl.acm.org/doi/10.1145/3093333.3009848}{Context-sensitive data-dependence analysis via linear conjunctive language reachability, Qirun Zhang, Zhendong Su et al, 2017}~\cite{10.1145/3009837.3009848}
205203
\end{itemize}
206-
\end{itemize}
207-
204+
\end{itemize}

0 commit comments

Comments
 (0)