Skip to content

Commit 7568b0a

Browse files
committed
Add FLPQ chapter
1 parent c559ddd commit 7568b0a

File tree

2 files changed

+60
-65
lines changed

2 files changed

+60
-65
lines changed

tex/FLPQ.tex

+59-64
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,64 @@
1-
\chapter[Пути с ограничениями в терминах формальных языков]{Задача о поиске путей с ограничениями в терминах формальных языков}\label{chpt:FLPQ}
2-
3-
1+
\setchapterpreamble[u]{\margintoc}
2+
\chapter[Пути с ограничениями в терминах формальных языков]{Задача о поиске путей с ограничениями в терминах формальных языков}
3+
\label{chpt:FLPQ}
4+
\tikzsetfigurename{FLPQ_}
45

56
В данной главе сформулируем постановку задачи о поиске путей в графе с ограничениями.
67
Также мы приведём несколько примеров областей, в которых применяются алгоритмы решения этой задачи.
78

8-
\section{Постановка задачи }
9+
\section{Постановка задачи}
910

10-
11-
Пусть нам дан конечный ориентированный помеченный граф $\mathcal{G}=\langle V,E,L \rangle$.
12-
Функция $\omega(\pi) = \omega((v_0, l_0, v_1),(v_1,l_1,v_2),\dots,(v_{n-1},l_{n-1},v_n)) = l_0 \cdot l_1 \cdot \ldots \cdot l_{n-1} $ строит слово по пути посредством конкатенации меток рёбер вдоль этого пути.
13-
Очевидно, для пустого пути данная функция будет возвращать пустое слово, а для пути длины $n > 0$ --- непустое слово длины $n$.
11+
Пусть нам дан конечный ориентированный помеченный граф $\mscrG = \langle V, E, L \rangle$.
12+
Функция $\omega(\pi) = \omega((v_0, l_0, v_1), (v_1, l_1, v_2), \dots, (v_{n-1}, l_{n-1}, v_n)) = l_0 \cdot l_1 \cdot \dots \cdot l_{n-1}$ строит слово по пути посредством конкатенации меток рёбер вдоль этого пути.
13+
Очевидно, для пустого пути данная функция будет возвращать пустое слово, а для пути длины $n > 0$~--- непустое слово длины $n$.
1414

1515
Если теперь рассматривать задачу поиска путей, то окажется, что то множество путей, которое мы хотим найти, задаёт множество слов, то есть язык.
1616
А значит, критерий поиска мы можем сформулировать следующим образом: нас интересуют такие пути, что слова, составленные из меток вдоль них, принадлежат заданному языку.
17-
\begin{definition} \label{def1}
18-
\textit{Задача поиска путей с ограничениями в терминах формальных языков} заключается в поиске множества путей $\Pi = \{\pi \mid \omega(\pi) \in \mathcal{L}\}$.
1917

18+
\begin{definition}[Задача поиска путей с ограничениями в терминах формальных языков]
19+
\label{def1}
20+
\emph{Задача поиска путей с ограничениями в терминах формальных языков} заключается в поиске множества путей $\Pi = \{\pi \mid \omega(\pi) \in \mscrL\}$.
2021
\end{definition}
2122

22-
В задаче поиска путей мы можем накладывать дополнительные ограничения на путь (например, чтобы он был простым, кратчайшим или Эйлеровым~\cite{kupferman2016eulerian}), но это уже другая история.
23+
В задаче поиска путей мы можем накладывать дополнительные ограничения на путь (например, чтобы он был простым, кратчайшим или Эйлеровым~\sidecite{kupferman2016eulerian}), но это уже другая история.
2324

2425
Другим вариантом постановки задачи является задача достижимости.
2526

26-
\begin{definition} \label{def2}
27-
\textit{Задача достижимости} заключается в поиске множества пар вершин, для которых найдется путь с началом и концом в этих вершинах, что слово, составленное из меток рёбер пути, будет принадлежать заданному языку.
28-
$\Pi' = \{(v_{i}, v_{j}) \mid \exists v_{i} \pi v_{j}, \omega(\pi) \in \mathcal{L}\}$.
29-
27+
\begin{definition}[Задача достижимости]
28+
\label{def2}
29+
\emph{Задача достижимости} заключается в поиске множества пар вершин, для которых найдется путь с началом и концом в этих вершинах, что слово, составленное из меток рёбер пути, будет принадлежать заданному языку
30+
\[\Pi' = \{(v_{i}, v_{j}) \mid \exists v_{i} \pi v_{j}, \omega(\pi) \in \mscrL\}.\]
3031
\end{definition}
3132

32-
При этом, множество $\Pi$ может являться бесконечным, тогда как $\Pi'$ конечно, по причине конечности графа $\mathcal{G}$.
33+
При этом, множество $\Pi$ может являться бесконечным, тогда как $\Pi'$ конечно, по причине конечности графа $\mscrG$.
3334

34-
Язык $\mathcal{L}$ может принадлежать разным классам и быть задан разными способами. Например, он может быть регулярным, контекстно-свободным, или многокомпонентным контекстно-свободным.
35+
Язык $\mscrL$ может принадлежать разным классам и быть задан разными способами.
36+
Например, он может быть регулярным, контекстно-свободным, или многокомпонентным контекстно-свободным.
3537

36-
Если $\mathcal{L}$ --- регулярный, $\mathcal{G}$ можно рассматривать как недетерминированный конечный автомат (НКА), в котором все вершины являются одновременно и стартовыми, и конечными.
37-
Тогда задача поиска путей, в которой $\mathcal{L}$ --- регулярный, сводится к пересечению двух регулярных языков.
38+
Если $\mscrL$~--- регулярный, $\mscrG$ можно рассматривать как недетерминированный конечный автомат (НКА), в котором все вершины являются одновременно и стартовыми, и конечными.
39+
Тогда задача поиска путей, в которой $\mscrL$~--- регулярный, сводится к пересечению двух регулярных языков.
3840

39-
Более подробно мы рассмотрим случай, когда $\mathcal{L}$ --- контекстно-свободный язык.
41+
Более подробно мы рассмотрим случай, когда $\mscrL$~--- контекстно-свободный язык.
4042

41-
Путь $G = \langle \Sigma, N, P \rangle$ --- контекстно-свободная грамматика.
43+
Путь $G = \langle \Sigma, N, P \rangle$~--- контекстно-свободная грамматика.
4244
Будем считать, что $L \subseteq \Sigma$.
4345
Мы не фиксируем стартовый нетерминал в определении грамматики, поэтому, чтобы описать язык, задаваемый ей, нам необходимо отдельно зафиксировать стартовый нетерминал.
44-
Таким образом, будем говорить, что $L(G,N_i) = \{ w \mid N_i \xRightarrow[G]{*} w \}$ --- это язык задаваемый грамматикой $G$ со стартовым нетерминалом $N_i$.
46+
Таким образом, будем говорить, что $L(G,N_i) = \{ w \mid N_i \xRightarrow[G]{*} w \}$~--- это язык задаваемый грамматикой $G$ со стартовым нетерминалом $N_i$.
4547

4648
\begin{example}
4749
Пример задачи поиска путей.
4850

49-
Дана грамматика $G$, задающая язык $\mathcal{L} = a^n b^n$:
51+
Дана грамматика $G$, задающая язык $\mscrL = a^n b^n$:
5052
\begin{align*}
51-
S &\to a b \\
52-
S &\to a S b
53+
S & \to a b \\
54+
S & \to a S b
5355
\end{align*}
54-
И дан граф $\mathcal{G}:$
56+
И дан граф $\mscrG$:
5557
\begin{center}
56-
\input{figures/graph/graph0.tex}
58+
\input{figures/graph/graph0.tex}
5759
\end{center}
5860

59-
Кратчайшими путями, принадлежащими множеству $\Pi = \{\pi \mid \omega(\pi) \in \mathcal{L}\}$, являются:
61+
Кратчайшими путями, принадлежащими множеству $\Pi = \{\pi \mid \omega(\pi) \in \mscrL\}$, являются:
6062

6163
\begin{center}
6264
\input{figures/flpq/path1.tex}
@@ -71,40 +73,31 @@ \section{Постановка задачи }
7173

7274
\section{О разрешимости задачи}
7375

74-
Задачи из определения \ref{def1} и \ref{def2} сводятся к построению пересечения языка $\mathcal{L}$ и языка, задаваемого путями графа, $R$.
76+
Задачи из определения \ref{def1} и \ref{def2} сводятся к построению пересечения языка $\mscrL$ и языка, задаваемого путями графа, $R$.
7577
А мы для обсуждения разрешимости задачи рассмотрим более слабую постановку задачи:
7678

77-
\begin{definition}
78-
Необходимо проверить, что существует хотя бы один такой путь $\pi$ для данного графа, для данного языка $\mathcal{L}$, что $\omega(\pi) \in \mathcal{L}$.
79-
79+
\begin{definition}[TODO: Что ты?]
80+
Необходимо проверить, что существует хотя бы один такой путь $\pi$ для данного графа, для данного языка $\mscrL$, что $\omega(\pi) \in \mscrL$.
8081
\end{definition}
8182

82-
Эта задача сводится к проверке пустоты пересечения языка $\mathcal{L}$ c $R$ --- регулярным языком, задаваемым графом. От класса языка $\mathcal{L}$ зависит её разрешимость:
83-
83+
Эта задача сводится к проверке пустоты пересечения языка $\mscrL$ c $R$~--- регулярным языком, задаваемым графом.
84+
От класса языка $\mscrL$ зависит её разрешимость:
8485
\begin{itemize}
85-
\item Если $\mathcal{L}$ регулярный, то получаем задачу пересечения двух регулярных языков:
86-
87-
$\mathcal{L} \cap R = R'$.
88-
$R'$ --- также регулярный язык.
89-
Проверка регулярного языка на пустоту --- разрешимая проблема.
90-
91-
\item Если $\mathcal{L}$ контекстно-свободный, то получаем задачу
92-
93-
$\mathcal{L} \cap R = CF$ --- контекстно-свободный.
94-
Проверка контекстно-свободного языка на пустоту --- разрешимая проблема.
95-
86+
\item Если $\mscrL$ регулярный, то получаем задачу пересечения двух регулярных языков: $\mscrL \cap R = R'$.
87+
$R'$~--- также регулярный язык.
88+
Проверка регулярного языка на пустоту~--- разрешимая проблема.
89+
\item Если $\mscrL$ контекстно-свободный, то получаем задачу: $\mscrL \cap R = CF$~--- контекстно-свободный.
90+
Проверка контекстно-свободного языка на пустоту~--- разрешимая проблема.
9691
\item Помимо иерархии Хомского существуют и другие классификации языков.
97-
Так например, класс конъюнктивных (Conj)
98-
языков~\cite{DBLP:journals/jalc/Okhotin01}
99-
является строгим расширением контекстно-свободных языков и все так же позволяет полиномиальный синтаксический анализ.
100-
101-
Пусть $\mathcal{L}$ --- конъюнктивный. При пересечении конъюнктивного и регулярного языков получается конъюнктивный ($\mathcal{L} \cap R = Conj$), а проблема проверки Conj на пустоту не разрешима~\cite{DBLP:journals/tcs/Okhotin03a}.
92+
Так например, класс конъюнктивных (Conj) языков~\sidecite{DBLP:journals/jalc/Okhotin01}является строгим расширением контекстно-свободных языков и все так же позволяет полиномиальный синтаксический анализ.
10293

103-
\item Ещё один класс языков из альтернативной иерархии, не сравнимой с Иерархией Хомского, --- MCFG (multiple context-free grammars)~\cite{SEKI1991191}.
104-
Как его частный случай --- TAG (tree adjoining grammar)~\cite{Joshi1997}.
105-
106-
Если $\mathcal{L}$ принадлежит классу MCFG, то $\mathcal{L} \cap R$ также принадлежит MCFG. Проблема проверки пустоты MCFG разрешима~\cite{SEKI1991191}.
94+
Пусть $\mscrL$~--- конъюнктивный.
95+
При пересечении конъюнктивного и регулярного языков получается конъюнктивный ($\mscrL \cap R = Conj$), а проблема проверки Conj на пустоту не разрешима~\sidecite{DBLP:journals/tcs/Okhotin03a}.
96+
\item Ещё один класс языков из альтернативной иерархии, не сравнимой с Иерархией Хомского,~--- MCFG (multiple context-free grammars)~\sidecite{SEKI1991191}.
97+
Как его частный случай~--- TAG (tree adjoining grammar)~\sidecite{Joshi1997}.
10798

99+
Если $\mscrL$ принадлежит классу MCFG, то $\mscrL \cap R$ также принадлежит MCFG.
100+
Проблема проверки пустоты MCFG разрешима~\sidecite{SEKI1991191}.
108101
\end{itemize}
109102

110103
Существует ещё много других классификаций языков, но поиск универсальной иерархии до сих пор продолжается.
@@ -113,18 +106,20 @@ \section{О разрешимости задачи}
113106

114107
\section{Области применения}
115108

116-
Поиск путей с ограничениями в виде формальных языков широко применяется в различных областях. Ниже даны ключевые работы по применению поиска путей с контекстно-свободными ограничениями и ссылки на них для более детального ознакомления.
117-
109+
Поиск путей с ограничениями в виде формальных языков широко применяется в различных областях.
110+
Ниже даны ключевые работы по применению поиска путей с контекстно-свободными ограничениями и ссылки на них для более детального ознакомления.
118111
\begin{itemize}
119112
\item Межпроцедурный Статанализ кода.
120-
Идея начала активно разрабатываться Томасом Репсом~\cite{Reps}. Далее последовал ряд, в том числе инженерных работ, применяющих достижимость с контекстно-свободными ограничениями для анализа указателей, анализа алиасов и других прикладных задач~\cite{LabelFlowCFLReachability,specificationCFLReachability,Zheng}.
121-
\item Графовые БД. Впервые задача сформулирована Михалисом Яннакакисом~\cite{Yannakakis}. Запросы с контекстно-свободными ограничениями нашли своё применение различных областях.
122-
\begin{itemize}
123-
\item Социальные сети~\cite{Hellings2015PathRF}.
124-
\item RDF обработка~\cite{10.1007/978-3-319-46523-4_38}.
125-
\item Биоинформатика~\cite{cfpqBio}.
126-
\end{itemize}
127-
113+
Идея начала активно разрабатываться Томасом Репсом~\sidecite{Reps}.
114+
Далее последовал ряд, в том числе инженерных работ, применяющих достижимость с контекстно-свободными ограничениями для анализа указателей, анализа алиасов и других прикладных задач~\sidecite{LabelFlowCFLReachability,specificationCFLReachability,Zheng}.
115+
\item Графовые БД.
116+
Впервые задача сформулирована Михалисом Яннакакисом~\sidecite{Yannakakis}.
117+
Запросы с контекстно-свободными ограничениями нашли своё применение различных областях.
118+
\begin{itemize}
119+
\item Социальные сети~\sidecite{Hellings2015PathRF}.
120+
\item RDF обработка~\sidecite{10.1007/978-3-319-46523-4_38}.
121+
\item Биоинформатика~\sidecite{cfpqBio}.
122+
\end{itemize}
128123
\end{itemize}
129124

130125
%\begin{itemize}

tex/FormalLanguageConstrainedReachabilityLectureNotes.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
\input{Context-Free_Languages}
4848
% \input{Multiple_Context-Free_Languages} % FIXME: Переписать главу
4949
% %\input{ConjunctiveAndBooleanLanguages}
50-
% \input{FLPQ}
50+
\input{FLPQ}
5151
% \input{RPQ}
5252
% %\input{CFPQ}
5353
% \input{CYK_for_CFPQ}

0 commit comments

Comments
 (0)