Você está na página 1de 5

CT208 - Matemática Computacional

Matheus H. P. Pacheco - Lista 05 - Cap 4 e 5 Sipser


14 de novembro de 2023

EXTRA 4.1

Do enunciado, temos que

L(C) = (L(A) ∩ L(B)) ∪ (L(A) ∩ L(B))


EQ-TM : input < A >, < B > where A,B are TMs
1-construct TM C with L(C) as escribed
2-run EMPTY-TM(C)
3-if it accepts, ACCEPT; if it rejects, REJECT;

Erros:

• A execução de EMPTY-TM para verificar se uma linguagem é vazia não


é suficiente para decidir EQ-TM, já que EQ-TM envolve determinar se
duas máquinas aceitam exatamente a mesma linguagem, não apenas se
uma linguagem é vazia ou não.

• O erro está na falta de consideração de todas as possibilidades. O algo-


ritmo proposto verifica se L(C) é vazia, mas não leva em conta a pos-
sibilidade de L(C) não ser vazia. A EQ-TM exige uma abordagem que
cubra todos os casos de diferença de comportamento entre A e B. O algo-
ritmo não aborda adequadamente essas diferenças, levando a uma resposta
equivocada para o problema de equivalência.

1
4.13

Prova:

A seguinte máquina de Turing T decide a linguagem A.

Input: w

1. Verificar se w codifica um par < R, S > em que R e S são expressões


regulares:
- Se não for o caso, rejeitar w

2. Traduzir R num DFA DR equivalente e R num DFA DS equivalente.

3. Construir um DFA DS que aceite a linguagem L(DS).

4. Construir um DFA D que seja a intersecção de DR com DS, ou seja,


L(D) = L(DR) ∩ L(DS).

5. Agora, execute a máquina de Turing T com a entrada < D > para


determinar se L(D) está vazio:
- Se T aceita < D > (o que significa que L(D) está vazio), então aceita
w.

- Se T rejeitar < D > (o que significa que L(D) NÃO está vazio),
então rejeita w.

Agora é possível provar que a máquina de Turing T decide a linguagem A.

- Antes de tudo, prove que T é interrompido em todas as entradas:

Seja w uma palavra qualquer. Há duas possibilidades:

Ou w codifica um par de expressões regulares ou não codifica. Verifi-


car se isso levará um tempo finito.

- Se x não codificar um par de expressões regulares, então T para de rejeitar


w.

- Caso contrário, assuma que w codifica um par < R, S >.

- A construção dos DFAs descritos nas etapas 2, 3 e 4 acima é possível (as


linguagens regulares são fechadas sob interseção e complementação) e leva um
tempo finito.

2
Portanto, em todos os casos, T para em qualquer entrada w após um período
de tempo finito.

Portanto, fica provado que a linguagem A é decidível.

4.16

Considere a Lingaugem
(
R | R is a regular expression describing a language containing
A=
at least one string w that has 111 as a substring (i.e., w = x111y for some x and y)

A decidibilidade da linguagem A é provada da seguinte forma:

Definimos uma linguagem S tal que S = {w ∈ Σ⋆ |w consiste em 111 como substring}

A expressão regular (RE) da linguagem S é (0 ∪ 1)⋆ 111(0 ∪ 1)⋆

O DF As para a linguagem S é mostrado abaixo:

Figura 1: Exemplo

- Pensando uma RE R no alfabeto de entrada S.

- Se S ∩ L(R) ̸= ϕ , então a RE produz uma string contendo 111 como


substring. Portanto , R ∈ A.

- De forma similar, se S ∩ L(R) ̸= ϕ então a RE produz uma cadeia de


caracteres que não contém 111. Portanto, R não pertence a A

- Como L(R) é descrito por uma linguagem regular, L(R) é uma linguagem
regular. Tanto S quanto L(R) são linguagens regulares.

3
- S ∩ L(R) é regular porque as linguagens regulares são fechadas sob inter-
seção. Portanto, S ∩ L(R) tem algum DFA DS∩L(R) .

- O Teorema 4.4 do sipser mostra que EDF A = { K |K é um DFA com L(K) ̸= ϕ}


é decidível. Portanto, existe uma máquina de Turing TM que determina o
EDF A .

O resumo da discussão acima contribui para que a máquina de Turing M


abaixo decida A:

M = input R

- Transformamos R em um DFA DR por meio do algoritmo na prova do


Teorema de Kleene.

- Criamos um DFA DS∩L(R) para a linguagem S ∩ L(R) dos DFAs DS e DR .

- Executar TM T que decide o EDF A na entrada DS∩L(R)

- Se T aceitar, rejeite. Se T rejeitar, aceite.

A máquina de Turing T decide A . Portanto, a linguagem A é de-


cidível.

4.19

Considere uma linguagem decidível K e um homomorfismo m. Mostraremos


que m(K) é indecidível.

Prova:

- Assumindo que:

⋆ ⋆
uv|u ∈ {0, 1} , v ∈ {a, b} , u = W, w ,

K = e v codifica um número inteiro n,
usando a máquina de turing W com entrada w, obtém paradas em n etapas

- Como K é decidível, simulamos a máquina de Turing W na entrada w por


n etapas.

- Consideramos o homomorfismo m(0) = 0, m(1) = 1 e m(a) = m(b) = ϵ

- m(K) = HALT, o que é indecidível

Portanto, a linguagem decidível K não é fechada sob o homomorfismo m.

4
4.20

Você também pode gostar