Skip to content

Commit e56b1b1

Browse files
committed
Merge remote-tracking branch 'origin/main' into dev
2 parents b998210 + 0eb35ba commit e56b1b1

File tree

7 files changed

+29
-37
lines changed

7 files changed

+29
-37
lines changed

README.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# О достижимости с ограничениями в терминах формальных языков
22

3-
[![JB Research](https://jb.gg/badges/research-flat-square.svg)](https://research.jetbrains.org/)
4-
[![Ubuntu](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/actions/workflows/main.yml)
5-
[![License](https://img.shields.io/badge/license-CC--BY--SA--4.0-orange)](https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes/blob/master/LICENSE.txt)
3+
[![Ubuntu](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/actions/workflows/main.yml)
4+
[![License](https://img.shields.io/badge/license-CC--BY--SA--4.0-orange)](https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes/blob/master/LICENSE.txt)
65

76
Данный текст есть попытка изложить основные идеи и результаты в такой области, как поиск путей (или достижимость) с ограничениями в терминах формальных языков. Наиболее часто встречающиеся частные случаи данной задачи, с которыми достаточно легко встретиться в литературе, следующие.
87
- Поиск путей с регулярными ограничениями, Regular Path Querying, RPQ.
@@ -20,8 +19,8 @@
2019

2120
## Скачать pdf
2221

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).
2524

2625
## Собрать из исходников
2726

@@ -37,10 +36,10 @@ make
3736

3837
## Задать вопрос
3938

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).
4241
- Внести свой вклад в развитие проекта можно сдлеав fork и открыв pull request.
4342

4443
## Лицензия
4544

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).

tex/CYK_for_CFPQ.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,4 +729,4 @@ \section{Алгоритм для графов на основе CYK}
729729
%
730730
% \item Оцените временную сложность алгоритма Хеллингса и сравните её с оценкой для наивного обобщения CYK.
731731
%
732-
%\end{enumerate}
732+
%\end{enumerate}

tex/Context-Free_Languages.tex

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ \chapter{Контекстно-свободные языки и граммати
2525

2626

2727
\begin{definition}\label{def derivability in CFG}
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$), если
2929
\begin{itemize}
3030
\item $\alpha \rightarrow \beta \in P$
3131
\item $\gamma, \delta \in \{\Sigma \cup N\}^* \cup {\varepsilon}$
@@ -466,19 +466,16 @@ \section{Замкнутость КС языков относительно оп
466466
\item Разность с регулярными языками: если $L_1$ --- контекстно-свободный, а $L_2$ --- регулярный, то $L_3 = L_1 \setminus L_2$ --- контекстно-свободный.
467467
\end{enumerate}
468468
\end{theorem}
469-
Для доказательства пунктов 1--4 можно построить КС грамматику нового языка, имея грамматики для исходных.
469+
Для доказательства пунктов 1--4 можно построить КС грамматику нового языка имея грамматики для исходных.
470470
Будем предполагать, что множества нетерминальных символов различных грамматик для исходных языков не пересекаются.
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$.
472471
\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$.
474473

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$.
480475

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$.
481477

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$.
482479
\end{enumerate}
483480

484481
Чтобы доказать замкнутость относительно пересечения с регулярными языками, построим по КС грамматике рекурсивный автомат $R_1$, по регулярному выражению --- детерминированный конечный автомат $R_2$, и построим их прямое произведение $R_3$.
@@ -509,15 +506,12 @@ \section{Замкнутость КС языков относительно оп
509506
\begin{enumerate}
510507
\item Рассмотрим языки $L_4 = \{a^m b^n c^k \mid m \neq n, k \geq 0\}$ и $L_5 = \{a^m b^n c^k \mid n \neq k, m \geq 0\}$.
511508
Эти языки являются контекстно-свободными.
512-
Это легко заметить, если знать, что язык $L'_4 = \{a^m b^n c^k
513-
\mid 0 \leq m < n, k \geq 0\}$ задаётся следующей грамматикой:
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 \mid 0 \leq m < n, k \geq 0\}$ задаётся следующей грамматикой:
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*}
521515

522516
\item Рассмотрим язык $L_6 = \overline{L'_6} = \overline{\{a^n b^m c^k \mid n \geq 0, m \geq 0, k \geq 0\}}$. Данный язык является регулярным.
523517

tex/LinearAlgebra.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ \section{Полукольцо}
208208

209209
\begin{definition}
210210

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{полукольцом}, если выполнены следующие условия.
212212
\begin{enumerate}
213213

214214
\item $(R, \oplus)$ --- это коммутативный моноид, нейтральный элемент которого --- $\mathbb{0}$. Для любых $a,b,c \in R$:
@@ -765,4 +765,4 @@ \section{Теоретическая сложность умножения мат
765765
%\begin{enumerate}
766766
% \item Привидите примеры некоммутативных операций.
767767
% \item Привидите примеры ситуаций, когда наличие у бинарных операций каких-либо дополнитльных свойств (ассоциативности, коммутативности), позволяет строить более эффективные алгоритмы, чем в общем случае.
768-
%\end{enumerate}
768+
%\end{enumerate}

tex/Matrix-based_CFPQ.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
\chapter[Контекстно-свободная достижимость через произведение матриц]{Контекстно-свободная достижимость через произведение матриц}\label{chpt:MatrixBasedAlgos}
22
\chaptermark{КС достижимость через произведение матриц}
33

4-
В данном разделе мы рассмотрим алгоритм решения задачи контекстно-свободной достижимости, основанный на произведении матриц. Будет показано, что при использовании конъюнктивныхграмматик, представленный алгоритм находит переапроксимацию истинного решения задачи.
4+
В данном разделе мы рассмотрим алгоритм решения задачи контекстно-свободной достижимости, основанный на произведении матриц. Будет показано, что при использовании конъюнктивных грамматик, представленный алгоритм находит переапроксимацию истинного решения задачи.
55

66
\section[Алгоритм контекстно-свободной достижимости через произведение матриц]{Алгоритм контекстно-свободной достижимости через произведение матриц\sectionmark{Алгоритм КС достижимости через произведение матриц}}
77
\sectionmark{Алгоритм КС достижимости через произведение матриц}
@@ -25,7 +25,7 @@
2525
Для частного случая этой задачи, синтаксического анализа линейного входа, существует алгоритм Валианта~\cite{Valiant:1975:GCR:1739932.1740048}, использующий эту идею.
2626
Однако он не обобщается на графы из-за того, что существенно использует возможность упорядочить обход матрицы (см. разницу в CYK для линейного случая и для графа).
2727
Поэтому, хотя для линейного случая алгоритм Валианта является алгоритмом синтаксического анализа для произвольных КС грамматик за субкубическое время, его обобщение до задачи КС достижимости в произвольных графах с сохранением асимптотики является нетривиальной задачей~\cite{Yannakakis}.
28-
В настоящее время алгоритм с субкубической сложностью получен только для частного случая --- языка Дика с одним типом скобок --- Филипом Брэдфордом~\cite{8249039}.
28+
В настоящее время алгоритм с субкубической сложностью получен только для частного случая --- языка Дика с одним типом скобок --- Филипом Брэдфорlом~\cite{8249039}.
2929

3030
В случае с линейным входом, отдельного внимания заслуживает работа Лиллиан Ли (Lillian Lee)~\cite{Lee:2002:FCG:505241.505242}, где она показывает, что задача перемножения матриц сводима к синтаксическому анализу линейного входа. Аналогичных результатов для графов на текущий момент не известно.
3131

@@ -212,7 +212,7 @@ \subsection{Расширение алгоритма для конъюнктив
212212
\input{figures/multi/graph0.tex}
213213
\end{center}
214214
Применяя алгоритм, получим, что существует путь из вершины 0 в вершину 4, выводимый из нетерминала $S$. Однако очевидно, что в графе такого пути нет.
215-
Такое поведение алгоритма наблюдается из-за того, что существует путь ``abcc'', соответствующий $L(AB) = \{abc^*\}$ и путь ``aabc'', соответствующий $L(DC) = \{a^{*}bc\}$, но они различны. Однако алгоритм не может это проверить, так как оперирует понятием достижимости между вершинами, а не наличием различных путей. Более того, в общем случае для конъюнктивных грамматик такую проверку реализовать нельзя. Поэтому для классической семантики достижимости с ограничениями в терминах конъюнктивных грамматик результат работы алгоритма является оценкой сверху.
215+
Такое поведение алгоритма наблюдается из-за того, что существует путь ``abcc'', соответствующий $L(AB) = \{abc^*\}$ и путь ``aabc'', соответствующий $L(DC) = \{a^{*}bc\}$, но они различны. Однако алгоритм не может это проверить, так как оперирует понятием достижимости между вершинами, а не наличием различных путей. Более того, в общем случае для конъюнктивных грамматик такую проверку реалиховать нельзя. Поэтому для классической семантики достидимости с ограничениями в терминах конъюнктивных грамматик результат работы алгоритма является оценкой сверху.
216216

217217
Существует альтернативная семантика, когда мы трактуем конъюнкцию в правой части правил как конъюнкцию в Datalog (подробнее о Datalog в параграфе~\ref{Subsection Datalog}). Т.е если есть правило $S \to AB \& DC$, то должен быть путь принадлежащий языку $L(AB)$ и путь принадлежащий языку $L(DC)$. В такой семантике алгоритм дает точный ответ.
218218
\end{example}

0 commit comments

Comments
 (0)