Universidade Federal de Uberlândia
Mestrado em Ciência da Computação
Solução da 1a Prova de Teoria da Computação - 05/05/2010
Questão 1 (Valor = 7 pontos)
Um número real é dito algébrico se é raiz de um polinômio de√ coeficientes inteiros
an xn + an−1 xn−1 + ... + a1 x + a0 = 0. Por exemplo, o número 2 é algébrico pois é
raiz do polinômio x2 − 2 = 0. Um número real é dito transcendente se não for algébrico.
Por exemplo, é sabido que o número e não é algébrico. Mostrar que o conjunto dos
números transcendentes não é enumerável.
Solução:
• Mostremos primeiramente que o conjunto P de todos os polinômios a coeficientes
inteiros é um conjunto enumerável.
Seja Pn o conjunto dos polinômios de grau n, de coeficientes em Z. Cada elemento
de Pn está associado de forma única a uma sequência (a0 , a1 , ..., an ) de números
inteiros, de tamanho n + 1 (a sequência de seus coeficientes). Isto é, existe uma
função bijetora f : Pn → Z × Z × ... × Z (n + 1 vezes). Como Z × ... × Z é enumerável
S
(demonstrado em sala de aula), então Pn é enumerável. Temos que P = ∞
n=0 Pn .
Como a união enumerável de conjuntos enumeráveis é um conjunto enumerável
(demonstrado em sala de aula), temos que P é um conjunto enumerável, isto é, P
= {p1 , p2 , p3 , ....}.
• Mostremos que o conjunto A dos números reais algébricos é enumerável. Para cada
polinômio pi ∈P,S
seja Ri = {ri1 , ri2 , ..., riki } o conjunto (finito) de suas raı́zes reais.
Temos que A = ∞
i=1 Ri . Portanto, A é enumerável, já que é a união enumerável
de conjuntos finitos (mostrado em aula).
• Temos que R = A∪ A. Se o conjunto dos números reais transcendentes A fosse
enumerável, R seria enumerável, pois seria a união de dois conjuntos enumeráveis.
O que é absurdo, pois sabemos que R não é enumerável (mostrado na primeira lista
de exercı́cios).
Questão 2 (Valor = 7 pontos) Diga se é verdadeiro ou falso e prove sua resposta.
Seja L uma linguagem indecidı́vel. Então existe uma redução de AT M para L.
A afirmação é falsa. Contraexemplo: considere a linguagem ET M . Sabemos que ET M
é indecidı́vel. Entretanto, não existe AT M 6≤m ET M .
• ET M é Turing-reconhecı́vel. Seja w1 , w2 , ... o conjunto de todos os strings de Σ∗ .
Considere a seguinte máquina de Turing:
S = No input < M > faça:
1. i = 1
2. Repita os seguintes passos até atingir o estado qa
Execute passo de M em wi ,
Execute passos 1 e 2 de M em wi−1 ,
...
Execute passos 1, 2, ..., i de M em w1 ,
i=i+1
3. Aceita.
A máquina S reconhece a linguagem ET M .
• Suponhamos por absurdo que AT M ≤m ET M . Então, AT M ≤m ET M . Como
mostramos que ET M é Turing-reconhecı́vel (item anterior), então AT M seria Turingreconhecı́vel, o que é absurdo: se fosse Turing-reconhecı́vel, o problema AT M seria
decidı́vel, já que é Turing reconhecı́vel. E sabemos que AT M é indecidı́vel (mostrado
em sala de aula).
Questão 3 (Valor = 7 pontos)
Seja L = { < M, x > tal que em algum ponto do cálculo de M sobre o input x, M volta
para o estado inicial}. Mostre que L é indecidı́vel.
Sugestão: Mostre que AT M se reduz a L.
Solução: Seja M = (Q, Σ, Γ, δ, q0 , qa , qr ) uma máquina de Turing. Vamos modificar o
código de M , obtendo o código de M 0 = (Q0 , Σ0 , Γ0 , δ 0 , q00 , qa , qr )
Considere a seguinte função que associa uma instância de AT M a uma instância de L:
Para cada instância < M, w > de AT M seja < M 0 , x > a seguinte instância de L: x = w
e M 0 é a máquina de Turing que passamos a descrever abaixo:
1. estados de M 0 = Q ∪ {q00 }. Isto é, introduzo um novo estado em M 0 .
2. simbolos de input de M 0 = simbolos de input de M (Σ0 = Σ).
3. simbolos da fita de M 0 = simbolos da fita de M (Γ = Γ0 ).
4. estado inicial de M 0 = q00 .
5. estado de aceitação de M 0 = estado de aceitação de M = qa
6. estado de rejeição de M 0 = estado de rejeição de M = qr
7. Função de transição de M 0 = δ 0 . A idéia de M 0 é que sempre que M entrar no
estado qa quando executada no input w, M 0 vai entrar no seu estado inicial q00 . Os
outros passos de M 0 seguem a mesma estrutura da máquina M , isto é, seguem a sua
função de transição. Assim, só temos de fazer com que q00 simule o estado inicial de
M (no inicio do cálculo, tudo o que q0 faz, q00 deve fazer também). Se a partir de
algum estado q, M dirige-se para qa , então obrigo M 0 a passar de q para seu estado
inicial q00 . Veja que a introdução deste novo estado inicial foi feita para garantir que
M 0 volta ao inicio ao ser processada num input x SÓ SE M aceita x.
A função de transição de M 0 é dada por:
δ 0 (q00 , a) = δ(q0 , a) para todo a ∈ Σ
δ 0 (q, a) = δ(q, a)
para todo a ∈ Γ, caso δ(q, a) = (q1 , b, y), onde b ∈ Γ, y ∈ {R, L} e q1 6= qa
0
δ (q, a) = (q00 , b, y)
para todo a ∈ Γ, caso δ(q, a) = (qa , b, y), onde b ∈ Γ, y ∈ {R, L}
0
É claro que M aceita x se e somente se M 0 volta para seu estado inicial qO
em algum
ponto de seu cálculo ao ser executada sobre x.
Consideremos agora uma redução de AT M para L da seguinte maneira: para cada
instância < M, w > deAT M associamos uma instância < M 00 > de L, onde M 00 é a
seguinte máquina de Turing:
M 00 = No input x faça
1. Se x 6= w, rejeita
2. Se x = w, executa M 0 em w
Temos que:
se M aceita w então M 00 volta ao seu estado inicial q00 em algum passo, ao ser executada
em w
se M não aceita w então M 00 nunca volta a seu estado inicial q00 ao ser executada em
qualquer input x
Portanto, exibimos uma redução de AT M para L, mostrando assim que L é indecidı́vel.
Questão 4 (Valor = 7 pontos) Diga se é verdadeiro ou falso e prove sua resposta.
Sejam A e B duas linguagens indecidı́veis distintas tais que A se reduz a B. Então B
não se reduz a A.
Solução:
A afirmação é falsa. Para isto, vamos considerar um contraexemplo: dois problemas
A e B indecidı́veis, A 6= B tais que A ≤m B e B ≤m A. Seja A o problema HALT e B o
problema AT M .
HALT ≤m AT M : dada uma instância < M, w > de HALT, consideremos a instância
< M 0 , w > de AT M , onde M 0 é definida da seguinte maneira:
M 0 = No input x faça:
1. Se x 6= w, rejeita
2. Se x = w, executa M em w
3. Se pára em qa ou qr : aceita
É claro que M pára em w se e somente se M 0 aceita w.
AT M ≤m HALT : demonstrado em sala de aula, não é necessário repetir.
Só por uma questão de completude, vamos exibir a demonstração feita em sala de
aula:
Dada uma instância < M, w > de AT M , consideremos a instância < M 0 , w > de
HALT, onde M 0 é definida da seguinte maneira:
M 0 = No input x faça:
1. Se x 6= w, rejeita
2. Se x = w, executa M em w
3. Se aceita: aceita.
4. Se rejeita: entra em loop.
É claro que M aceita w se e somente se M 0 pára em w.
Questão 5 (Valor = 7 pontos)
Para cada um dos problemas, diga se é decidı́vel, Turing-reconhecı́vel ou co-Turingreconhecı́vel. Não é necessário justificar sua resposta.
1. ALLDF A = {< A >| A é autômato finito que pára para todos os seus inputs}.
Decidı́vel: SIM
Turing-reconhecı́vel: SIM
co-Turing reconhecı́vel: SIM.
2. ALLCF G = {< G >| G é gramática livre do contexto que gera todos os strings com
0’s e 1’s}.
Decidı́vel: NÃO
Turing-reconhecı́vel: NÃO
co-Turing reconhecı́vel: SIM.
3. L1 = {< G >| G é gramática livre do contexto que não gera nenhum string de
terminais}.
Decidı́vel: SIM
Turing-reconhecı́vel: SIM
co-Turing reconhecı́vel: SIM.
4. L2 = {< M >| M é máquina de Turing que não pára em nenhum input}
Decidı́vel: NÃO
Turing-reconhecı́vel: NÃO
co-Turing reconhecı́vel: SIM.
5. L3 = {< M >| M é máquina de Turing que não pára em algum input}
Decidı́vel: NÃO
Turing-reconhecı́vel: NÃO
co-Turing reconhecı́vel: NÃO.
Download

Solução Prova 1 - Universidade Federal de Uberlândia