Кто-нибудь в них разбирается?
Регулярен ли язык
![L = \{a^ivb^j | 1 \leq j, i \geq 2j-2, v \in \{a,c,d\}*\} [tex]L = \{a^ivb^j | 1 \leq j, i \geq 2j-2, v \in \{a,c,d\}*\}[/tex]](https://latex.codecogs.com/png.latex?L = \{a^ivb^j | 1 \leq j, i \geq 2j-2, v \in \{a,c,d\}*\})
?
Предположим, что
![L [tex]L[/tex]](https://latex.codecogs.com/png.latex?L)
регулярен.
Среди свойств регулярных языков есть такое: если
![L_1, L_2 [tex]L_1, L_2[/tex]](https://latex.codecogs.com/png.latex?L_1, L_2)
регулярны, то
![L_1\cap L_2,\; L_1^R [tex]L_1\cap L_2,\; L_1^R[/tex]](https://latex.codecogs.com/png.latex?L_1\cap L_2,\; L_1^R)
регулярны. (
![L_1^R [tex]L_1^R[/tex]](https://latex.codecogs.com/png.latex?L_1^R)
— язык, состоящий из всех слов языка
![L_1 [tex]L_1[/tex]](https://latex.codecogs.com/png.latex?L_1)
, записанных в обратном порядке.)
Язык
![\{b^*a^*\} [tex]\{b^*a^*\}[/tex]](https://latex.codecogs.com/png.latex?\{b^*a^*\})
регулярен, следовательно, по свойству, язык
![N:=L^R\cap\{b^*a^*\} [tex]N:=L^R\cap\{b^*a^*\}[/tex]](https://latex.codecogs.com/png.latex?N:=L^R\cap\{b^*a^*\})
регулярен.
![N=\{b^ja^i\mid j\geqslant 1,\; i\geqslant 2j-2\}. [tex]N=\{b^ja^i\mid j\geqslant 1,\; i\geqslant 2j-2\}.[/tex]](https://latex.codecogs.com/png.latex?N=\{b^ja^i\mid j\geqslant 1,\; i\geqslant 2j-2\}.)
Пусть
![p [tex]p[/tex]](https://latex.codecogs.com/png.latex?p)
— длина накачки языка
![N [tex]N[/tex]](https://latex.codecogs.com/png.latex?N)
.
![b^pa^{2p-2}\in N [tex]b^pa^{2p-2}\in N[/tex]](https://latex.codecogs.com/png.latex?b^pa^{2p-2}\in N)
, следовательно по лемме о накачке
![\exists\, \alpha,\gamma\in\mathbb Z^+\;\exists\,\beta\in\mathbb N\;\left[\alpha+\beta+\gamma=p \quad \wedge \quad \forall k\in\mathbb N\;[b^\alpha(b^\beta)^kb^\gamma a^{2p-2}\in N]\right] [tex]\exists\, \alpha,\gamma\in\mathbb Z^+\;\exists\,\beta\in\mathbb N\;\left[\alpha+\beta+\gamma=p \quad \wedge \quad \forall k\in\mathbb N\;[b^\alpha(b^\beta)^kb^\gamma a^{2p-2}\in N]\right][/tex]](https://latex.codecogs.com/png.latex?\exists\, \alpha,\gamma\in\mathbb Z^+\;\exists\,\beta\in\mathbb N\;\left[\alpha+\beta+\gamma=p \quad \wedge \quad \forall k\in\mathbb N\;[b^\alpha(b^\beta)^kb^\gamma a^{2p-2}\in N]\right])
.
Однако, при
![k=2 [tex]k=2[/tex]](https://latex.codecogs.com/png.latex?k=2)
имеем
![b^\alpha(b^\beta)^kb^\gamma a^{2p-2}=b^{p+\beta}a^{2p-2}\notin N [tex]b^\alpha(b^\beta)^kb^\gamma a^{2p-2}=b^{p+\beta}a^{2p-2}\notin N[/tex]](https://latex.codecogs.com/png.latex?b^\alpha(b^\beta)^kb^\gamma a^{2p-2}=b^{p+\beta}a^{2p-2}\notin N)
, т. к.
![2p-2 < 2(p+\beta)-2 [tex]2p-2 < 2(p+\beta)-2[/tex]](https://latex.codecogs.com/png.latex?2p-2 < 2(p+\beta)-2)
. Следовательно, изначальное предположение неверно, и язык
![L [tex]L[/tex]](https://latex.codecogs.com/png.latex?L)
нерегулярен.
Спасибо, Тайльнемер! Сегодня по дороге на работу как раз меня осенила мысль, что если перевернуть, то по лемме о накачке легко доказывается. А вчера я крутил-крутил, пытаясь напрямую доказать по той же лемме, но ничего не получалось. Возможно ли это вообще?
Цитата: RawonaM от декабря 9, 2011, 08:13
Возможно ли это вообще?
Вряд ли. Лемму, конечно, можно переформулировать для такого случая:
w=
xyz, |
yz|≤
p.
Дан регулярный язык L. Нужно доказать, что
![L'=\{w\in \Sigma*|ww^R \in L\} [tex]L'=\{w\in \Sigma*|ww^R \in L\}[/tex]](https://latex.codecogs.com/png.latex?L'=\{w\in \Sigma*|ww^R \in L\})
тоже регулярен.
Доказательство: построим недетерминированный автомат принимающий L'. Пусть
![A=(\Sigma,Q,q_0,F,\delta) [tex]A=(\Sigma,Q,q_0,F,\delta)[/tex]](https://latex.codecogs.com/png.latex?A=(\Sigma,Q,q_0,F,\delta))
детерминированный автомат, принимающий L.
Определим
![B=(\Sigma,Q\times Q \cup \{p_0\},p_0,F_B,\mu) [tex]B=(\Sigma,Q\times Q \cup \{p_0\},p_0,F_B,\mu)[/tex]](https://latex.codecogs.com/png.latex?B=(\Sigma,Q\times Q \cup \{p_0\},p_0,F_B,\mu))
.
![\mu(p_0,\epsilon)=\{q_0\}\times F [tex]\mu(p_0,\epsilon)=\{q_0\}\times F[/tex]](https://latex.codecogs.com/png.latex?\mu(p_0,\epsilon)=\{q_0\}\times F)
Для каждых
![q,r\in Q , \sigma \in \Sigma [tex]q,r\in Q , \sigma \in \Sigma[/tex]](https://latex.codecogs.com/png.latex?q,r\in Q , \sigma \in \Sigma)
![\mu((q,r),\sigma)=\{\delta(q,\sigma)\}\times \{s\in Q|\delta(s,\sigma)=r\} [tex]\mu((q,r),\sigma)=\{\delta(q,\sigma)\}\times \{s\in Q|\delta(s,\sigma)=r\}[/tex]](https://latex.codecogs.com/png.latex?\mu((q,r),\sigma)=\{\delta(q,\sigma)\}\times \{s\in Q|\delta(s,\sigma)=r\})
Вот только что-то я не догоняю какие состояния будут принимающими.
![\{(q,q)|q\in Q\} [tex]\{(q,q)|q\in Q\}[/tex]](https://latex.codecogs.com/png.latex?\{(q,q)|q\in Q\})
или
![F\times \{q_0\} [tex]F\times \{q_0\}[/tex]](https://latex.codecogs.com/png.latex?F\times \{q_0\})
?
Цитата: RawonaM от декабря 20, 2011, 19:56
Вот только что-то я не догоняю какие состояния будут принимающими.
или
?
А все, дошло, первый вариант правилен. Я все язык путал.
Дан язык
![L=\{a^{i_1}ba^{i_2}b...a^{i_n}bc^ta^{i_{n-t+1}}| 1\leq n; \forall k (1\le k \le n): i_k \ge 1; 1 \le t \le n\} [tex]L=\{a^{i_1}ba^{i_2}b...a^{i_n}bc^ta^{i_{n-t+1}}| 1\leq n; \forall k (1\le k \le n): i_k \ge 1; 1 \le t \le n\}[/tex]](https://latex.codecogs.com/png.latex?L=\{a^{i_1}ba^{i_2}b...a^{i_n}bc^ta^{i_{n-t+1}}| 1\leq n; \forall k (1\le k \le n): i_k \ge 1; 1 \le t \le n\})
.
Нужно построить автомат с магазинной памятью без переходов-эпсилон, принимащий этот язык.
Я затрудняюсь потому что с одной стороны нужно считать сколько a в каждой группе, поэтому нужно впихивать в стек много символов, с другой стороны когда нужно будет найти нужное значение можно будет снимать только по одному символу со стека на каждый символ ввода (т.к. нельзя применять переходы-эпсилон), и поэтому по-моему будет достаточно символов.
Дошло, вопрос снят.
Цитата: Тайльнемер от декабря 9, 2011, 08:48
Цитата: RawonaM от декабря 9, 2011, 08:13Возможно ли это вообще?
Вряд ли.
Оказывается это вполне возможно, просто нужно взять i=0 и все в порядке.