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
Copy file name to clipboardExpand all lines: book_structure.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -234,14 +234,15 @@
234
234
- ❌ Раздел "Свойства алгоритма"
235
235
236
236
237
-
- Раздел "Обобщённый восходящий алгоритм для поиска путей с КС ограничениям" — `GLR-based_CFPQ.tex` — ⚠️
237
+
- Раздел "Обобщённый восходящий алгоритм для поиска путей с КС ограничениям" — `07_GLR_Based.tex` — ⚠️
238
238
- ⚠️ Вводная часть главы: история вопроса, обзор, мотивация
239
239
- ⚠️ Раздел "Описание алгоритма"
240
240
- Планируемое содержание раздела:
241
241
- Описание, Адаптация GLR: множественный shift по всем исходящим рёбрам (конфликт типа shift-shift), Модификации GLR (RNGLR, BRNGLR)
242
242
- Псевдокод
243
-
- ❌ Раздел "Примеры"
244
-
- ❌ Раздел "Свойства алгоритма"
243
+
- ⚠️ Раздел "Примеры"
244
+
- ⚠️ Раздел "Свойства алгоритма"
245
+
- Интегрированы материалы из статьи `papers_src/CFPQ_GLR/paper`: основной алгоритм из `algorithm.tex`, доказательства завершимости и корректности из `algorithm.tex`, пример и рисунки из `appendix.tex`. Рисунки и dot-исходники перенесены в `tex/part_03_GraphAnalysis/chapter_12_CFPQ/figures/07_GLR_Based/`.
245
246
246
247
247
248
- Раздел "Комбинаторы парсеров для поиска путей с КС ограничениям" — `CombinatorsForCFPQ.tex` — ⚠️
- Parallel Multiple Context-Free Language --- PMCFL
98
+
- Multiple Component Context-Free Language Path Querying --- MCFLPQ
99
+
- Directed Acyclic Graph --- DAG
100
+
- Abstract Family of Languages --- AFL
101
+
- Input-Driven Pushdown Automata --- IDPDA
102
+
- Linear Algebra-based Regular Path Querying --- LARPQ
75
103
76
104
# Иерархия терминов
77
105
- Задача анализа графов с ограничениями в виде контекстно свободных языков --- более общий термин, чем задача достижимости с ограничениями в виде контекстно свободных языков
Copy file name to clipboardExpand all lines: tex/frontmatter/Introduction.tex
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@
44
44
Затем, в главе~\ref{chpt:FormalLanguageTheoryIntro} мы введём основные понятия из теории формальных языков.
45
45
Далее, в главе~\ref{chpt:FLPQ} рассмотрим различные варианты постановки задачи поиска путей с ограничениями в терминах формальных языков, обсудим базовые свойства задач, её разрешимость в различных постановках и т.д..
46
46
И в итоге зафиксируем постановку, которую будем изучать далее.
47
-
После этого, в главах~\ref{chpt:CFPQ_CYK}--\ref{chpt:GLR} мы будем подробно рассматривать различные алгоритмы решения этой задачи, попутно вводя специфичные для рассматриваемого алгоритма структуры данных.
47
+
После этогомы будем подробно рассматривать различные алгоритмы решения этой задачи, включая алгоритмы на основе GLR (раздел~\ref{sec:GLR}), попутно вводя специфичные для рассматриваемого алгоритма структуры данных.
48
48
Большинство алгоритмов будут основаны на классических алгоритмах синтаксического анализа, таких как CYK или LR.
Copy file name to clipboardExpand all lines: tex/part_01_Prep/chapter_01_LinearAlgebra/07_MatricesAndVectors.tex
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -225,7 +225,7 @@ \section{Матрицы и вектора}
225
225
\end{definition}
226
226
227
227
\begin{remark}
228
-
\label{note:KronIsNotCommutative}
228
+
\label{rem:KronIsNotCommutative}
229
229
Произведение Кронекера не является коммутативным\sidenote{Показать это можно по определению: найти пример, для которого $M \otimes N \neq N \otimes M$.}.
230
230
При этом всегда существуют две матрицы перестановок $P$ и $Q$ такие, что $A \otimes B = P(B \otimes A)Q$.
Планируемое содержание раздела: Взгляд программиста: типы данных, не совсем честные алгебраические структуры ("просто лишь бы типизировалось"), GraphBLAS, разреженность, параллельность. Операции типа маски, map2 и так далее.
4
+
Планируемое содержание раздела: Взгляд программиста: типы данных, не совсем честные алгебраические структуры (<<просто лишь бы типизировалось>>), GraphBLAS, разреженность, параллельность. Операции типа маски, map2 и так далее.
Дан ориентированный граф (см. рисунок\ref{gr:graph2}).
108
+
\label{exmpl:diGraph}
109
+
Дан ориентированный граф (см. рисунок~\ref{fig:graph2}).
110
110
Построить его булеву матрицу смежности можно применив рассуждения из предыдущего примера (\ref{exmpl:undirectedGraphMatrix}) и выглядеть она будет следующим образом:
Пусть дан помеченный граф (см. рисунок\ref{gr:graph3}).
130
+
Пусть дан помеченный граф (см. рисунок~\ref{fig:graph3}).
131
131
В данном случае $L = \{a,b\}$.
132
132
Так как мы не будем в данном примере запрещать параллельные рёбра, то ячейки матрицы будут содержать множества меток: метки для всех параллельных рёбер между парой вершин.
133
133
Соответственно, $\varnothing$ означает, что рёбер между соответствующей парой вершин нету.
Пусть дан взвешенный граф (см. рисунок\ref{gr:graph4}).
154
+
\label{exmpl:apspGraph}
155
+
Пусть дан взвешенный граф (см. рисунок~\ref{fig:graph4}).
156
156
Будем считать, что веса берутся из $\BbbR\ (L \subseteq\BbbR$).
157
157
Нужно придумать специальное значение, которое будет храниться в ячейках, соответствующих вершинам, между которыми нету рёбер\sidenote{
158
158
Выбрать какое-то значение из $\BbbR$ не получится, так как в общем слуае любое такое значение может быть корректной меткой существующего ребра, так как у нас метки~--- это \emph{произвольные} значения из $\BbbR$.
В нашем последнем примере (\ref{example:apspGraph}) мы обратили внимание на то, что детали построения матрицы смежности могут зависеть от того, для решения какой задачи её планируется использовать.
179
+
В нашем последнем примере (\ref{exmpl:apspGraph}) мы обратили внимание на то, что детали построения матрицы смежности могут зависеть от того, для решения какой задачи её планируется использовать.
180
180
В действительности, именно так и происходит: матрица смежности~--- удобный инструмент для описания некоторых свойств графа, важных при решении той или иной задачи.
181
181
Исходя из такого взгляда мы и попробуем построить обобщённое определение матрицы смежности.
Copy file name to clipboardExpand all lines: tex/part_01_Prep/chapter_03_GraphTheoryIntro/04_BFS.tex
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -144,7 +144,7 @@ \section{Обход графа в ширину}
144
144
145
145
\begin{example}
146
146
147
-
Рассмотрим обход в ширину графа из примера~\ref{example:diGraph} начиная с вершины \circled{2}.
147
+
Рассмотрим обход в ширину графа из примера~\ref{exmpl:diGraph} начиная с вершины \circled{2}.
148
148
Для обозначения текущего фронта будем использовать зелёный цвет, а для достижимых из него за один шаг~--- жёлтый, обведём вершину красным, если она посещается повторно.
149
149
150
150
В начальном состоянии посещённых вершин нет и во фронте отмечена только вторая вершина (так как она является стартовой):
@@ -340,7 +340,7 @@ \section{Обход графа в ширину}
340
340
\end{algorithm}
341
341
342
342
\begin{example}
343
-
Рассмотрим обход в ширину графа из примера~\ref{example:diGraph} начиная с вершин \circled{1} и \circled{3}.
343
+
Рассмотрим обход в ширину графа из примера~\ref{exmpl:diGraph} начиная с вершин \circled{1} и \circled{3}.
344
344
Будем использовать ту же цветовую схему, что и в предыдущем примере.
345
345
346
346
В данном случае вспомогательные структуры инициализируются следующими матрицами.
Copy file name to clipboardExpand all lines: tex/part_02_Foundations/chapter_05_RegularLanguages/02_FiniteAutomata.tex
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ \section{Конечные автоматы}
39
39
Иными словами, будем говорить, что автомат принимает на вход слово или строку.
40
40
При таком подходе автомат естественно рассматривать как \emph{распознаватель}\sidenote{Конечно, на автомат можно смотреть и как на генератор: любой путь от стартового состояния до финального задаёт слово из языка.}.
41
41
42
-
\begin{example}\label{example:NFA}
42
+
\begin{example}\label{exmpl:NFA}
43
43
Пусть задан автомат $M=\langle Q, Q_S, Q_F, \delta, \Sigma\rangle$, где
44
44
\begin{itemize}
45
45
\item$Q = \{0,1,2\}$;
@@ -167,7 +167,7 @@ \section{Конечные автоматы}
167
167
Во-первых, стартовое состояние ровно одно.
168
168
Во-вторых, функция переходов не допускает переходов по $\varepsilon$ и из любого состояния существует не более одного перехода по конкретному символу.
169
169
170
-
\begin{example}\label{example:DFA}
170
+
\begin{example}\label{exmpl:DFA}
171
171
Пусть задан детерминированный автомат $M=\langle Q, q_S, Q_F, \delta, \Sigma\rangle$, где
\caption{Пример детерминированного конечного автомата в котором состояние $0$~--- стартовое, а состояние $1$~--- финальное, задающего тот же язык, что и автомат из примера~\ref{example:NFA}}
188
+
\caption{Пример детерминированного конечного автомата в котором состояние $0$~--- стартовое, а состояние $1$~--- финальное, задающего тот же язык, что и автомат из примера~\ref{exmpl:NFA}}
0 commit comments