You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Данный текст есть попытка изложить основные идеи и результаты в такой области, как поиск путей (или достижимость) с ограничениями в терминах формальных языков. Наиболее часто встречающиеся частные случаи данной задачи, с которыми достаточно легко встретиться в литературе, следующие.
8
7
- Поиск путей с регулярными ограничениями, Regular Path Querying, RPQ.
@@ -20,8 +19,8 @@
20
19
21
20
## Скачать pdf
22
21
23
-
* Текущую версию можно найти в [артефактах сборки](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/actions).
24
-
* Официальные "издания" можно найти в [релизах](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/releases).
22
+
* Текущую версию можно найти в [артефактах сборки](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/actions).
23
+
* Официальные "издания" можно найти в [релизах](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/releases).
25
24
26
25
## Собрать из исходников
27
26
@@ -37,10 +36,10 @@ make
37
36
38
37
## Задать вопрос
39
38
40
-
- Задать вопрос, высказать пожелания или предложения можно в [разделе для дискуссий](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/discussions).
41
-
- Сообщить о неточностях, ошибках в тексте, технических проблемах с компиляцией pdf из исходников можно [заведя issue](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/issues).
39
+
- Задать вопрос, высказать пожелания или предложения можно в [разделе для дискуссий](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/discussions).
40
+
- Сообщить о неточностях, ошибках в тексте, технических проблемах с компиляцией pdf из исходников можно [заведя issue](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/issues).
42
41
- Внести свой вклад в развитие проекта можно сдлеав fork и открыв pull request.
43
42
44
43
## Лицензия
45
44
46
-
Данный текст опубликован под лицензией [Creative Commons Attribution Share Alike 4.0 International](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/blob/main/LICENSE.txt).
45
+
Данный текст опубликован под лицензией [Creative Commons Attribution Share Alike 4.0 International](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/blob/main/LICENSE.txt).
Copy file name to clipboardExpand all lines: tex/Context-Free_Languages.tex
+12-18Lines changed: 12 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ \chapter{Контекстно-свободные языки и граммати
25
25
26
26
27
27
\begin{definition}\label{defderivabilityinCFG}
28
-
\textit{Отношение непосредственной выводимости}. Мы говорим, что последовательность терминалов и нетерминалов $\gamma\alpha\delta$\textit{непосредственно выводится из} $\gamma\beta\delta$\textit{при помощи правила} $\alpha\rightarrow\beta$ ($\gamma\alpha\delta\Rightarrow\gamma\beta\delta$), если
28
+
\textit{Отношение непосредственной выводимости}. Мы говорим, что последовательность терминалов и нетерминалов $\gamma\beta\delta$\textit{непосредственно выводится из} $\gamma\alpha\delta$\textit{при помощи правила} $\alpha\rightarrow\beta$ ($\gamma\alpha\delta\Rightarrow\gamma\beta\delta$), если
@@ -466,19 +466,16 @@ \section{Замкнутость КС языков относительно оп
466
466
\item Разность с регулярными языками: если $L_1$ --- контекстно-свободный, а $L_2$ --- регулярный, то $L_3 = L_1\setminus L_2$ --- контекстно-свободный.
467
467
\end{enumerate}
468
468
\end{theorem}
469
-
Для доказательства пунктов 1--4 можно построить КС грамматику нового языка, имея грамматики для исходных.
469
+
Для доказательства пунктов 1--4 можно построить КС грамматику нового языка имея грамматики для исходных.
470
470
Будем предполагать, что множества нетерминальных символов различных грамматик для исходных языков не пересекаются.
471
-
Пусть $G_1=\langle\Sigma_1,N_1,P_1,S_1\rangle$ --- грамматика для $L_1$, $G_1=\langle\Sigma_2,N_2,P_2,S_2\rangle$ --- грамматика для $L_2$.
472
471
\begin{enumerate}
473
-
\item$G_3=\langle\Sigma_1\cup\Sigma_2, N_1\cup N_2\cup\{S_3\}, P_1\cup P_2\cup\{S_3\to S_1\mid S_2\} ,S_3\rangle$ --- грамматика для $L_3$.
472
+
\item$G_1=\langle\Sigma_1,N_1,P_1,S_1\rangle$ --- грамматика для $L_1$, $G_1=\langle\Sigma_2,N_2,P_2,S_2\rangle$ --- грамматика для $L_2$, тогда $G_3=\langle\Sigma_1\cup\Sigma_2, N_1\cup N_2\cup\{S_3\}, P_1\cup P_2\cup\{S_3\to S_1\mid S_2\} ,S_3\rangle$ --- грамматика для $L_3$.
474
473
475
-
\item$G_3=\langle\Sigma_1\cup\Sigma_2, N_1\cup N_2\cup\{S_3\}, P_1\cup P_2\cup\{S_3\to S_1 S_2\} ,S_3\rangle$ --- грамматика для $L_3$.
476
-
477
-
\item$G_2=\langle\Sigma_1, N_1\cup\{S_2\}, P_1\cup\{S_2\to S_1 S_2\ \mid\varepsilon\}, S_2\rangle$ --- грамматика для $L_2$.
478
-
479
-
\item$G_2=\langle\Sigma_1, N_1, \{N^i \to\omega^R \mid N^i \to\omega\in P_1\}, S_1\rangle$ --- грамматика для $L_2 = L_1^r$.
474
+
\item$G_1=\langle\Sigma_1,N_1,P_1,S_1\rangle$ --- грамматика для $L_1$, $G_1=\langle\Sigma_2,N_2,P_2,S_2\rangle$ --- грамматика для $L_2$, тогда $G_3=\langle\Sigma_1\cup\Sigma_2, N_1\cup N_2\cup\{S_3\}, P_1\cup P_2\cup\{S_3\to S_1 S_2\} ,S_3\rangle$ --- грамматика для $L_3$.
480
475
476
+
\item$G_1=\langle\Sigma_1,N_1,P_1,S_1\rangle$ --- грамматика для $L_1$, тогда $G_2=\langle\Sigma_1, N_1\cup\{S_2\}, P_1\cup\{S_2\to S_1 S_2\ \mid\varepsilon\}, S_2\rangle$ --- грамматика для $L_2$.
481
477
478
+
\item$G_1=\langle\Sigma_1,N_1,P_1,S_1\rangle$ --- грамматика для $L_1$, тогда $G_2=\langle\Sigma_1, N_1, \{N^i \to\omega^R \mid N^i \to\omega\in P_1\}, S_1\rangle$ --- грамматика для $L_2$.
482
479
\end{enumerate}
483
480
484
481
Чтобы доказать замкнутость относительно пересечения с регулярными языками, построим по КС грамматике рекурсивный автомат $R_1$, по регулярному выражению --- детерминированный конечный автомат $R_2$, и построим их прямое произведение $R_3$.
@@ -509,15 +506,12 @@ \section{Замкнутость КС языков относительно оп
509
506
\begin{enumerate}
510
507
\item Рассмотрим языки $L_4 = \{a^m b^n c^k \mid m \neq n, k \geq0\}$ и $L_5 = \{a^m b^n c^k \mid n \neq k, m \geq0\}$.
511
508
Эти языки являются контекстно-свободными.
512
-
Это легко заметить, если знать, что язык $L'_4 = \{a^m b^n c^k
513
-
\mid0\leq m < n, k \geq0\}$ задаётся следующей грамматикой:
514
-
\begin{align*}
515
-
S & \to S c \\
516
-
S & \to T \\
517
-
T & \to a T b \\
518
-
T & \to T b \\
519
-
T & \to b
520
-
\end{align*}
509
+
Это легко заметить, если знать, что язык $L'_4 = \{a^m b^n c^k \mid0\leq m < n, k \geq0\}$ задаётся следующей грамматикой:
510
+
\begin{align*}
511
+
S \to & S c & T \to & a T b \\
512
+
S \to & T & T \to & T b \\
513
+
& & T \to & b.
514
+
\end{align*}
521
515
522
516
\item Рассмотрим язык $L_6 = \overline{L'_6} = \overline{\{a^n b^m c^k \mid n \geq 0, m \geq 0, k \geq 0\}}$. Данный язык является регулярным.
Copy file name to clipboardExpand all lines: tex/LinearAlgebra.tex
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -208,7 +208,7 @@ \section{Полукольцо}
208
208
209
209
\begin{definition}
210
210
211
-
Непустое множество $R$ с двумя бинарными операциями $\oplus\colon R \times R \to R$ (часто называют сложением) и $\otimes\colon R \times R \to R$ (часто называют умножением) называется \emph{полукольцом}, если выполнены следующие условия.
211
+
Непустое множество $R$ с двумя бинарными операциями $\oplus\colon R \times R \to R$ (часто называют сложением) и $\otimes\colon R \times R \to R$ (часто называют умножением) называется \emph{полукольцом}, если выполнены следующие условия.
212
212
\begin{enumerate}
213
213
214
214
\item$(R, \oplus)$ --- это коммутативный моноид, нейтральный элемент которого --- $\mathbb{0}$. Для любых $a,b,c \in R$:
% \item Привидите примеры ситуаций, когда наличие у бинарных операций каких-либо дополнитльных свойств (ассоциативности, коммутативности), позволяет строить более эффективные алгоритмы, чем в общем случае.
Copy file name to clipboardExpand all lines: tex/Matrix-based_CFPQ.tex
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
\chapter[Контекстно-свободная достижимость через произведение матриц]{Контекстно-свободная достижимость через произведение матриц}\label{chpt:MatrixBasedAlgos}
2
2
\chaptermark{КС достижимость через произведение матриц}
3
3
4
-
В данном разделе мы рассмотрим алгоритм решения задачи контекстно-свободной достижимости, основанный на произведении матриц. Будет показано, что при использовании конъюнктивныхграмматик, представленный алгоритм находит переапроксимацию истинного решения задачи.
4
+
В данном разделе мы рассмотрим алгоритм решения задачи контекстно-свободной достижимости, основанный на произведении матриц. Будет показано, что при использовании конъюнктивных грамматик, представленный алгоритм находит переапроксимацию истинного решения задачи.
5
5
6
6
\section[Алгоритм контекстно-свободной достижимости через произведение матриц]{Алгоритм контекстно-свободной достижимости через произведение матриц\sectionmark{Алгоритм КС достижимости через произведение матриц}}
7
7
\sectionmark{Алгоритм КС достижимости через произведение матриц}
@@ -25,7 +25,7 @@
25
25
Для частного случая этой задачи, синтаксического анализа линейного входа, существует алгоритм Валианта~\cite{Valiant:1975:GCR:1739932.1740048}, использующий эту идею.
26
26
Однако он не обобщается на графы из-за того, что существенно использует возможность упорядочить обход матрицы (см. разницу в CYK для линейного случая и для графа).
27
27
Поэтому, хотя для линейного случая алгоритм Валианта является алгоритмом синтаксического анализа для произвольных КС грамматик за субкубическое время, его обобщение до задачи КС достижимости в произвольных графах с сохранением асимптотики является нетривиальной задачей~\cite{Yannakakis}.
28
-
В настоящее время алгоритм с субкубической сложностью получен только для частного случая --- языка Дика с одним типом скобок --- Филипом Брэдфордом~\cite{8249039}.
28
+
В настоящее время алгоритм с субкубической сложностью получен только для частного случая --- языка Дика с одним типом скобок --- Филипом Брэдфорlом~\cite{8249039}.
29
29
30
30
В случае с линейным входом, отдельного внимания заслуживает работа Лиллиан Ли (Lillian Lee)~\cite{Lee:2002:FCG:505241.505242}, где она показывает, что задача перемножения матриц сводима к синтаксическому анализу линейного входа. Аналогичных результатов для графов на текущий момент не известно.
31
31
@@ -212,7 +212,7 @@ \subsection{Расширение алгоритма для конъюнктив
212
212
\input{figures/multi/graph0.tex}
213
213
\end{center}
214
214
Применяя алгоритм, получим, что существует путь из вершины 0 в вершину 4, выводимый из нетерминала $S$. Однако очевидно, что в графе такого пути нет.
215
-
Такое поведение алгоритма наблюдается из-за того, что существует путь ``abcc'', соответствующий $L(AB) = \{abc^*\}$ и путь ``aabc'', соответствующий $L(DC) = \{a^{*}bc\}$, но они различны. Однако алгоритм не может это проверить, так как оперирует понятием достижимости между вершинами, а не наличием различных путей. Более того, в общем случае для конъюнктивных грамматик такую проверку реализовать нельзя. Поэтому для классической семантики достижимости с ограничениями в терминах конъюнктивных грамматик результат работы алгоритма является оценкой сверху.
215
+
Такое поведение алгоритма наблюдается из-за того, что существует путь ``abcc'', соответствующий $L(AB) = \{abc^*\}$ и путь ``aabc'', соответствующий $L(DC) = \{a^{*}bc\}$, но они различны. Однако алгоритм не может это проверить, так как оперирует понятием достижимости между вершинами, а не наличием различных путей. Более того, в общем случае для конъюнктивных грамматик такую проверку реалиховать нельзя. Поэтому для классической семантики достидимости с ограничениями в терминах конъюнктивных грамматик результат работы алгоритма является оценкой сверху.
216
216
217
217
Существует альтернативная семантика, когда мы трактуем конъюнкцию в правой части правил как конъюнкцию в Datalog (подробнее о Datalog в параграфе~\ref{SubsectionDatalog}). Т.е если есть правило $S \to AB \& DC$, то должен быть путь принадлежащий языку $L(AB)$ и путь принадлежащий языку $L(DC)$. В такой семантике алгоритм дает точный ответ.
0 commit comments