2.4

Преобразование НКА в ДКА

[8/63%]
Показать
LaTeX
Пример 2.23

Дан НКА M=(Q,{0,1},δ,q0,F)M=\left(Q,\left\{ 0,1\right\} , \delta , q_{0}, F\right), где Q={q0,q1,q2q3,q4,q5},F={q3,q4}Q=\left\{ q_{0}, q_{1}, q_{2}\text{, }q_{3}, q_{4}, q_{5}\right\} , F=\left\{ q_{3}, q_{4}\right\}, и

δ\delta01ε\varepsilon
q0q_{0}{q0}\left\{ q_{0}\right\}{q0,q2}\left\{ q_{0}, q_{2}\right\}{q1}\left\{ q_{1}\right\}
q1q_{1}{q5}\left\{ q_{5}\right\}{q2}\left\{ q_{2}\right\}-
q2q_{2}{q3}\left\{ q_{3}\right\}--
q3q_{3}--{q4}\left\{ q_{4}\right\}
q4q_{4}{q3}\left\{ q_{3}\right\}--
q5q_{5}-{q4}\left\{ q_{4}\right\}-

(Диаграмма переходов MM показана на рисунке 2.29(a).) Найдите ДКА, эквивалентный НКА MM.

Рисунок 2.29: Преобразование НКА в ДКА.Рисунок 2.29: Преобразование НКА в ДКА.

?
Пример 2.24

Постройте ДКА, эквивалентный НКА M=({p,qr},{0,1},δ,p,{q,r})M=(\left\{ p, q\text{, }r\right\} ,\left\{ 0,1\right\} , \delta , p,\left\{ q, r\right\} ), где

δ\delta01
pp{p,q}\left\{ p, q\right\}{p}\left\{ p\right\}
qq-{r}\left\{ r\right\}
rr--
?
Пример 2.26

Пусть M=({p,q,r,s},{0,1},δ,p,{q,s})M=(\left\{ p, q, r, s\right\} ,\left\{ 0,1\right\} , \delta , p,\left\{ q, s\right\} )NFAN F A, заданный

δ\delta01
pp{q,s}\left\{ q, s\right\}{q}\left\{ q\right\}
qq{r}\left\{ r\right\}{q,r}\left\{ q, r\right\}
rr{s}\left\{ s\right\}{p}\left\{ p\right\}
ss-{p}\left\{ p\right\}

Постройте НКА, принимающий L(M)\overline{L(M)}.

?
Пример 2.27

Постройте ДКА, принимающий множество всех двоичных строк, у которых пятый символ справа равен 0.

?
Пример 2.28

Рассмотрим следующую таблицу умножения на {a,b,c}\left\{ a, b, c\right\} :

×\timesaabbcc
aaccaabb
bbbbccaa
ccccbbcc

Для любой строки ww из {a,b,c}+\left\{ a, b, c\right\}^{+} через value(w)\operatorname {value}(w) обозначим значение, полученное перемножением символов строки ww слева направо. Например, пусть w=abcbw=a b c b. Тогда получаем

value(w)=((a×b)×c)×b=(a×c)×b=b×b=c, and value(wR)=((b×c)×b)×a=(a×b)×a=a×a=c. \begin{aligned} \operatorname {value}(w) & =((a \times b) \times c) \times b=(a \times c) \times b=b \times b=c, \text{ and } \\ \operatorname {value}\left(w^{R}\right) & =((b \times c) \times b) \times a=(a \times b) \times a=a \times a=c. \end{aligned}

Постройте НКА для множества LL всех строк ww над {a,b,c}\left\{ a, b, c\right\} таких, что value(w)=value(wR)\operatorname {value}(w)=\operatorname {value}\left(w^{R}\right). (Например, abcbLa b c b \in L, а abbLa b b \notin L.)

?
Задача 2.4.1

Преобразуйте каждый из следующих НКА в эквивалентный ДКА:

?
(a)

НКА M=({p,q,r},,{0,1},δ,p,{q,r})M=(\left\{ p, q, r\right\} ,,\left\{ 0,1\right\} , \delta , p,\left\{ q, r\right\} ), где

δ\delta01
pp{p}\left\{ p\right\}{p,q}\left\{ p, q\right\}
qq{r}\left\{ r\right\}-
rr--
(b)

НКА MM на рисунке 2.27(a).

(c)

НКА MM на рисунке 2.27(b).

(d)

НКА MM на рисунке 2.27(c).

Задача 2.4.2

Для каждого из следующих языков постройте ДКА, принимающий этот язык:

?
(a)

Множество двоичных строк, содержащих одновременно подстроку 010 и подстроку 101.

(b)

Множество всех двоичных строк, заканчивающихся на 00, 01 или 10.

(c)

Множество двоичных строк, содержащих в качестве подстрок и 001, и 110, либо не содержащих ни 001, ни 110.

(d)

Множество двоичных строк, у которых и четвёртый символ справа, и четвёртый символ слева равны 0. [Примечание: обе строки 0110 и 10101 принадлежат этому множеству.]

Задача 2.4.3

Рассмотрим следующую таблицу умножения на {a,b,c}\left\{ a, b, c\right\} :

×\timesaabbcc
aaaaccbb
bbaabbcc
ccccccaa

Постройте НКА для следующих языков:

?
(a)

{xvalue(x)value(xR)}\left\{ x \mid \operatorname {value}(x) \neq \operatorname {value}\left(x^{R}\right)\right\}.

(b)

{xyvalue(x)=value(yR)}\left\{ x y \mid \operatorname {value}(x)=\operatorname {value}\left(y^{R}\right)\right\}.

(c)

{xyvalue(x)=value(y)}\left\{ x y \mid \operatorname {value}(x)=\operatorname {value}(y)\right\}.