Skip to content

Commit 0eb35ba

Browse files
authored
Merge pull request #19 from asurkis/typo-fix
Исправление опечаток
2 parents 625f074 + 9e40e30 commit 0eb35ba

9 files changed

+33
-33
lines changed

tex/CYK_for_CFPQ.tex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ \chapter{CYK для вычисления КС запросов}\label{chpt:CFPQ_
66

77
\section{Алгоритм CYK}\label{sect:lin_CYK}
88

9-
Алгоритм CYK (Cocke-Younger-Kasami) --- один из классических алгоритмов синтаксического анализа. Его асимптотическая сложность в худшем случае --- $O(n^3 * |N|)$, где $n$ --- длина входной строки, а $N$ --- количество нетерминалов во входной граммтике~\cite{Hopcroft+Ullman/79/Introduction}.
9+
Алгоритм CYK (Cocke-Younger-Kasami) --- один из классических алгоритмов синтаксического анализа. Его асимптотическая сложность в худшем случае --- $O(n^3 * |N|)$, где $n$ --- длина входной строки, а $N$ --- количество нетерминалов во входной грамматике~\cite{Hopcroft+Ullman/79/Introduction}.
1010

1111
Для его применения необходимо, чтобы подаваемая на вход грамматика находилась в Нормальной Форме Хомского (НФХ)~\ref{section:CNF}. Других ограничений нет и, следовательно,данный алгоритм применим для работы с произвольными контекстно-своболными языками.
1212

@@ -239,7 +239,7 @@ \section{Алгоритм для графов на основе CYK}
239239
\begin{itemize}
240240
\item Как и раньше, с помощью продукций вида \[A \to a \text{, где } A \in N, a \in \Sigma\]
241241
заменяем терминалы на ребрах входного графа на множества нетерминалов, из которых они выводятся.
242-
\item Добавляем в каждую вершину петлю, помеченную множеством нетерминалов для которых в данной граммтике есть правила вида $$A \to \varepsilon\text{, где } A \in N.$$
242+
\item Добавляем в каждую вершину петлю, помеченную множеством нетерминалов для которых в данной грамматике есть правила вида $$A \to \varepsilon\text{, где } A \in N.$$
243243
\end{itemize}
244244

245245
Затем используем матрицу смежности получившегося графа (обозначим ее $M$) в качестве начального значения. Дальнейший ход алгоритма можно описать псевдокодом, представленным в листинге~\ref{alg:graphParseCYK}.
@@ -271,7 +271,7 @@ \section{Алгоритм для графов на основе CYK}
271271
\end{algorithmic}
272272
\end{algorithm}
273273

274-
После завершения алгоритма, если в некоторой ячейке результируюшей матрицы с номером $(i, j)$ находятся стартовый нетерминал, то это означает, что существует путь из вершины $i$ в вершину $j$, удовлетворяющий данной грамматике. Таким образом, полученная матрица является ответом для задачи достижимости для заданных графа и граммтики.
274+
После завершения алгоритма, если в некоторой ячейке результируюшей матрицы с номером $(i, j)$ находятся стартовый нетерминал, то это означает, что существует путь из вершины $i$ в вершину $j$, удовлетворяющий данной грамматике. Таким образом, полученная матрица является ответом для задачи достижимости для заданных графа и грамматики.
275275

276276
\begin{example}
277277
\label{CYK_algorithm_ex}
@@ -479,7 +479,7 @@ \section{Алгоритм для графов на основе CYK}
479479
\begin{enumerate}
480480
\item Обрабатываем $(A,0,1)$.
481481
Ни один из вложенных циклов не найдёт новых путей, так как для рассматриваемого ребра есть только две возможности достроить путь: $2 \xrightarrow{A} 0 \xrightarrow{A} 1$ и $0 \xrightarrow{A} 1 \xrightarrow{A} 2$
482-
и ни одна из соответствующих строк не выводтся в заданной граммтике.
482+
и ни одна из соответствующих строк не выводтся в заданной грамматике.
483483
\item Перед началом итерации
484484
$$
485485
m = \{(A,1,2),(A,2,0),(B,2,3),(B,3,2)\},
@@ -732,4 +732,4 @@ \section{Алгоритм для графов на основе CYK}
732732
%
733733
% \item Оцените временную сложность алгоритма Хеллингса и сравните её с оценкой для наивного обобщения CYK.
734734
%
735-
%\end{enumerate}
735+
%\end{enumerate}

tex/Context-Free_Languages.tex

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

3030

3131
\begin{definition}\label{def derivability in CFG}
32-
\textit{Отношение непосредственной выводимости}. Мы говорим, что последовательность терминалов и нетерминалов $\gamma \alpha \delta$ \textit{непосредственно выводится из} $\gamma \beta \delta$ \textit{при помощи правила} $\alpha \rightarrow \beta$ ($\gamma \alpha \delta \Rightarrow \gamma \beta \delta$), если
32+
\textit{Отношение непосредственной выводимости}. Мы говорим, что последовательность терминалов и нетерминалов $\gamma \beta \delta$ \textit{непосредственно выводится из} $\gamma \alpha \delta$ \textit{при помощи правила} $\alpha \rightarrow \beta$ ($\gamma \alpha \delta \Rightarrow \gamma \beta \delta$), если
3333
\begin{itemize}
3434
\item $\alpha \rightarrow \beta \in P$
3535
\item $\gamma, \delta \in \{\Sigma \cup N\}^* \cup {\varepsilon}$
@@ -482,16 +482,16 @@ \section{Замкнутость КС языков относительно оп
482482
\item Разность с регулярными языками: если $L_1$ --- контекстно-свободный, а $L_2$ --- регулярный, то $L_3 = L_1 \setminus L_2$ --- контекстно-свободный.
483483
\end{enumerate}
484484
\end{theorem}
485-
Для доказательства пунктов 1--4 можно построить КС граммтику нового языка имея грамматики для исходных.
486-
Будем предполагать, что множества нетерминальных символов различных граммтик для исходных языков не пересекаются.
485+
Для доказательства пунктов 1--4 можно построить КС грамматику нового языка имея грамматики для исходных.
486+
Будем предполагать, что множества нетерминальных символов различных грамматик для исходных языков не пересекаются.
487487
\begin{enumerate}
488-
\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$.
488+
\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$.
489489

490-
\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$.
490+
\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$.
491491

492-
\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$.
492+
\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$.
493493

494-
\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$.
494+
\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$.
495495
\end{enumerate}
496496

497497
Чтобы доказать замкнутость относительно пересечения с регулярными языками, построим по КС грамматике рекурсивный автомат $R_1$, по регулярному выражению --- детерминированный конечный автомат $R_2$, и построим их прямое произведение $R_3$.
@@ -523,7 +523,7 @@ \section{Замкнутость КС языков относительно оп
523523
\begin{enumerate}
524524
\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\}$.
525525
Эти языки являются контекстно-свободными.
526-
Это легко заметить, если знать, что язык $L'_4 = \{a^m b^n c^k \mid 0 \leq m < n, k \geq 0\}$ задаётся следующей граммтикой:
526+
Это легко заметить, если знать, что язык $L'_4 = \{a^m b^n c^k \mid 0 \leq m < n, k \geq 0\}$ задаётся следующей грамматикой:
527527
\begin{align*}
528528
S \to & S c & T \to & a T b \\
529529
S \to & T & T \to & T b \\

tex/FLPQ.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ \section{Постановка задачи }
3838

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

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

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

tex/GLL-based_CFPQ.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ \section{LL(k)-алгоритм синтаксического анализа}
398398

399399
Данное семейство всё так же не работает с леворекурсивными грамматиками и с неоднозначными грамматиками.
400400

401-
Таким образом, по некоторым граммтикам можно построить LL(k) анализатор (назовём их LL(k) граммтиками), но не по всем.
401+
Таким образом, по некоторым грамматикам можно построить LL(k) анализатор (назовём их LL(k) грамматиками), но не по всем.
402402
С левой рекурсией, конечно, можно бороться, так как существуют алгоритмы устранения левой и скрытой левой рекурсии, а вот с неоднозначностями ничего не поделаешь.
403403

404404

tex/GLR-based_CFPQ.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ \subsection{LR(0) алгоритм}
8686
\end{definition}
8787

8888
Теперь мы можем построить LR(0) автомат.
89-
Первым шагом необходимо расширить грамматику: добавить к исходной граммтике правило вида $S' \to S \$$, где $S$ --- стартовый нетерминал исходной граммтики, $S'$ --- новый стартовый нетерминал (не использовался ранее в грамматике), $\$$ --- маркер конца строки (не входил в терминальный алфавит исходной граммтики).
89+
Первым шагом необходимо расширить грамматику: добавить к исходной грамматике правило вида $S' \to S \$$, где $S$ --- стартовый нетерминал исходной грамматики, $S'$ --- новый стартовый нетерминал (не использовался ранее в грамматике), $\$$ --- маркер конца строки (не входил в терминальный алфавит исходной грамматики).
9090

9191
Далее строим автомат по следующим принципам.
9292

@@ -383,7 +383,7 @@ \subsection{Сравнение классов LL и LR}
383383

384384
Из диаграммы видно, что класс языков, распознаваемых LL(k) алгоритмом уже, чем класс языков, распознаваемый LR(k) алгоритмом, при любом конечном $k$. Приведём несколько примеров.
385385
\begin{enumerate}
386-
\item $L = \{a^mb^nc \mid m \geq n \geq 0\} $ является LR(0), но для него не существует LL(1) граммтики.
386+
\item $L = \{a^mb^nc \mid m \geq n \geq 0\} $ является LR(0), но для него не существует LL(1) грамматики.
387387
\item $L = \{ a^n b^n + a^n c^n \mid n > 0\}$ является LR, но не LL.
388388
\item Больше примеров можно найти в работе Джона Битти~\cite{BEATTY1980193}.
389389
\end{enumerate}

tex/LinearAlgebra.tex

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

189189
\begin{definition}
190190

191-
Непустое множество $R$ с двумя бинарными операциями $\oplus\colon R \times R \to R$ (часто называют умножением) и $\otimes \colon R \times R \to R$ (часто называют сложением) называется \emph{полукольцом}, если выполнены следующие условия.
191+
Непустое множество $R$ с двумя бинарными операциями $\oplus\colon R \times R \to R$ (часто называют сложением) и $\otimes \colon R \times R \to R$ (часто называют умножением) называется \emph{полукольцом}, если выполнены следующие условия.
192192
\begin{enumerate}
193193

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

0 commit comments

Comments
 (0)