• Nenhum resultado encontrado

Então, ∅, Σ, L1∩ L2, L1∪ L2 e L1\ L2 são linguagens decidíveis.

Dem.: Seja Σ um alfabeto e L1 e L2 linguagens sobre Σ. Sejam D1 e D2

máquinas de Turing que decidem L1 e L2 respetivamente. Então:

(1) ∅ é decidível. Considere-se a máquina de Turing que ao receber uma palavra termina imediatamente rejeitando. Dado que essa máquina tem a linguagem vazia e termina sempre então ∅ é decidível.

(2) Σ∗ é decidível. Considere-se a máquina de Turing que ao receber uma palavra termina imediatamente aceitando. Dado que a linguagem da máquina é Σ∗ e a máquina termina sempre então Σ∗ é decidível.

(3) L1∪ L2 é decidível. Considere-se a máquina de Turing D com duas pistas que ao receber uma palavra de entrada w copia a palavra para a pista 2 e de seguida simula D1na pista 1 até D1terminar. Se D1termina aceitando então D

termina aceitando. Se D1 termina rejeitando então de seguida D simula D2 na pista 2 até D2 terminar. Se D2 termina aceitando então D termina aceitando, se D2 termina rejeitando então D termina rejeitando. É imediato ver que D

3.2. PROPRIEDADES DE FECHO E REDUÇÃO COMPUTÁVEL 31 decide L1∪ L2;

(4) L1∩ L2 é decidível. Considere-se a máquina de Turing D com duas pistas

que ao receber uma palavra de entrada w copia a palavra para a pista 2 e de seguida simula D1 na pista 1 até D1 terminar. Se D1 termina rejeitando então

D termina rejeitando. Se D1 termina aceitando então de seguida D simula D2

na pista 2 até D2terminar. Se D2termina aceitando então D termina aceitando

se D2 termina rejeitando então D termina rejeitando. É imediato ver que D decide L1∩ L2;

(5) L1 é decidível. Considere-se a máquina de Turing D que ao receber uma

palavra de entrada w simula a execução de D1 sobre w terminando quando D1

termina e aceitando se D1 rejeita e rejeitando se D1 aceita. Então é imediato ver que D decide L1.

Proposição 3.4. Seja Σ um alfabeto, L1, L2 linguagens reconhecíveis, sobre

Σ. Então, ∅, Σ, L1 ∩ L2 e L1∪ L2 são linguagens reconhecíveis. Se L2 for

decidível então L1\ L2 é reconhecível.

Dem.: Seja Σ um alfabeto e L1 e L2 linguagens sobre Σ. Sejam D1 e D2 máquinas de Turing que reconhecem L1 e L2 respetivamente. Então:

(1) ∅ é reconhecível. A linguagem ∅ é reconhecível pois é decidível e todas as linguagens decidíveis são reconhecíveis;

(2) Σ∗ é reconhecível. A linguagem Σ∗ é reconhecível pois é decidível e todas as linguagens decidíveis são reconhecíveis;

(3) L1 ∪ L2 é reconhecível. Considere-se a máquina de Turing D com duas

pistas que ao receber uma palavra de entrada w copia a palavra para a pista 2 e de seguida simula alternadamente um passo da execução de D1 na pista

1 e um passo da execução de D2 na pista 2. Se uma das simulações terminar

então D termina também se essa simulação terminar aceitando. Caso contrário

D prossegue a simulação da execução da outra máquina. Se essa outra simu-

lação terminar então D termina também e aceita se essa simulação terminar aceitando, e rejeita caso contrário. É imediato ver que D reconhece L1∪ L2; (4) L1 ∩ L2 é reconhecível. Considere-se a máquina de Turing D com duas

pistas que ao receber uma palavra de entrada w copia a palavra para a pista 2 e de seguida simula alternadamente um passo da execução de D1 na pista

1 e um passo da execução de D2 na pista 2. Se uma das simulações terminar

rejeitando ou abortando então D termina rejeitando. Se essa simulações termi- nar aceitando então D prossegue a simulação da execução da outra máquina, terminando portanto só quando essa outra simulação terminar. Se essa outra simulação terminar aceitando entã termina aceitando. Caso contrário D rejeita. É imediato ver que D reconhece L1∩ L2;

(5) L1\ L2 é reconhecível se L2 é decidível. Suponha-se que L2 é decidível. Considere-se a máquina de Turing D com duas pistas que ao receber uma palavra de entrada w copia a palavra para a pista 2 e de seguida simula a execução de D2 na pista 2 até essa execução terminar, e de seguida simula a execução de D1 na pista 1. Se a execução de D1 terminar então D aceita se

a execução de D1 terminar aceitando e a execução de D2 terminar rejeitando,

caso contrário rejeita. É imediato ver que D reconhece L1\ L2.

Na verdade, a diferença essencial entre decidibilidade e semi-decidibilidade está precisamente na complementação. Como veremos, em geral, o complemen- tar de uma linguagem reconhecível pode não ser reconhecível.

Proposição 3.5. Seja Σ um alfabeto, L uma linguagem sobre Σ. Então, L é

decidível se e só se L e L são ambas linguagens reconhecíveis. Dem.: Seja Σ um alfabeto e L ⊆ Σ∗.

Suponha-se que L é decidível. Então é imediato ver que L e L são reconhecíveis. Suponha-se agora que L e L são reconhecíveis e sejam D e M as máquinas de Turing que reconhecem L e L respectivamente. Considere-se a máquina de Turing T com duas pistas que ao receber uma palavra w copia essa palavra para a pista 2 e de seguida simula alternadamente um passo da execução de D na primeira fita e um passo da execução de M na segunda fita, tal que T termina quando uma das simulações termina aceitando, e T aceita se essa simulação for a de D e rejeita se for a de M .

É imediato ver que T decide L pois dada uma palavra w ou w pertence a L ou

w pertence a L.

A ideia usada acima, de construir novas máquinas recorrendo a máquinas obti- das previamente, leva-nos à seguinte noção de redução entre linguagens, que será particularmente útil adiante.

Definição 3.6. Sejam Σ1, Σ2 alfabetos, L1 e L2 linguagens sobre Σ1 e Σ2,

respectivamente. Dizemos que há uma redução computável de L1 a L2, ou simplesmente que L1 se reduz a L2, o que denotamos por L1 ≤ L2 se existe

uma função total computável f : Σ1 → Σ∗2 tal que se tem, para cada w ∈ Σ1, w ∈ L1 se e só se f (w) ∈ L2.

Exemplos.

Proposição 3.7. Sejam Σ1, Σ2 alfabetos, L1 e L2 linguagens sobre Σ1 e Σ2,

respectivamente. Se L1 ≤ L2 e L2 é decidível (resp. reconhecível) então L1 é

decidível (resp. reconhecível).

Dem.: Assuma-se que L1 ≤ L2 e que M2 é uma máquina de Turing que decide (reconhece) L2. Como existe uma função total computável f : Σ∗1 → Σ∗2

tal que se tem, para cada w ∈ Σ1, w ∈ L1 se e só se f (w) ∈ L2, seja F uma máquina de Turing que a calcule.

Considere-se a máquina M1 que, sobre um input w, simula F sobre w para

obter f (w), e de seguida simula M2sobre f (w). É óbvio que M1aceita/rejeita w se e só se M2aceita/rejeita f (w), concluindo-se que M2decide (resp. reconhece)

Documentos relacionados