Skip to content

Commit 3d028f0

Browse files
committed
Базово перенесены алгоритмы для запросов с конъюнктивными и булевыми грамматиками.
1 parent a0e0eb5 commit 3d028f0

6 files changed

Lines changed: 202 additions & 14 deletions

File tree

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
- перед ссылками: `текст~\cite{...}`, `текст~\sidecite{...}`
1717
- Используем кавычки <<ёлочки>> (`<<ещё раз пример текста в кавычках>>`).
1818
- Для <<выделенных>> (располагаемых на отдельной строке) формул используем `\[ \]`: `\[ math formula \]`.
19-
- У метки`\lable` всегда есть префикс, отражающий её тип. Например: `\label{fig:<fig_name>}`, `\label{sec:<section_name>}`
19+
- У метки`\label` всегда есть префикс, отражающий её тип. Например: `\label{fig:<fig_name>}`, `\label{sec:<section_name>}`
2020

2121
## Правила структурирования и именования файлов
2222

@@ -37,7 +37,7 @@
3737
3. **Глава** — директория `chapter_NN_Name/` внутри своей части. Содержит `main.tex` (`\chapter` + вводная часть главы + `\input` разделов) и файлы разделов. Если глава не разбита на разделы, `main.tex` содержит всё.
3838
4. **Раздел** — файл `NN_Name.tex` рядом с `main.tex` главы. Содержит `\section{...}` и всё наполнение, включая вложенные подразделы (`\subsection`).
3939
5. **Подразделы в отдельные файлы не выносятся и отдельных директорий не имеют.**
40-
6. Каждая структурная единица имеет метку `\lablel`. Название метки содержательно отражает смысл структурной единицы.
40+
6. Каждая структурная единица имеет метку `\label`. Название метки содержательно отражает смысл структурной единицы.
4141
7. В каждом файле, соответствующем структурной единице указывается `\tikzsetfigurename` для этой структурной единицы (соответственно, после <<начала>> этой единицы).
4242
1. Пример:
4343
```

book_structure.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,13 @@
285285
- ⚠️ Подраздел "Описание алгоритма"
286286
- ⚠️ Подраздел "Примеры"
287287
- ⚠️ Подраздел "Свойства алгоритма"
288-
- ❌ Раздел "Матричный алгоритм достижимости с ограничениями в виде конъюнктивных и булевых языков" — `02_ConjunctiveBooleanReachability.tex`
288+
- ⚠️ Раздел "Матричный алгоритм достижимости с ограничениями в виде конъюнктивных и булевых языков" — `02_ConjunctiveBooleanReachability.tex`
289+
- ⚠️ Вводная часть раздела: история вопроса, обзор, мотивация
290+
- ⚠️ Подраздел "Алгоритм для конъюнктивных грамматик"
291+
- ⚠️ Подраздел "Алгоритм для булевых грамматик на ациклических графах"
292+
- Интегрированы материалы из статьи `papers_src/Conjunctive_Path_Querying`: постановка через отношения для нетерминалов, матричный алгоритм для конъюнктивных грамматик, пример аппроксимации сверху, завершаемость, полнота аппроксимации и оценка сложности.
293+
- Интегрированы материалы из статьи `papers_src/Задача поиска путей в ациклических графах с ограничениями в терминах булевых грамматик`: алгоритм Шеметовой и Григорьева для булевых грамматик на DAG, рекурсивная схема `compute`/`complete`, пример, корректность аппроксимации и оценка сложности.
294+
- Задачи: перерисовать схемы подматриц, дерево рекурсивных вызовов и таблицы состояний из статьи Шеметовой и Григорьева в TeX/TikZ; изображения из PDF не перенесены как финальные иллюстрации.
289295

290296
## Часть 4. Заключение — ⚠️
291297

glossary.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
- Иерархия Хомского --- Chomsky hierarchy
4747
- Дескриптор --- Descriptor
4848
- Контекстно-зависимый язык --- Context-sensitive language
49+
- Реляционная семантика запросов --- Relational query semantics
50+
- Поиск путей с ограничениями в терминах булевых грамматик --- Path querying using Boolean grammars
51+
- Линейная конъюнктивная грамматика --- Linear conjunctive grammar
4952

5053
# Сокращения (расшифровка --- сокращение)
5154
- Graph Structured Stack --- GSS

tex/part_02_Foundations/chapter_09_ConjunctiveBoolean/01_ConjunctiveGrammars.tex

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,20 @@ \section{Конъюнктивные грамматики}
176176
\end{example}
177177

178178
Подробнее о конъюнктивных грамматиках можно прочитать в статьях~\cite{DBLP:journals/jalc/Okhotin01, Okhotin2002, DBLP:journals/tcs/Okhotin03a, f60a33d409364914be560cac0e54b12c}.
179+
180+
Определим бинарную нормальную форму конъюнктивной грамматики.
181+
182+
\begin{definition}[Бинарная нормальная форма]
183+
Конъюнктивная грамматика $G = (\Sigma, N, P, S)$ находится в бинарной нормальной форме, если каждое правило из $P$ имеет один из следующих видов:
184+
\begin{itemize}
185+
\item $A \rightarrow B_1 C_1 \& \ldots \& B_m C_m$, где $m \geqslant 1$ и $A,B_i,C_i \in N$;
186+
\item $A \rightarrow a$, где $A \in N$ и $a \in \Sigma$;
187+
\item $S \rightarrow \varepsilon$, если только $S$ не содержится в правой части ни одного правила.
188+
\end{itemize}
189+
\end{definition}
190+
191+
\begin{theorem}\label{thm:BinaryNormalForm}
192+
Для каждой конъюнктивной грамматики $G$ можно построить конъюнктивную грамматику в бинарной нормальной форме $G^{'}$, такую что $L(G) = L(G^{'})$.
193+
\end{theorem}
194+
195+
Доказательство теоремы~\ref{thm:BinaryNormalForm} описано в статье~\sidecite{DBLP:journals/jalc/Okhotin01}.

tex/part_02_Foundations/chapter_09_ConjunctiveBoolean/02_BooleanGrammars.tex

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,12 @@ \section{Булевы грамматики}
3434

3535
Подробнее о булевых грамматиках можно прочитать в статьях~\cite{Okhotin:2003:BG:1758089.1758123,Okhotin:2014:PMM:2565359.2565379}.
3636

37-
Определим бинарную нормальную форму конъюнктивной грамматики.
38-
\begin{definition}[Бинарная нормальная форма]
39-
Конъюнктивная грамматика $G = (\Sigma, N, P, S)$ находится в бинарной нормальной форме, если каждое правило из P имеет вид,
37+
Для матричных алгоритмов синтаксического анализа и поиска путей используется двоичная нормальная форма булевых грамматик~\sidecite{Okhotin:2014:PMM:2565359.2565379,Shemetova2019}.
38+
39+
\begin{definition}[Двоичная нормальная форма булевой грамматики]
40+
Булева грамматика $G = (\Sigma, N, P, S)$ находится в двоичной нормальной форме, если каждое правило из $P$ имеет один из следующих видов:
4041
\begin{itemize}
41-
\item $A \rightarrow B_1 C_1 \& \ldots\& B_m C_m$, где $m \geqslant 1; A,B_i,C_i \in N$.
42-
\item $A \rightarrow a$, где $A \in N, a \in \Sigma$.
43-
\item $S \rightarrow \varepsilon$, если только $S$ не содержится в правой части всех правил.
42+
\item $A \rightarrow B_1 C_1 \& \ldots \& B_m C_m \& \neg D_1 E_1 \& \ldots \& \neg D_k E_k$, где $A,B_i,C_i,D_j,E_j \in N$, $m,k \geqslant 0$ и $m + k \geqslant 1$;
43+
\item $A \rightarrow a$, где $A \in N$ и $a \in \Sigma$.
4444
\end{itemize}
4545
\end{definition}
46-
47-
\begin{theorem}\label{thm:BinaryNormalForm}
48-
Для каждой конъюнктивной грамматики $G$ можно построить конъюнктивную грамматику в бинарной нормальной форме $G^{'}$, такую что $L(G) = L(G^{'})$.
49-
\end{theorem}
50-
Доказательство теоремы~\ref{thm:BinaryNormalForm} описано в статье~\cite{DBLP:journals/jalc/Okhotin01}.

0 commit comments

Comments
 (0)