Skip to content

Commit d08f3e7

Browse files
committed
Redraw pictures in MS RPQ example with tikzpicture
1 parent 8bb1b54 commit d08f3e7

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

tex/RPQ.tex

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,23 @@ \section{Достижимость с несколькими источникам
1515
В классической версии обхода в ширину, основанного на линейной алгебре, используется вектор, куда записывается фронт обхода графа. Так, один раз перемножая этот вектор на матрицу смежности графа, можно совершать один шаг в обходе графа. Покажем на примере, как данный метод может быть использован, когда мы накладываем формальные ограничения на путь в графе.
1616

1717
\begin{example}
18-
\begin{align}
19-
\label{input_rpq}
20-
\input{figures/graph/graph0.tex}
21-
\end{align}
18+
Возьмём граф.
19+
\begin{center}
20+
\label{input_rpq}
21+
\begin{tikzpicture}[node distance=2cm,shorten >=1pt,on grid,auto]
22+
\node[state] (q_0) {$0$};
23+
\node[state] (q_1) [above=of q_0] {$1$};
24+
\node[state] (q_2) [right=of $(q_0)!0.5!(q_1)$] {$2$};
25+
\node[state] (q_3) [right=of q_2] {$3$};
26+
\path[->]
27+
(q_0) edge node {a} (q_1)
28+
(q_1) edge node[pos=0.3] {a} (q_2)
29+
(q_2) edge node[pos=0.7] {a} (q_0)
30+
(q_2) edge[bend left] node[above] {b} (q_3)
31+
(q_3) edge[bend left] node {b} (q_2);
32+
\end{tikzpicture}
33+
\end{center}
2234

23-
Возьмём граф, представленный на рисунке~\ref{input_rpq}.
2435
Его матрица смежности имеет следующий вид.
2536
\[ G_2 =
2637
\begin{pmatrix}
@@ -47,6 +58,19 @@ \section{Достижимость с несколькими источникам
4758
\end{alignat*}
4859

4960
Зададим формальные ограничения с помощью регулярного выражения $ba$, которое представляется автоматом из трех последовательных состояний.
61+
62+
\begin{center}
63+
\begin{tikzpicture}[shorten >=1pt,on grid,auto]
64+
\node[state, initial] (q_0) at (0,0) {$0$};
65+
\node[state] (q_1) at (2,0) {$1$};
66+
\node[state, accepting] (q_2) at (4,0) {$2$};
67+
\path[->]
68+
(q_0) edge node {$b$} (q_1)
69+
(q_1) edge node {$a$} (q_2);
70+
\end{tikzpicture}
71+
\end{center}
72+
73+
5074
Нам хочется совершать обход по графу и автомату одновременно, поэтому также представим автомат в булевом виде.
5175
\begin{alignat*}{7}
5276
& &&R_{0\_A} &&= \begin{pmatrix}
@@ -173,8 +197,8 @@ \section{Достижимость с несколькими источникам
173197

174198
Видно, что к вершине 2 можно прийти из нулевого состояния автомата \fbox{1 0 0} \fbox{0 0 1 0}, а к вершине 1 из первого \fbox{0 1 0} \fbox{0 1 0 0}.
175199

176-
Теперь левая часть матрицы M неизменяема, так как каждая её строчка содержит информацию о том, из какого состояния автомата достигаются вершины фронта.
177-
Правая часть матрицы $M$ содержит этот фронт.
200+
Теперь левая часть матрицы $M$ неизменяема, так как каждая её строчка содержит информацию о том, из какого состояния автомата достигаются вершины фронта.
201+
Правая часть матрицы $M$ содержит этот фронт.e
178202

179203

180204
Перейдем к формальному описанию алгоритма.

0 commit comments

Comments
 (0)