Computabilidade

Propaganda
14
0.1
14.1
Computabilidade
Linguagens decidíveis ou Turing reconhecíveis
Problemas decidíveis para Linguagens Regulares
Dr
aft
-v
Teorema 14.1 Seja
A linguagem ADFA é decidível.
ADFA = {�A� �� : A é um DFA e aceita �} �
Dem. Basta mostrar como construir um decisor M para ADFA .
M
Input: �A� �� com A DFA e � palavra
i) Simula A com input �.
ii) Se A aceitar �, para e aceita. Se A não aceitar �, para e rejeita.
De facto a escrita de M é bastante simples. Tem que verificar se as descrições que recebe de A e
� são bem formadas, caso contrário rejeita. Para simular A tem somente que manter o estado em
que a simulação de A se encontra e à medida que lê os símbolos de � proceder como descreve a
função de transição de A. Quando a leitura de � termina, se o estado resultante constar da lista
de estados finais, aceita, e rejeita no caso contrário.
⇤
Teorema 14.2 Seja
A linguagem ANFA é decidível.
ANFA = {�A� �� : A é um NFA e aceita �} �
Dem. O decisor M de ANFA pode ser descrito como
M
Input: �A� �� com A NFA e � palavra
i) Transforma A num DFA A� .
ii) Simula A� com input �.
iii) Se A� aceitar �, para e aceita. Se A� não aceitar �, para e rejeita.
117
⇤
Teorema 14.3 Seja
AREX = {�α� �� : α é uma expressão regular e � ∈ �(α)} �
A linguagem AREX é decidível.
Teorema 14.4 Seja
EDFA = {�A� : A é DFA e �(A) = ∅} �
A linguagem EDFA é decidível.
Input: �A� com A DFA
i) Marca o estado inicial de A.
ii) Repete até ao processo não marcar mais estados:
iii) Marca qualquer estado que ainda não tenha sido marcado e que
tenha uma transição vinda de um estado já marcado.
iv) Se nenhum estado final tiver sido marcado, aceita. Caso contrário, rejeita.
Dr
aft
-v
M
0.1
Dem. Podemos construir a TM M que decide EDFA que percorre, com uma descida em largura, todos os
estados de A, da seguinte forma
⇤
Teorema 14.5 Seja
EQDFA = {�A� B� : A e BDFA e �(A) = �(B)} �
A linguagem EQDFA é decidível.
Dem. Como a classe das linguagens regulares é fechada para o complemento e intersecção, também é
fechada para a diferença simétrica. Ora, duas linguagens são iguais se e só se a sua diferença
simétrica é vazia. Assim, podemos substituir a condição �(A) = �(B) por
�
� �
�
�(A) ∩ �(B) ∪ �(B) ∩ �(A) = ∅�
Podemos, então definir a TM que decide EQDFA da seguinte forma.
M
Input: �A� B� com A e B DFA
�
� �
�
i) Calcula o DFA C que representa �(A) ∩ �(B) ∪ �(B) ∩ �(A)
ii) Devolve a resposta do decisor de EDFA aplicado a �C �.
⇤
Problemas decidíveis para CFL
Teorema 14.6 Seja
AC F G = {�G� �� : G é CFG e � ∈ �(G)} �
118
A linguagem AC F G é decidível.
Dem. Um decisor para AC F G pode ser definido como a seguinte TM S.
S
Input: �G� �� com G CFG e � palavra
i) Converte G numa gramática equivalente G � mas na forma normal de
Chowmsky.
ii) Listam-se todas as derivações de G � com 2� − 1 passos, sendo � o
tamanho de �.
iii) Se alguma destas derivações gera �, aceita. Caso contrário, rejeita.
Teorema 14.7 Seja
A linguagem EC F G é decidível.
0.1
⇤
EC F G = {�G� : G é CFG e �(G) = ∅} �
Dem. Podemos construir uma TM R que decide EC F G da forma seguinte.
Input: �G� com G CFG
Dr
aft
-v
R
i) Marca todos os símbolos terminais.
ii) Repete até ao processo não marcar mais símbolos:.
iii) Marca qualquer símbolo não terminal A com regra A → U1 U2 · · · U�
se todos os símbolos U1 � U2 � � � � � U� já estiverem marcados.
iv) Se o símbolo inicial estiver marcado, rejeita. Caso contrário, aceita.
⇤
Um problema Turing reconhecível para TM
Teorema 14.8 Seja
AT M = {< M� � >: M é TM e � ∈ �(M)} �
A linguagem AT M é Turing reconhecível.
Dem. Basta ver que a seguinte TM U reconhece AT M .
U
Input: �M� �� com M TM e � palavra
i) Executa M com input �
ii) Se M aceitar, aceita. Caso contrário, rejeita.
⇤
A TM U da demonstração do teorema anterior, não é particularmente complicada de entender. No
entanto é uma TM muito interessante. A máquina U recebe uma descrição de uma outra máquina de
119
Turing, M, assim como de um seu input, �, e simula o funcionamento da máquina M com o input �.
À máquina U chamamos normalmente Máquina de Turing Universal e esta desempenhará um papel de
importância em alguns resultados futuros.
Problema 74 — Considera o DFA M representado pelo diagrama seguinte:
1
0
�M�0100� ∈ ADFA ?
�M� 011� ∈ ADFA ?
�M� ∈ ADFA ?
�M� 0100� ∈ AREX ?
�M� ∈ EDFA ?
�M� M� ∈ EQDFA ?
1
0� 1
0.1
1.
2.
3.
4.
5.
6.
0
Problema 75 — Seja ALLDFA = {�A� : A é DFA e �(A) = Σ� } � Mostrar que ALLDFA é decidível.
Problema 76 — Seja AεC F G = {�G� : G é CFG e ε ∈ �(G)} � Mostrar que AεC F G é decidível.
Dr
aft
-v
Problema 77 — Seja ET M = {�M� : M é uma TM e �(M) = ∅} � Mostar que ET M é Turing reconhecível.
�
�
Problema 78 — Seja S = �M� : M um DFA tal que � ∈ �(M) ⇒ � R ∈ �(M) � Mostrar que S é
decidível.
Problema 79 — Seja PREF IX −F REEREX = {�R� : expressão regular e �(R) livre de prefixos} � Mostrar que PREF IX − F REEREX é decidível.
Problema 80 — Seja C uma linguagem. Mostrar que C é Turing reconhecível se e só se existe uma
linguagem decidível D tal que C = {� : ∃�� ��� �� ∈ D} �
14.2
14.2.1
Indecidibildade
O argumento “diagonal” de Cantor
Quando tratamos de conjuntos finitos, a comparação de cardinalidades não é um problema complicado,
mas o caso muda de figura quando tratamos de conjuntos infinitos. Para termos um significado claro de
cardinalidade definimo-la como a seguir. Dois conjuntos A e B dizem-se equipotentes (ou equicardinais)
se existir uma bijecção � : A → B.
Claro que se tivermos uma função injectiva � : A → B podemos garantir que |A| ≤ |B|.
A um conjunto que seja equipotente com o conjunto dos números naturais N dizemos que é numerável.
Estamos, pois, em condições de enunciar os seguintes resultados sobre cardinalidade de alguns
conjuntos infinitos.
Teorema 14.9 O conjunto Z é numerável.
Dem. Para tal provar basta considerar a seguinte função
� :Z
→ N
0 �→ 0�
2� − 1 se � > 0�
� �→
−2�
se � < 0�
A função � é trivialmente uma bijecção, pelo que |N| = |Z|.
120
⇤
Teorema 14.10 O conjunto Q é numerável.
Dem. Como N ⊆ Q temos que |N| ≤ |Q|. Mostremos que há uma função injectiva � : Q+ → N.
Podemos inscrever todos os elementos de Q+ numa tabela dispostos como se ilustra a seguir.
Podemos percorrer todos os racionais positivos como ilustra a linha a tracejado. Isso constitui
uma sucessão de valores racionais (�� )�∈N que cobre todos os naturais positivos. Tomemos então
� (�) = ��� {� : �� = �}. A função � é trivialmente injectiva, pelo que |Q+ | = |N|.
1
1
1
2
1
3
1
4
1
5
1
6
1
7
···
3
1
3
2
3
3
3
4
3
5
3
6
3
7
···
2
2
4
1
2
3
4
2
5
1
4
3
5
2
6
1
2
5
4
4
5
3
6
2
2
6
2
7
···
5
4
6
3
7
2
4
5
5
5
6
4
7
3
4
6
5
6
6
5
7
4
4
7
5
7
6
6
7
5
6
7
7
6
7
7
···
···
···
···
Dr
aft
-v
7
1
2
4
0.1
2
1
..
.
..
.
..
.
..
.
..
.
..
.
Agora basta mostrar que |Q| ≤ |N| usando a bijecção
�:Q
..
.
→ N
0 �→ 0�
2(� (�) + 1)
se � 0;
� �→
2(� (�) + 1) + 1 se � < 0�
⇤
Teorema 14.11 O conjunto R não é numerável.
Dem. Mostremos que o intervalo [0� 1[⊆ R não é numerável, o que é suficiente para garantir que R
também não o é. Para isso suponhamos, por absurdo, que [0� 1[ era numerável. Então existiria
uma função bijectiva � : [0� 1[→ N. Como a função é bijectiva faz sentido falar em � −1 e podemos
imaginar a tabela das imagens recíprocas dos sucessivos elementos de N. Para simplificar vamos
supor os valores de � −1 expressos em binário.
0
1
2
3
..
.
� −1 (�)
.
.
.
.
..
.
0
1
1
0
..
.
1
0
1
1
..
.
1
1
0
1
..
.
0
1
1
0
..
.
0
0
1
1
..
.
1
1
0
1
..
.
1
0
1
0
..
.
···
···
···
···
Podemos mostrar que esta função não pode ser bijectiva encontrando um elemento � de [0� 1[ que
não seja imagem recíproca por � de nenhum natural. Para tal definamos � como o numero cujos
bits são da seguinte forma: o �-ésimo bit é o complementar do �-ésimo bit da imagem recíproca
121
por � de �. Se � ocorresse na tabela, digamos na posição �, qual seria o valor do seu �-ésimo bit?
Deveria ser o complementar do que se encontra na tabela, ou seja, complementar de si próprio, o
que é, evidentemente, absurdo. Portanto � não pode ser uma bijecção e |R| ≥ |[0� 1[| > |N|. Logo
R não é numerável.
⇤
Estamos agora em condições de mostrar que nem as máquinas de Turing representam todas as
linguagens existentes.
Teorema 14.12 Há linguagens não Turing reconhecíveis.
0.1
Dem. Vamos primeiro mostrar que o conjunto de todas as TM é numerável. Para isso notemos que, seja
qual for o alfabeto Σ, Σ� é numerável. O facto é evidente, basta observar a seguinte função injectiva
� : Σ� → N. Suponhamos que |Σ| = � então façamos corresponder a cada caracter σ de Σ um
diferente valor �(σ ) em {1� 2� · · · � � + 1}. Façamos � (ε) = 0 e � (�), com � ∈ Σ+ , igual ao valor de
� transformando cada símbolo pela função � e interpretando o resultado como um número expresso
em base � + 2. A função � é trivialmente injectiva, pelo que |Σ� | ≤ |N|. Para a desigualdade
contrária basta tomar σ ∈ Σ e a função � : N → Σ� , com �(�) = σ � . Portanto Σ� é numerável.
Uma TM pode ser representada por uma palavra que descreva completamente os seus elementos
constituintes. Como o conjunto de estados de uma TM é finito, e os alfabetos nela intervenientes
também o são (por definição de alfabeto), a descrição da sua função de transição assim como dos
demais elementos constituem uma palavra (de tamanho finito) para algum alfabeto Σ� . Portanto
as palavras de tal alfabeto representam todas as possíveis representações de TM, e portanto o
conjunto de todas as TM é numerável.
Dr
aft
-v
Seja Σ um alfabeto, vimos que Σ� é numerável. Uma linguagem com o alfabeto Σ é um qualquer
conjunto de palavras de Σ� . Suponhamos, por absurdo, que o conjunto das linguagens de alfabeto
Σ é numerável. Então haveria uma bijecção � entre N e o conjunto das linguagens com tal alfabeto.
Enumeremos todas as palavras de tal alfabeto (o conjunto é numerável) como �0 � �1 � � � �. Podemos
então imaginar uma tabela que lista todas as linguagens, com a ordem dada pela bijecção � , com
a informação de que palavras pertencem a cada uma. Construamos, usando o argumento diagonal
de Cantor, uma linguagem que não pode ocorrer na tabela, e que portanto mostra que � não é
bijecção. Seja L = {�� : � ∈ N�� ∈
/ � (�)}. Se L estivesse na tabela, ou seja se L fosse imagem de
algum natural �, o que se poderia dizer acerca da palavra �� ?
� (0)
� (1)
� (2)
..
.
� (�)
..
.
�1
sim
sim
sim
..
.
não
..
.
�2
sim
não
sim
..
.
sim
..
.
�3
···
sim
..
.
···
..
.
não
sim
não
..
.
···
···
···
..
.
��
···
?
..
.
···
não
sim
sim
..
.
···
···
···
O absurdo resulta da suposição da existência da bijecção � , pelo que o conjunto das linguagens de
alfabeto Σ não é numerável. Portanto existe pelo menos uma palavra que não é reconhecida por
qualquer máquina de Turing.
⇤
14.2.2
Uma primeira linguagem indecidível
Teorema 14.13 A linguagem AT M é indecidível.
Dem. Suponhamos, por absurdo, que AT M é decidível. Seja H a TM que decide AT M .
H
Input: �M� �� com M TM e � palavra
i) Se M aceita �, aceita
ii) Caso contrário, rejeita.
122
Construamos uma outra TM D que usa H, mas de forma um pouco diferente. Uma descrição �M�
de uma TM M pode ser visto como uma palavra como outra qualquer. Portanto faz sentido dar
como input a uma máquina de Turing a descrição de uma outra máquina.
Resumindo,
Input: �M�, com M TM
i) Se H com input �M� �M�� aceita, então rejeita
ii) Se H com input �M� �M�� rejeita, então aceita.
�
aceita
D(�M�)
rejeita
se M não aceita �M� �
se M aceita �M� �
0.1
D
Mas o que acontece se executarmos D com input �D�?
�
aceita se D(�D�) não aceita,
D(�D�)
rejeita se D(�D�) aceita.
A TM D é, portanto, um objecto paradoxal, que não pode existir. O absurdo resultou de se ter
suposto a existência de H, ou seja que AT M era decidível.
Dr
aft
-v
A demonstração da inexistência de D pode mais uma vez ser visto como uma instância do argumento
diagonal. Podemos imaginar uma tabela com o comportamento de todas as TM quando lhes é dado
como input a descrição de uma outra TM. A TM D é definida como, quando com input �M�, tendo o
comportamento complementar à TM M(�M�). O absurdo resulta quando queremos averiguar qual
o comportamento de D quando tem o input �D�, pois nesse caso o comportamento de D(�D�) está
definido como o complementar de D(�D�).
⇤
123
Download