Skip to content

Commit b998210

Browse files
committed
Наброски по MCFG
1 parent 8259136 commit b998210

File tree

6 files changed

+530
-3
lines changed

6 files changed

+530
-3
lines changed

tex/FormalLanguageConstrainedReachabilityLectureNotes.tex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
\usepackage{multicol}
2020
\usepackage[bb=boondox]{mathalfa}
2121
\usepackage{subcaption}
22+
\usepackage{fontawesome}
2223

2324
\usetikzlibrary{fit,calc,automata,positioning}
2425
\usetikzlibrary{shapes.geometric}
@@ -94,6 +95,12 @@
9495
\newcommand{\first}[1][1]{\textsc{first}_{#1}}
9596
\newcommand{\follow}[1][1]{\textsc{follow}_{#1}}
9697

98+
\newcommand{\highlight}[2][yellow]{\mathchoice%
99+
{\colorbox{#1}{$\displaystyle#2$}}%
100+
{\colorbox{#1}{$\textstyle#2$}}%
101+
{\colorbox{#1}{$\scriptstyle#2$}}%
102+
{\colorbox{#1}{$\scriptscriptstyle#2$}}}%
103+
97104
\setcounter{MaxMatrixCols}{20}
98105

99106

Lines changed: 202 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,207 @@
1-
\chapter{Многокомпонентные контекстно-свободные языки}
1+
\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки\footnote{Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовдленные Сильваном Салвати (Sylvain Salvati): \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}}}
22

3-
Общая теория. Определение, свойства, классы.
3+
\textit{Многокомпонентны контекстно-свободные языки} (и соответствующий класс грамматик) --- это строгое расширение контекстно-свободных языков (грамматик), обладающее рядом свойств !!!
4+
5+
\begin{definition}
6+
\textit{m-MCFG(r)} это четвёрка $\langle \Sigma, N, S, P \rangle$
7+
\begin{itemize}
8+
\item $\Sigma$ --- терминальный алфавит
9+
\item $N$ --- нетерминальные символы. Максимальный ранг (арность, местность) равен $m$.
10+
\item $S$ --- стартовый нетерминальный символ ранга 1
11+
\item $P$ --- множество правил вида
12+
$$
13+
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)
14+
$$
15+
\begin{itemize}
16+
\item $A$ --- нетерминал ранга $k$, $B_i$ --- нетерминалы ранга $k_i$, $n \leq r$
17+
\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}$
19+
\end{itemize}
20+
\end{itemize}
21+
\end{definition}
22+
23+
Приведём примеры многокомпонентных контекстно-свободных грамматик. Для начал рассмотрим грамматики для известных нам контекстно-свободных языков:
24+
\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}
61+
62+
Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным:
63+
\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
69+
\end{align*}
70+
71+
72+
73+
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}
91+
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 $
99+
100+
Разновидности MCFG
101+
\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*}
110+
\end{itemize}
111+
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}
118+
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}
126+
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}
134+
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}
143+
144+
145+
\begin{figure}
146+
\includegraphics[width=\textwidth]{figures/mcfg/mcfg.pdf}
147+
\label{fig:mcfg_hierarachy_1}
148+
\caption{Иерархия по $m$}
149+
\end{figure}
150+
151+
Иерархия для $m=1$
152+
\begin{theorem}
153+
1-MCFL = CFL
154+
\end{theorem}
155+
156+
\begin{theorem}
157+
1-MCFL(1) $\varsubsetneq$ 1-MCFL(2)
158+
\end{theorem}
159+
160+
\begin{theorem}
161+
1-MCFL($r$) = 1-MCFL($r+1$), $r\geq2$
162+
\end{theorem}
163+
164+
Иерархия для $m=2$
165+
\begin{theorem}[Ramow, Satta]
166+
2-MCFL(2) = 2-MCFL(3)
167+
\end{theorem}
168+
169+
\begin{theorem}
170+
Если $m>2$ или $r>2$, то m-MCFL(r) $\varsubsetneq$ m-MCFL(r+1)
171+
\end{theorem}
172+
173+
\begin{figure}
174+
\includegraphics[width=\textwidth]{figures/mcfg/mcfg_2.pdf}
175+
\label{fig:mcfg_hierarachy_2}
176+
\caption{Иерархия по $r$}
177+
\end{figure}
4178

5-
Леммы о накачке.
6179

7180
Про MIX и $O_n$
8181

182+
\begin{itemize}
183+
\item $mix = \{\omega \in \{a,b\}^* \mid |\omega|_a = |\omega|_b \}$ --- контекстно-свободный язык
184+
185+
\item $MIX = \{\omega \in \{a,b,c\}^* \mid |\omega|_a = |\omega|_b = |\omega|_c\}$ --- MCFL? Хотелось верить, что нет
186+
\begin{itemize}
187+
\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}
188+
\end{itemize}
189+
\item $O_2=\{\omega \in \{a,\overline{a},b,\overline{b}\}^* \mid |\omega|_a=|\omega|_{\overline{a}} \wedge |w|_b=|w|_{\overline{b}}\}$
190+
\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}\}$
192+
\item $MIX_n$ регулярно эквивалентен $O_n$ (существует алгоритм построения грамматики одного языка по грамматике другого)
193+
\begin{itemize}
194+
\item \href{https://hal.archives-ouvertes.fr/hal-01771670/document}{$O_n$ is an n-MCFL, Sylvain Salvati, 2018}
195+
\end{itemize}
196+
\end{itemize}
197+
198+
199+
\begin{itemize}
200+
\item Варианты леммы о накачке
201+
\item Представимость конкретных языков
202+
\begin{itemize}
203+
\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}
204+
\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}
205+
\end{itemize}
206+
\end{itemize}
207+

tex/figures/mcfg/mcfg.pdf

6.52 KB
Binary file not shown.

tex/figures/mcfg/mcfg.svg

Lines changed: 164 additions & 0 deletions
Loading

tex/figures/mcfg/mcfg_2.pdf

5.91 KB
Binary file not shown.

0 commit comments

Comments
 (0)