Глава 17

Кодирования. Неавтоматные языки

[19/100%]
Показать
LaTeX
Задача 261

Дана следующая схема кодирования из алфавита Σ={a,b,c}\Sigma =\left\{ a, b, c\right\} в алфавит Ω={0,1,2}:C={(aa,0),(abc,11),(ba,21),(c,ε),(bb,2),(ab,22),(b,1)}\Omega =\left\{ 0,1,2\right\} : C=\left\{ (a a, 0),(a b c, 11),(b a, 21),(c, \varepsilon ),(b b, 2),(a b, 22),(b, 1)\right\}. Найти множества кодов для следующих слов:

?
(а)

abaabac;

(б)

bacbbaccab;

(в)

aabcabccaab;

(г)

abcbbaabc.

Задача 262

Дана следующая схема кодирования из алфавита Σ={0,1}\Sigma =\left\{ 0,1\right\} в алфавит Ω={a,b}:C={(000,ab),(10,a),(11,bb)}\Omega =\left\{ a, b\right\} : C=\left\{ (000, a b),(10, a),(11, b b)\right\}. Найти результаты кодирования следующих языков, представленных регулярными выражениями:

?
(а)

(0+1)(0+1)^{*};

(б)

(10+0)(ε+1)(10+0)^{*}(\varepsilon +1);

(в)

(00+11)(00+11)^{*};

(г)

(001+01+110)(001+01+110)^{*}.

Задача 263

Пусть гомоморфизм C:{a,b,c}{0,1}C:\left\{ a, b, c\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} определяется равенствами C(a)=10,C(b)=01,C(c)=εC(a)=10, C(b)=01, C(c)=\varepsilon.

Построить детерминированный конечный автомат, который распознаёт язык C1(L)C^{-1}(L) для языка L={w:w заканчивается на 01 и содержит чётное количество единиц }L=\left\{ w: w\text{ заканчивается на 01 и содержит чётное количество единиц }\right\}.

?
Задача 264

Определим операцию цилиндрификации, которая обратна операции проекции. Пусть CC — проекция алфавита Σ\Sigma на алфавит ΩΣ\Omega \subseteq \Sigma. Для любого языка LΩL \subseteq \Omega^{*} определим его цилиндрификацию до алфавита Σ\Sigma как язык

ZΣ(L)={wΣ:C(w)L}. Z_{\Sigma }(L)=\left\{ w \in \Sigma ^{*}: C(w) \in L\right\} .

Показать, что для автоматного языка LL язык ZΣ(L)Z_{\Sigma }(L) также является автоматным языком. Предложить процедуру перестройки автомата, распознающего LL, в автомат, распознающий ZΣ(L)Z_{\Sigma }(L).

?
Задача 265

Построить граф кодирования для первых шести кодовых слов азбуки Морзе.

?
Задача 266

С помощью критерия Маркова выяснить, будет ли разнозначным гомоморфизм: C(a)=01,C(b)=100,C(c)=0110,C(d)=11,C(e)=0100,C(f)=101C(a)=01, C(b)=100, C(c)=0110, C(d)=11, C(e)=0100, C(f)=101. Если нет, то найти слово, которое нельзя однозначно декодировать.

?
Задача 267

Доказать, что беспрефиксные гомоморфизмы разнозначны с помощью критерия Маркова.

?
Задача 268

Доказать, что гомоморфизм φ\varphi^{\prime }, построенный в доказательстве леммы 128 на стр. 354, является беспрефиксным.

Лемма 128: Пусть каждый символ aΣa \in \Sigma встречается nan_{a} раз в слове wΣw \in \Sigma^{*}, а aa и bb — два самых редких символа, с наименьшими nan_{a} и nbn_{b}. Пусть φ:Σ{0,1}\varphi :\Sigma^{*} \rightarrow \left\{ 0,1\right\}^{*} — оптимальный двоичный гомоморфизм для слова (w)ba(w)_{b}^{a} (слова ww, в котором все вхождения aa заменены на bb). Тогда оптимальным для слова ww двоичным гомоморфизмом будет такой: ψa=φb0,ψb=φb1,ψc=φc\psi_{a}=\varphi_{b} 0, \psi_{b}=\varphi_{b} 1, \psi_{c}=\varphi_{c}, если c{a,b}c \notin \left\{ a, b\right\}.

В доказательстве (от противного) из предположения, что ψ\psi не оптимален, строится оптимальный гомоморфизм ψ\psi^{\prime } такой, что ψa=u0,ψb=u1\psi_{a}^{\prime }=u 0, \psi_{b}^{\prime }=u 1 для некоторого u{0,1}u \in \left\{ 0,1\right\}^{*}, из которого для слова (w)ba(w)_{b}^{a} строится гомоморфизм φ\varphi^{\prime }: φb=u,φc=ψc\varphi_{b}^{\prime }=u, \varphi_{c}^{\prime }=\psi_{c}^{\prime } при cbc \neq b.

?
Задача 269

Построить с помощью метода Хаффмана оптимальные двоичные кодирования для слов

?
(а)

«каракатица»,

(б)

«параллелепипед»,

(в)

«телеаппаратура»,

(г)

«индивидуальность»,

(д)

«перераспределение»

(е)

«обороноспособность»

(ж)

«стронгилоцентротус»

(з)

«тартароблатта».

Определить длину получившихся кодов слов. Вычислить, насколько оптимальное кодирование даёт результат короче, чем двоичное равномерное, то есть когда коды всех символов имеют одну и ту же длину.

Задача 270

Построить конечные преобразователи, выполняющие декодирование из задачи 269.

?
(а)

(а) из задачи 269;

(б)

(б) из задачи 269.

Задача 271

Индукцией по построению доказать, что для двоичного кода Хаффмана сумма в неравенстве Крафта-МакМиллана в точности равна единице.

?
Задача 272

Требуется построить разнозначный двоичный гомоморфизм из алфавита {a,b,c,d,e,f,g,h}\left\{ a, b, c, d, e, f, g, h\right\}. По некоторым причинам для символов a,b,c,d,e,fa, b, c, d, e, f решено использовать кодовые слова длин 5,1,3,3,4,85,1,3,3,4,8 соответственно. Известно, что средние частоты символов gg и hh равны 18\frac{1}{8} и 15\frac{1}{5} соответственно. Найти оптимальные длины кодовых слов для gg и hh.

?
Задача 273

Обращением слова w=a1a2ak,aiΣw=a_{1} a_{2} \ldots a_{k}, a_{i} \in \Sigma при i=1,,ki=1, \ldots , k, называется слово w1=aka2a1w^{-1}=a_{k} \ldots a_{2} a_{1}. Показать, что для автоматного языка LL его обращение — язык L1={w1:wL}L^{-1}=\left\{ w^{-1}: w \in L\right\} — также является автоматным.

?
Задача 274

Пусть LL — автоматный язык в алфавите Σ\Sigma. Доказать, что автоматными являются и следующие языки:

?
(а)

PREF(L)={w: есть такое слово xΣ, что wxL}\operatorname {PREF}(L)=\left\{ w:\text{ есть такое слово }x \in \Sigma^{*}\text{, что }w x \in L\right\};

(б)

SUFF(L)={w: есть такое слово xΣ, что xwL}\operatorname {SUFF}(L)=\left\{ w:\text{ есть такое слово }x \in \Sigma^{*}\text{, что }x w \in L\right\};

(в)

INF(L)={w: есть такие слова x,yΣ, что xwyL}\operatorname {INF}(L)=\left\{ w:\text{ есть такие слова }x, y \in \Sigma^{*}\text{, что }x w y \in L\right\};

(г)

MAX(L)={wL:wxL для всякого непустого слова x}\operatorname {MAX}(L)=\left\{ w \in L: w x \notin L\text{ для всякого непустого слова }x\right\};

(д)

MIN(L)={wL:xL для всякого собственного префикса x слова w}\operatorname {MIN}(L)=\left\{ w \in L: x \notin L\text{ для всякого собственного префикса }x\text{ слова }w\right\};

(е)

DEL(L)={xz:xyzL для некоторого слова y}\operatorname {DEL}(L)=\left\{ x z: x y z \in L\text{ для некоторого слова }y\right\};

(ж)

CYCLE(L)={yx:xyL}\operatorname {CYCLE}(L)=\left\{ y x: x y \in L\right\}.

Задача 275

Пусть LL — автоматный язык в алфавите Σ={a1,,am}\Sigma =\left\{ a_{1}, \ldots , a_{m}\right\}, а L1,,LmL_{1}, \ldots , L_{m} — это автоматные языки в алфавите Δ\Delta. Доказать, что автоматным является и язык SUBST(L)\operatorname {SUBST}(L), полученный из слов LL заменой каждой буквы aia_{i} на некоторое слово из LiL_{i}. Таким образом,

SUBST(L)={w1w2wn:w1Li1,,wnLin и существует ai1ai2ainL}. \operatorname {SUBST}(L)=\left\{ w_{1} w_{2} \ldots w_{n}: w_{1} \in L_{i_{1}}, \ldots , w_{n} \in L_{i_{n}} \text{ и существует } a_{i_{1}} a_{i_{2}} \ldots a_{i_{n}} \in L\right\} .
?
Задача 276

Доказать, что следующие языки в алфавите Σ={a,b,c}\Sigma =\left\{ a, b, c\right\} не являются автоматными:

?
(а)

множество всех слов, в которых букв aa на 3 больше, чем букв bb;

(б)

L={ancbm:m>3n}L=\left\{ a^{n} c b^{m}: m>3 n\right\};

(в)

L={wcw1:w=a2bna для некоторого n>0}L=\left\{ w c w^{-1}: w=a^{2} b^{n} a \text{ для некоторого } n>0\right\};

(г)

L={w:w=2n для некоторого натурального n}L=\left\{ w:\left|w\right|=2^{n} \text{ для некоторого натурального } n\right\};

(д)

L={wcw:w{a,b},w — длина слова w}L=\left\{ w c^{\left|w\right|}: w \in \left\{ a, b\right\}^{*}, \left|w\right| \text{ — длина слова } w\right\}.

Задача 277

Пусть V\boldsymbol {V} — это конечное множество переменных, L={ «(», «)», «λ» }\boldsymbol {L}=\left\{ \text{ «(», «)», «λ» }\right\}. Тогда λ\lambda-выражение — это слово в алфавите VL\boldsymbol {V} \cup \boldsymbol {L}, определяемое индуктивно: либо переменная xVx \in \boldsymbol {V}, либо « λxe1\lambda x e_{1} », либо « (e1e2)\left(e_{1} e_{2}\right) », где xVx \in \boldsymbol {V}, e1,e2e_{1}, e_{2}λ\lambda-выражения. Например, слова « λxx»\lambda x x », « λx(xx)»\lambda x(x x) », « λxλx(λx(xx)λx(xx))»\lambda x \lambda x(\lambda x(x x) \lambda x(x x)) » — это λ\lambda-выражения, а слова « (xλx)»(x \lambda x) », « λx(λx)»\lambda x(\lambda x) » и « λx\lambda x ((xx)»λ(x x) » \lambda-выражениями не являются. Доказать, что множество λ\lambda-выражений в алфавите VL\boldsymbol {V} \cup \boldsymbol {L} не является автоматным.

?
Задача 278

Выше в задаче 243 на стр. 310 строился автомат, который проверял правильность сложения двоичных чисел. Доказать, что для операции умножения двоичных чисел такого автомата не существует. Точнее, следующий язык в алфавите трёхэтажных символов не является автоматным:

\begin{array}{r} \left\{ \llbracket \left[\begin{smallmatrix} x_{1} \\ y_{1} \\ z_{1} \end{array}

x_n y_n z_n : x_i, y_i, z_i 0,1 для i=1, , n и z_n z_1 — это произведение двоичных чисел x_n x_1 и y_n y_1.

?
Задача 279

Доказать, что следующий язык в алфавите Σ={a,b,c}\Sigma =\left\{ a, b, c\right\} не является автоматным:

L={wΣ: количества букв a и b в слове w различны }. L=\left\{ w \in \Sigma ^{*}: \text{ количества букв } a \text{ и } b \text{ в слове } w \text{ различны }\right\} .
?