diff --git a/chapter-1.tex b/chapter-1.tex index 483bab7..df5bca9 100644 --- a/chapter-1.tex +++ b/chapter-1.tex @@ -194,7 +194,7 @@ \section{Грамматики} \end{array} \end{equation} -Грамматика определяет язык рекурсивным образом. Рекурсивность проявляется в определении особого рода слов, называемых выводимыми словами грамматики $G=(N,\Sigma,P,S)$: $S$ --- выводимое слово; если $\alpha\beta\gamma$ --- выводимое слово и $(\beta\to\delta)\in P$, то $\alpha\beta\gamma$ --- тоже выводимое слово; никакие другие слова нe являются выводимыми. Выводимое слово грамматики $G$. не содержащее нетерминальных символов, называется терминальным словом, порождаемым грамматикой $G$. +Грамматика определяет язык рекурсивным образом. Рекурсивность проявляется в определении особого рода слов, называемых выводимыми словами грамматики $G=(N,\Sigma,P,S)$: $S$ --- выводимое слово; если $\alpha\beta\gamma$ --- выводимое слово и $(\beta\to\delta)\in P$, то $\alpha\delta\gamma$ --- тоже выводимое слово; никакие другие слова нe являются выводимыми. Выводимое слово грамматики $G$. не содержащее нетерминальных символов, называется терминальным словом, порождаемым грамматикой $G$. Язык $L(G)$, порождаемый грамматикой $G$, определяется как множество всех терминальных слов, порождаемых грамматикой $G$. diff --git a/chapter-2.tex b/chapter-2.tex index 7dd3c41..8ed11ea 100644 --- a/chapter-2.tex +++ b/chapter-2.tex @@ -277,7 +277,7 @@ \section{Уравнения и системы уравнений с регуля { \item Положим $i=1$. - \item Если $i=n$, перейти к шагу 4. В противном случае с помощью тождеств из леммы~\ref{LemmaRegExprFeat} записать уравнение для $X_i$ в виде $X_i=\alpha X_i+\beta$, где $\alpha$ и $\beta$ --- регулярные выражения над $\Sigma$. Затем в правых частях уравнений для $X_{i+1}, /ldots , X_n$ заменить $X_i$ регулярным выражением $\alpha^*\beta$. + \item Если $i=n$, перейти к шагу 4. В противном случае с помощью тождеств из леммы~\ref{LemmaRegExprFeat} записать уравнение для $X_i$ в виде $X_i=\alpha X_i+\beta$, где $\alpha$ и $\beta$ --- регулярные выражения над $\Sigma$. Затем в правых частях уравнений для $X_{i+1}, \ldots , X_n$ заменить $X_i$ регулярным выражением $\alpha^*\beta$. \item Увеличить $i$ на 1 и вернуться к шагу 2. diff --git a/chapter-3.tex b/chapter-3.tex index 4b3bfab..c12a80e 100644 --- a/chapter-3.tex +++ b/chapter-3.tex @@ -47,7 +47,7 @@ \section{Определения и примеры} $\delta(q,a)$ содержит точно одно состояние, то автомат $M$ назовем \mydef{полностью определенным}. -Работа конечного автомата представляет собой некоторую последовательность тактов. Такт определяется текущим состоянием управляющего устройства и входным символом, считываемым в данный момент входной головкой. Сам такт состоит из изменения состояния и сдвига входной головки на одну ячейку вправо. Для того чтобы определить будущее поведение конечного автомата, нужно знать лишь текущее состоятие управляющего устройства и слово на входной ленте, состоящее из буквы под головкой и всех букв, расположенных вправо от неё. Эги два элемента информации дают мгновенное описание конечного автомата, которое называют конфигурацией. Другими словами, если $M = (Q,\\ \Sigma, \delta, q_0, F)$ --- конечный автомат, то пара $(q,\omega)\in Q*\Sigma^*$ называется конфигурацией автомата $M$. Конфигурация $(q_0\omega)$ называется начальной, а конфигурация $(q,\eps)$, где $q\in F$, называется заключительной. +Работа конечного автомата представляет собой некоторую последовательность тактов. Такт определяется текущим состоянием управляющего устройства и входным символом, считываемым в данный момент входной головкой. Сам такт состоит из изменения состояния и сдвига входной головки на одну ячейку вправо. Для того чтобы определить будущее поведение конечного автомата, нужно знать лишь текущее состоятие управляющего устройства и слово на входной ленте, состоящее из буквы под головкой и всех букв, расположенных вправо от неё. Эти два элемента информации дают мгновенное описание конечного автомата, которое называют конфигурацией. Другими словами, если $M = (Q,\\ \Sigma, \delta, q_0, F)$ --- конечный автомат, то пара $(q,\omega)\in Q*\Sigma^*$ называется конфигурацией автомата $M$. Конфигурация $(q_0\omega)$ называется начальной, а конфигурация $(q,\eps)$, где $q\in F$, называется заключительной. Состояние $p$ называется достижимым, если существует такое слово $\omega$, что $(q_0,\omega)\vdash^*(p,\eps)$. @@ -131,7 +131,7 @@ \section{Определения и примеры} \end{mytheorem} \begin{myproof} -По данному недетерминированному автомату $M$ построим новый автомат $M=(Q',\Sigma,\delta ',q_0',F')$ следующим образом: +По данному недетерминированному автомату $M$ построим новый автомат $M'=(Q',\Sigma,\delta ',q_0',F')$ следующим образом: \begin{enumerate} \item $Q'=P(Q)$, т.е. состояниями автомата $M'$ являются всевозможные подмножеста множества состояний автомата $M$; \item Если $S\in Q'$, $a\in\Sigma$, то определим $\delta '(S,a)$ равенством diff --git a/chapter-4.tex b/chapter-4.tex index c0fc1a3..efc481b 100644 --- a/chapter-4.tex +++ b/chapter-4.tex @@ -74,11 +74,11 @@ \section{Редукция $\eps$-НКА к ДКА} \begin{myproof} По данному $\eps$-НКА построим новый ДКА $M_D = (Q_D, \Sigma, \delta_D, q_D, F_D)$ следующим образом: \begin{enumerate} - \item $Q_d = P(Q_E)$. Причем, достижимыми состояниями автомата $M_D$ будут только такие $S \in Q_D$, что $S$ является $\eps$-замкнутым множеством. + \item $Q_D = P(Q_E)$. Причем, достижимыми состояниями автомата $M_D$ будут только такие $S \in Q_D$, что $S$ является $\eps$-замкнутым множеством. \item $q_D = E(q_E)$. \item $F_D = \{ S \in Q_D \colon S \cap F_E \neq \es \}$. \item Функция переходов $\delta_D$ определим следующим образом: \newline - если $S \in Q_D$ и $a \in \Sigma$, то $\delta_d(S,a)$ строится по правилам: + если $S \in Q_D$ и $a \in \Sigma$, то $\delta_D(S,a)$ строится по правилам: \begin{enumerate} \item пусть $\{ q_1; q_2;...;q_n \}$ --- множество состояний $S$; \item $\{ r_1; r_2;...;r_m \} = \bigcup_{i\in 1}^{n}\delta_E(q_i, a)$; @@ -558,7 +558,7 @@ \subsection*{Построение минимального конечного а \item Применить к конечному автомату $M$ алгоритм поиска недостижимых состояний и построить конечный автомат $M_1$ без недостижимых состояний, такой что $L(M_1) = L(M)$. \item Строить отношения эквивалентности $\sim^0, \sim^1, \ldots $ по описанию в лемме $4.6.3$ до тех пор, пока это будет возможно, т. е. $\sim^{k+1} = \sim^{k}$. Взять в качестве $\sim$ отношение $\sim^k$. \item Построить множество $Q'$ как множество классов эквивалентности отношения $\sim$. Через $[p]$ будем обозначать класс эквивалентности отношения $\sim$, содержащий состояние $p$. -\item Построить $\delta'([p], a) = [q]$, если $delta(p,a) = q$. +\item Построить $\delta'([p], a) = [q]$, если $\delta(p,a) = q$. \item Обозначить $q'_0$ как $q_0$. \item Обозначить $F'$ как $\{ [q], q \in F \}$. \item Вернуть $M' = (Q',\Sigma, \delta', q_0, F')$. diff --git a/chapter-5.tex b/chapter-5.tex index 18517f3..896e7d1 100644 --- a/chapter-5.tex +++ b/chapter-5.tex @@ -97,7 +97,7 @@ \section{Свойства регулярных языков} полученный \emph{обращением} языка $L_1$ (пункт $4$). Поскольку язык $L_1$ --- регулярный, для него существует конечный автомат. Пусть $M_1 = (Q,\Sigma, \delta, q_0, F)$ --- конечный автомат, у которого $L(M_1) -= L_1$. Построим конечный автомат $M^R = (Q_R, \Sigma, \delta^R, F^R)$ += L_1$. Построим конечный автомат $M^R = (Q^R, \Sigma, \delta^R, q^R, F^R)$ следующим образом: % \begin{enumerate} @@ -108,7 +108,7 @@ \section{Свойства регулярных языков} \item Обратить все стрелки диаграммы переходов автомата $M$. -\item Положить $q_R = q_f$, $F^R = \{ q_0 \}$. +\item Положить $q^R = q_f$, $F^R = \{ q_0 \}$. \end{enumerate} % @@ -181,7 +181,7 @@ \section{Свойства регулярных языков} Построим конечный автомат \begin{align*} M &= (Q_1 \times Q_2,\Sigma, \delta, (q_1, q_2), F_1 \times F_2),\text{ где}\\ -\delta:& \forall a \in \Sigma, \forall p \in Q_1, \forall q \in Q_2 \delta((p, q), a) = (\delta_1(p,a), \delta_2(q,a)). +\delta:& \forall a \in \Sigma, \forall p \in Q_1, \forall q \in Q_2 \: \delta((p, q), a) = (\delta_1(p,a), \delta_2(q,a)). \end{align*} Покажем, что данный автомат распознаёт $L_1 \cap L_2$. diff --git a/chapter-6.tex b/chapter-6.tex index 9530348..cc5a5d1 100644 --- a/chapter-6.tex +++ b/chapter-6.tex @@ -280,7 +280,7 @@ \section{Построение приведенной КС"/грамматики} \[ (A\to\alpha_0B_1\alpha_1B_2\alpha_2 \ldots B_k\alpha_k)\in P, \] -где $k\ge 0$, $B_i\in N_\eps$ и ни один символ в словах $\alpha_j$ не принадлежит $N_\eps$, то включить в $P'$ все продукции вида $A\to\alpha_0X_1\alpha_1X2 \ldots \alpha_{k-1}X_k\alpha_k$, где $X_i$ --- либо $B_i$, либо $\eps$, исключая продукцию $A\to\eps$ (это могло бы произойти в случаe, если все $\alpha_i$, равны $\eps$). +где $k\ge 0$, $B_i\in N_\eps$ и ни один символ в словах $\alpha_j$ не принадлежит $N_\eps$, то включить в $P'$ все продукции вида $A\to\alpha_0X_1\alpha_1X_2 \ldots \alpha_{k-1}X_k\alpha_k$, где $X_i$ --- либо $B_i$, либо $\eps$, исключая продукцию $A\to\eps$ (это могло бы произойти в случаe, если все $\alpha_i$, равны $\eps$). \item Если $S\in N_\eps$ , то ввести новый нетерминал $S'$ и дополнительно включить в $P'$ продукции $(S'\to S|\eps)$, в противном случае положить $N'=N, S'=S$. @@ -335,7 +335,7 @@ \section{Построение приведенной КС"/грамматики} \begin{enumerate}[leftmargin=1cm] \item Положить $N_0=\{A\}$ и $i=1$. -\item Положить $N_i|=\{C\mid (B\to C)\in P$ и $B\in N_{i-1}\}\cup N_{i-1}$. +\item Положить $N_i=\{C\mid (B\to C)\in P$ и $B\in N_{i-1}\}\cup N_{i-1}$. \item Если $N_i\neq N_{i-1}$, то положить $i=i+1$ и повторить шаг 1.2, в противном случае положить $N^A=N_i$. \end{enumerate} @@ -408,11 +408,11 @@ \section{Построение приведенной КС"/грамматики} \label{problem-GrammarToEpsFreeGrammarWOCyclicSymbols} Докажите, что если на вход алгоритма~\ref{algo-DelUselessSybmbols} подается неукорачивающаяся КС"/грамматика без цепных продукций, то на выходе алгоритма получится неукорачивающаяся КС"/грамматика без бесполезных символов и цепных продукций. -КС"/грамматика $G=(H,\Sigma,P,S)$ называется грамматикой без циклов, если в ней нет выводов $A\To^*A$ для $A\in N$. +КС"/грамматика $G=(N,\Sigma,P,S)$ называется грамматикой без циклов, если в ней нет выводов $A\To^*A$ для $A\in N$. \end{myproblem} \begin{myproblem} -Докажите, что если неукорачивающаяся КС"/грамматика $G=(N,\Sigma,P,S)$ не имеет цепных продукций, то в ней нет циклов. Существуют ли КС\-грамматики с циклами, но без цепных продукций? +Докажите, что если неукорачивающаяся КС"/грамматика $G=(N,\Sigma,P,S)$ не имеет цепных продукций, то в ней нет циклов. Существуют ли КС"/грамматики с циклами, но без цепных продукций? \end{myproblem} КС"/грамматика $G$ называется \mydef{приведенной}, если она не имеет бесполезных символов, циклов и является неукорачивающейся. @@ -428,7 +428,7 @@ \section{Построение приведенной КС"/грамматики} \item Применить алгоритм~\ref{algo-DelCyclicProductions} и по КС"/грамматике $G_2$ построить неукорачивающуюся КС"/грамматику без цепных продукций $G_3$, для которой $L(G_3)=L(G_2)$. -\item Применить алгоритм~\ref{algo-DelUselessSybmbols} и по КС"/грамматике $G_3$ построить искомую КС"/грамматику $G$, для которой $L(G_3)=L(G')$. +\item Применить алгоритм~\ref{algo-DelUselessSybmbols} и по КС"/грамматике $G_3$ построить искомую КС"/грамматику $G'$, для которой $L(G_3)=L(G')$. } \begin{mytheorem}