Skip to content

Commit 5017617

Browse files
committed
add more about MCFG and reorder chapters
1 parent 83b573e commit 5017617

File tree

2 files changed

+20
-153
lines changed

2 files changed

+20
-153
lines changed

tex/FormalLanguageConstrainedReachabilityLectureNotes.tex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
\input{FormalLanguageTheoryIntro}
5959
\input{RegularLanguages}
6060
\input{Context-Free_Languages}
61-
% \input{Multiple_Context-Free_Languages} % FIXME: Переписать главу
6261
% %\input{ConjunctiveAndBooleanLanguages}
6362
\input{FLPQ}
6463
\input{RPQ}
@@ -70,8 +69,8 @@
7069
\input{GLL-based_CFPQ}
7170
\input{GLR-based_CFPQ}
7271
% %\input{CombinatorsForCFPQ}
72+
\input{Multiple_Context-Free_Languages} % FIXME: Переписать главу
7373
\input{Multiple_Context-Free_Language_Reachability} % FIXME: Исправить главу
74-
\input{Multiple_Context-Free_Languages}
7574
% %\input{DerivativesForCFPQ}
7675
% %\input{CFPQ_to_Datalog}
7776
\input{Conclusion}
Lines changed: 19 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки\footnotemark}
2-
\footnotetext{Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовленные Сильваном Салвати (Sylvain Salvati): \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}}
1+
\chapter[Многокомпонентные контекстно-свободные языки]{Многокомпонентные контекстно-свободные языки}
2+
3+
\textit{Многокомпонентные контекстно-свободные грамматики (MCFG)} \sidenote{
4+
Мы дадим лишь базовые определения и приведём краткий обзор данного класса. В качестве отправной точки для более детального изучения можно порекомендовать материалы, подготовленные Сильваном Салвати (Sylvain Salvati) \url{https://www.labri.fr/perso/salvati/downloads/cours/esslli/}.
5+
} --- это строгое расширение контекстно-свободных грамматик для описания синтаксиса естественных языков.
6+
7+
Класс языков, порождаемых MCFG (называемых многокомпонентными контекстно-свободными языками, MCFL), входят в класс контекстно-зависимых языков и включают в себя класс контекстно-свободных языков.
38

49
\begin{definition}
510
\textit{m-MCFG(r)} это четвёрка $\langle \Sigma, N, S, P \rangle$
@@ -23,6 +28,18 @@
2328
MCFG позволяет правилам грамматики оперировать несколькими компонентами одновременно. Нетерминалы в MCFG могут выводить не одну строку, а кортеж из нескольких строк.
2429
Также, можно произвольно комбинировать компоненты — переставлять их, дублировать, вставлять между ними терминалы.
2530

31+
В литературе можно еще встретить следующую запись правил вывода:
32+
$$
33+
A_0 \leftarrow f[A_1, A_2,\ldots,A_q]
34+
$$
35+
где $f$ — функция, аргументы и значения которой представляют собой кортежи строк, и
36+
удовлетворяет следующим условиям:
37+
\begin{enumerate}
38+
\item Каждый компонент значения $f$ представляет собой конкатенацию некоторых константных строк и некоторых компонентов своих аргументов
39+
\item Каждый компонент не может встречаться в $f$ более одного раза.
40+
\end{enumerate}
41+
42+
2643
Приведём примеры многокомпонентных контекстно-свободных грамматик.
2744
Для начала рассмотрим грамматики для известных нам контекстно-свободных языков и перепишем их в MCFG грамматику:
2845

@@ -45,7 +62,6 @@
4562

4663
\end{itemize}
4764

48-
4965
Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным, но выразимого в 2-MCFG(2) грамматике :
5066
\begin{align*}
5167
S(x_1 y_1 x_2 y_2) & \leftarrow P(x1,x2),Q(y_1,y_2) \\
@@ -54,151 +70,3 @@
5470
Q(cx_1, dx_2) & \leftarrow Q(x_1,x_2) \\
5571
Q(\varepsilon,\varepsilon) &\leftarrow
5672
\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)}.
75-
76-
sLMG является ограниченным подклассом LMG (Literal Movement Grammar).
77-
Общее определение LMG допускает любую комбинацию переменных и терминалов в компонентах левой и правой части правила.
78-
LMG являются грамматическими формализмами, основанными на предикатах над строковыми кортежами и расширяют класс контекстно-свободных грамматик.
79-
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, где каждая клауза (правило) должна удовлетворять трём синтаксическим ограничениям:
87-
\begin{itemize}
88-
\item Non-combinatorial (некомбинаторность). Аргументы каждого $\psi_i$ должны быть переменными.
89-
\item Bottom-up nonerasing (восходящая неудаляемость). Все переменные из каждого $\psi_i$ также должны встречаться в $\varphi$. Это означает, что правая часть не может вводить новые переменные —-- все переменные должны "приходить" из левой части.
90-
\item Bottom-up linear (восходящая линейность). Ни одна переменная не встречается в $\varphi$ более одного раза.
91-
\end{itemize}
92-
\end{enumerate}
93-
94-
$MCFL \varsubsetneq PMCFL \varsubsetneq simpleLMG = P$
95-
96-
$\{a^{2^n} \mid n\geq 0\} \in PMCFL - MCFL $
97-
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}
137-
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}
141-
142-
143-
\begin{figure}
144-
\includegraphics[width=\textwidth]{figures/mcfg/mcfg.pdf}
145-
\label{fig:mcfg_hierarachy_1}
146-
\caption{Иерархия по $m$}
147-
\end{figure}
148-
149-
Иерархия для $m=1$
150-
\begin{theorem}
151-
1-MCFL = CFL
152-
\end{theorem}
153-
154-
\begin{theorem}
155-
1-MCFL(1) $\varsubsetneq$ 1-MCFL(2)
156-
\end{theorem}
157-
158-
\begin{theorem}
159-
1-MCFL($r$) = 1-MCFL($r+1$), $r\geq2$
160-
\end{theorem}
161-
162-
Иерархия для $m=2$
163-
\begin{theorem}[Ramow, Satta]
164-
2-MCFL(2) = 2-MCFL(3)
165-
\end{theorem}
166-
167-
\begin{theorem}
168-
Если $m>2$ или $r>2$, то m-MCFL(r) $\varsubsetneq$ m-MCFL(r+1)
169-
\end{theorem}
170-
171-
\begin{figure}
172-
\includegraphics[width=\textwidth]{figures/mcfg/mcfg_2.pdf}
173-
\label{fig:mcfg_hierarachy_2}
174-
\caption{Иерархия по $r$}
175-
\end{figure}
176-
177-
178-
Про MIX и $O_n$
179-
180-
\begin{itemize}
181-
\item $mix = \{\omega \in \{a,b\}^* \mid |\omega|_a = |\omega|_b \}$ --- контекстно-свободный язык
182-
183-
\item $MIX = \{\omega \in \{a,b,c\}^* \mid |\omega|_a = |\omega|_b = |\omega|_c\}$ --- MCFL? Хотелось верить, что нет
184-
\begin{itemize}
185-
\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}
186-
\end{itemize}
187-
\item $O_2=\{\omega \in \{a,\overline{a},b,\overline{b}\}^* \mid |\omega|_a=|\omega|_{\overline{a}} \wedge |w|_b=|w|_{\overline{b}}\}$
188-
\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}}\}$
189-
\item $MIX_n = \{\omega \in \{a_1,\ldots,a_n\}^* \mid |\omega|_{a_1} = |\omega|_{a_2} =\cdots = |\omega|_{a_n}\}$
190-
\item $MIX_n$ регулярно эквивалентен $O_n$ (существует алгоритм построения грамматики одного языка по грамматике другого)
191-
\begin{itemize}
192-
\item \href{https://hal.archives-ouvertes.fr/hal-01771670/document}{$O_n$ is an n-MCFL, Sylvain Salvati, 2018}~\cite{GEBHARDT202241}
193-
\end{itemize}
194-
\end{itemize}
195-
196-
197-
\begin{itemize}
198-
\item Варианты леммы о накачке
199-
\item Представимость конкретных языков
200-
\begin{itemize}
201-
\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}
202-
\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}
203-
\end{itemize}
204-
\end{itemize}

0 commit comments

Comments
 (0)