1.2

Регулярные языки и регулярные выражения

[20/60%]
Показать
LaTeX
Пример 1.11
?
(a)

Является ли множество {ε}\left\{ \varepsilon \right\} регулярным языком?

(b)

Является ли множество {001,110}\left\{ 001,110\right\} регулярным языком над двоичным алфавитом?

Пример 1.12

a(a+b)=(a+ba)a^{*}(a+b)^{*}=\left(a+b a^{*}\right)^{*}.

?
Пример 1.13

(ba)+(ab+a)=(ba)ba+b(ba)^{+}\left(a^{*} b^{*}+a^{*}\right)=(b a)^{*} b a^{+} b^{*}.

?
Пример 1.14

Найдите регулярное выражение для множества двоичных представлений целых чисел, являющихся степенями 4.

?
Пример 1.15

Найдите регулярное выражение для множества двоичных строк, содержащих хотя бы одно вхождение подстроки 001.

?
Пример 1.16

Найдите регулярное выражение для множества AA двоичных строк, не содержащих подстроки 001.

?
Пример 1.17

Найдите регулярное выражение для множества BB всех двоичных строк, содержащих не более одной пары последовательных 0 и не более одной пары последовательных 1.

?
Пример 1.18

Найдите регулярное выражение для множества всех двоичных строк, обладающих тем свойством, что ни один из их префиксов не содержит на два 0 больше, чем 1, и ни один — на два 1 больше, чем 0.

?
Пример 1.19

Найдите регулярное выражение для множества всех непустых строк над арабскими цифрами, не содержащих повторяющихся соседних символов.

?
Пример 1.20

Найдите регулярное выражение для множества всех строк над алфавитом

{[000],[100],[010],[001],[110],[101],[011],[111]} \left\{ \left[\begin{smallmatrix} 0 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 1 \end{smallmatrix}\right]\right\}

которые представляют корректные операции сложения над двоичными представлениями целых чисел, с добавлением ведущих 0 при необходимости. Например, соотношение

0110+01011011 \begin{array}{r} 0110 \\ +\quad 0101 \\ \hline 1011 \end{array}

означает, что строка

[001][110][101][011] \left[\begin{smallmatrix} 0 \\ 0 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right]

принадлежит этому множеству.

?
Пример 1.21

Для каждого языка LL над алфавитом Σ\Sigma пусть LL^{\prime } — множество всех суффиксов строк из LL, то есть L={wuwL для некоторой строки u}L^{\prime }=\left\{ w \mid u w \in L\text{ для некоторой строки }u\right\}. Покажите, что если LL — регулярный язык, то и LL^{\prime } тоже регулярен.

?
Пример 1.22

Покажите, что каждый регулярный язык обладает регулярным выражением в дизъюнктивной нормальной форме α1+α2++αn\alpha_{1}+\alpha_{2}+\cdots +\alpha_{n}, в котором каждое αi\alpha_{i}, для i=1,2,,ni=1,2, \cdots , n, не содержит оператора + .

?
Задача 1.2.1

Опишите словами языки, задаваемые следующими регулярными выражениями:

?
(a)

(01)0\left(0^{*} 1^{*}\right)^{*} 0.

(b)

(01)0\left(01^{*}\right)^{*} 0.

(c)

(00+11+(01+10)(00+11)(01+10))\left(00+11+(01+10)(00+11)^{*}(01+10)\right)^{*}.

(d)

0+(01+011)(0+1+0+11)00^{*}+\left(0^{*} 1+0^{*} 11\right)\left(0^{+} 1+0^{+} 11\right)^{*} 0^{*}.

Задача 1.2.2

Упростите следующие регулярные выражения:

?
(a)

(00)0+(00)(00)^{*} 0+(00)^{*}.

(b)

(0+1)(ε+00)++(0+1)(0+1)(\varepsilon +00)^{+}+(0+1).

(c)

(0+ε)01(0+\varepsilon ) 0^{*} 1.

Задача 1.2.3

Постройте регулярные выражения для следующих языков над алфавитом {0,1}\left\{ 0,1\right\} :

?
(a)

Множество всех строк, у которых пятый символ справа равен 0.

(b)

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

(c)

Множество всех строк, не содержащих в качестве подстроки ни 000, ни 111.

(d)

Множество всех строк, не содержащих подстроки 010.

(e)

Множество всех строк, содержащих нечётное число 0.

(f)

Множество всех строк, содержащих чётное число вхождений подстроки 011. [Подсказка: сначала найдите регулярное выражение для множества двоичных строк, не содержащих подстроки 011.]

Задача 1.2.4

Покажите, что (02+03)=(020)\left(0^{2}+0^{3}\right)^{*}=\left(0^{2} 0^{*}\right)^{*}.

?
Задача 1.2.5

Постройте регулярное выражение для множества всех строк над алфавитом

{[000],[100],[010],[001],[110],[101],[011],[111]} \left\{ \left[\begin{smallmatrix} 0 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right],\left[\begin{smallmatrix} 1 \\ 1 \\ 1 \end{smallmatrix}\right]\right\}

которые представляют корректные операции вычитания. Например,

101110010010110 \begin{array}{rrrr} 1011 & 10 \\ - & 01001 \\ \hline 0110 \end{array}

означает, что строка

[100][011][101][110] \left[\begin{smallmatrix} 1 \\ 0 \\ 0 \end{smallmatrix}\right]\left[\begin{smallmatrix} 0 \\ 1 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 0 \\ 1 \end{smallmatrix}\right]\left[\begin{smallmatrix} 1 \\ 1 \\ 0 \end{smallmatrix}\right]

принадлежит этому множеству.

?
Задача 1.2.6

Покажите, что для любого регулярного языка L,Lodd={xLx=нечётно}L, L_{\text{odd}}=\left\{ x \in L \mid \left|x\right|=\text{нечётно}\right\} и Leven={xLx=чётно}L_{\text{even}}=\left\{ x \in L \mid \left|x\right|=\text{чётно}\right\} являются регулярными.

?
Задача 1.2.7

Покажите, что если LL — регулярный язык, то L={uv,uvL}L^{\prime \prime }=\left\{ u \mid \exists v, u v \in L\right\} также регулярен.

?
Задача 1.2.8

Пусть h:ΣΓh: \Sigma^{*} \rightarrow \Gamma^{*} — отображение, удовлетворяющее условию h(xy)=h(x)h(y)h(x y)=h(x) h(y) для любых x,yΣx, y \in \Sigma^{*}. Покажите, что если AA — регулярное множество над Σ\Sigma, то h(A)={h(x)xA}h(A)=\left\{ h(x) \mid x \in A\right\} является регулярным множеством над Γ\Gamma. Обратно, если BB — регулярное множество над Γ\Gamma, то h1(B)={xΣh(x)B}h^{-1}(B)=\left\{ x \in \Sigma^{*} \mid h(x) \in B\right\} является регулярным множеством над Σ\Sigma.

?