|
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), входят в класс контекстно-зависимых языков и включают в себя класс контекстно-свободных языков. |
3 | 8 |
|
4 | 9 | \begin{definition} |
5 | 10 | \textit{m-MCFG(r)} это четвёрка $\langle \Sigma, N, S, P \rangle$ |
|
23 | 28 | MCFG позволяет правилам грамматики оперировать несколькими компонентами одновременно. Нетерминалы в MCFG могут выводить не одну строку, а кортеж из нескольких строк. |
24 | 29 | Также, можно произвольно комбинировать компоненты — переставлять их, дублировать, вставлять между ними терминалы. |
25 | 30 |
|
| 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 | + |
26 | 43 | Приведём примеры многокомпонентных контекстно-свободных грамматик. |
27 | 44 | Для начала рассмотрим грамматики для известных нам контекстно-свободных языков и перепишем их в MCFG грамматику: |
28 | 45 |
|
|
45 | 62 |
|
46 | 63 | \end{itemize} |
47 | 64 |
|
48 | | - |
49 | 65 | Теперь рассмотрим грамматику для языка $L = \{a^nc^mb^nd^m \mid n \in \mathbb{N}, m \in \mathbb{N} \}$, не являющегося контекстно-свободным, но выразимого в 2-MCFG(2) грамматике : |
50 | 66 | \begin{align*} |
51 | 67 | S(x_1 y_1 x_2 y_2) & \leftarrow P(x1,x2),Q(y_1,y_2) \\ |
|
54 | 70 | Q(cx_1, dx_2) & \leftarrow Q(x_1,x_2) \\ |
55 | 71 | Q(\varepsilon,\varepsilon) &\leftarrow |
56 | 72 | \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