A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Informática Teórica Engenharia da Computação

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação"— Transcrição da apresentação:

1 Informática Teórica Engenharia da Computação

2 Linguagem Turing decidível (linguagem recursiva):
DECIDIBILIDADE Linguagem Turing decidível (linguagem recursiva): L é aceita por uma MT M M sempre pára M decide L qa Se w pertence a L w M qr Se w não pertence a L

3 Linguagem Turing reconhecível (linguagem recursivamente enumerável):
DECIDIBILIDADE Linguagem Turing reconhecível (linguagem recursivamente enumerável): L é aceita por uma MT M M nem sempre pára M não decide L qa Se w pertence a L w M qr Se w não pertence a L LOOP

4 DECIDIBILIDADE Mostrar que a linguagem é decidível é o mesmo que mostrar que o problema computacional é decidível.

5 A linguagem associada ao problema será:
PROBLEMAS DECIDÍVEIS Vamos representar vários problemas computacionais por meio de linguagens. Problema da aceitação de palavras por AFDs: descobrir se uma dada palavra é aceita por uma dado AFD. A linguagem associada ao problema será: AAFD = {<B,w> | B é um AFD e B aceita w}

6 Teorema 4.1: AAFD é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.1: AAFD é uma linguagem decidível. AAFD = {<B,w> | B é um AFD e B aceita w} M = Sobre a entrada <B,w> onde B é um AFD, e w é uma cadeia: Simule B sobre a entrada w. Se a simulação termina em um estado de aceitação, aceite. Se ela termina em um estado de não-aceitação, rejeite.

7 Teorema 4.2: AAFN é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.2: AAFN é uma linguagem decidível. AAFN = {<B,w> | B é um AFN e B aceita w} N = Sobre a entrada <B,w> onde B é um AFN, e w é uma cadeia: Converta o AFN B para um AFD equivalente C. Rode a MT M do Teorema 4.1 sobre a entrada <C,w>. Se M aceita, aceite; caso contrário, rejeite.

8 Teorema 4.3: AEXR é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.3: AEXR é uma linguagem decidível. AEXR = {<R,w> | R é uma expressão regular que gera a cadeia w} P = Sobre a entrada <R,w> onde R é uma expressão regular e w é uma cadeia: Converta a expressão regular R para um AFN equivalente A usando o procedimento estudado. Rode a MT N sobre a entrada <A,w>. Se N aceita, aceite; se N rejeita, rejeite.

9 Teorema 4.4: VAFD é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.4: VAFD é uma linguagem decidível. VAFD = {<A> | A é um AFD e L(A) =} T = Sobre a entrada <A> onde A é um AFD: Marque o estado inicial de A. Repita até que nenhum estado novo venha a ser marcado: Marque qualquer estado que tenha uma transição chegando nele a partir de qualquer estado que já está marcado. Se nenhum estado de aceitação estiver marcado, aceite; caso contrário, rejeite .

10 Teorema 4.5: EAFD é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.5: EAFD é uma linguagem decidível. EAFD = {<A,B> | A e B são AFDs e L(A) = L(B)} Seja L(C) = L(A)  L(B) L(C) =  se L(A) = L(B) Podemos obter C a partir de A e B com as construções utilizadas para provar que a classe de linguagens regulares é fechada sob complementação, união e interseção. Dessa forma, usamos o teorema 4.4 para testar se L(C) é vazia. Nesse caso, L(A) é igual a L(B).

11 Teorema 4.5: EAFD é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.5: EAFD é uma linguagem decidível. EAFD = {<A,B> | A e B são AFDs e L(A) = L(B)} F = Sobre a entrada <A,B>, onde A e B são AFDs: Construa o AFD C conforme descrito. Rode a MT T do Teorema 4.4 sobre a entrada <C>. Se T aceita, aceite. Se T rejeita, rejeite.

12 Teorema 4.7: AGLC é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.7: AGLC é uma linguagem decidível. AGLC = {<G,w> | G é uma GLC que gera a cadeia w} Se G está na forma normal de Chomsky, qualquer derivação de w tem 2n-1 passos, onde n é o comprimento de w.

13 Teorema 4.7: AGLC é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.7: AGLC é uma linguagem decidível. AGLC = {<G,w> | G é uma GLC que gera a cadeia w} S = Sobre a entrada <G,w>, onde G é uma GLC e w é uma cadeia: Converta G para uma GLC equivalente na forma normal de Chomsky. Liste todas as derivações com 2n-1 passos, onde n é o comprimento de w, exceto se n = 0, então nesse caso liste todas as derivações com 1 passo. Se alguma dessas derivaçõees gera w, aceite; se não, rejeite.

14 Teorema 4.8: VGLC é uma linguagem decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.8: VGLC é uma linguagem decidível. VGLC = {<G> | G é uma GLC e L(G) = } R = Sobre a entrada <G>, onde G é uma GLC: Marque todos os símbolos terminais em G. Repita até que nenhuma variável venha a ser marcada: Marque qualquer variável A onde G tem uma regra A U1U2 Uk e cada símbolo U1,... ,Uk já tenha sido marcado. Se a variável inicial não está marcada, aceite; caso contrário, rejeite..

15 Teorema 4.9: Toda linguagem livre do contexto é decidível.
PROBLEMAS DECIDÍVEIS Teorema 4.9: Toda linguagem livre do contexto é decidível. Quero decidir se uma cadeia pertence a uma certa LLC. Seja G uma GLC para A e projetemos uma MT MG que decide A. Construímos uma cópia de G dentro de MG. Ela funciona da seguinte maneira. MG = Sobre a entrada w: Rode a MT S sobre a entrada <G,w> Se essa máquina aceita, aceite; se ela rejeita, rejeite.

16 PROBLEMAS INDECIDÍVEIS
Problemas computacionalmente insolúveis. Problema de se determinar se uma MT aceita uma dada cadeia de entrada. A linguagem associada ao problema será: AMT = {<M,w> | M é uma MT e M aceita w}

17 PROBLEMAS INDECIDÍVEIS
AMT = {<M,w> | M é uma MT e M aceita w} Teorema: AMT é indecidível Vamos primeiro observar que AMT é Turing-reconhecível. Portanto, esse teorema afirma que reconhecedores são mais poderosos que decisores.

18 PROBLEMAS INDECIDÍVEIS
AMT = {<M,w> | M é uma MT e M aceita w} AMT é Turing-reconhecível. U = “Sobre a entrada <M,w>, onde M é uma MT e w é uma cadeia: Simule M sobre a entrada w. Se M em algum momento entra no seu estado de aceitação, aceite; se M em algum momento entra em seu estado de rejeição, rejeite.” Note que essa máquina entra em loop sobre a entrada <M,w> se M entra em loop sobre w. U é uma MT universal pois é capaz de simular qualquer outra MT a partir da descrição da mesma.

19 PROBLEMAS INDECIDÍVEIS
AMT = {<M,w> | M é uma MT e M aceita w} Teorema: AMT é indecidível A prova da indecidibilidade usa uma técnica chamada diagonalização, descoberta pelo matemático George Cantor em 1873.

20 MÉTODO DA DIAGONALIZAÇÃO
Tamanho dos conjuntos infinitos. Funções: injetora, sobrejetora, bijetora. Conjunto enumerável ou contável: finito ou tem o mesmo tamanho dos naturais O conjunto dos racionais é contável?

21 MÉTODO DA DIAGONALIZAÇÃO
TEOREMA: R é incontável

22 MÉTODO DA DIAGONALIZAÇÃO
COROLÁRIO: Algumas linguagens não são Turing-reconhecíveis. Como existe uma quantidade incontável de linguagens e uma quantidade contável de MTs. Existem mais linguagens que MTs. Como cada MT pode reconhecer uma única linguagem, algumas linguagens não são reconhecidas por nenhuma MT.

23 MÉTODO DA DIAGONALIZAÇÃO
COROLÁRIO: Algumas linguagens não são Turing-reconhecíveis. Vamos mostrar que o conjunto de todas as MTs é contável e depois mostrar que o conjunto de todas as linguagens é incontável.

24 COROLÁRIO: Algumas linguagens não são Turing-reconhecíveis.
O conjunto de todas as MTs é contável. Primeiro vamos mostrar que o conjunto * sobre qualquer alfabeto  é contável. Podemos formar uma lista de * listando todas as cadeias de comprimento 0, depois de comprimento 1, 2, etc. O conjunto de todas as MTs é contável porque cada MT tem uma codificação em uma cadeia <M>. Se omitirmos as cadeias que não são codificações de MT então obtemos uma lista de todas as MTs.

25 COROLÁRIO: Algumas linguagens não são Turing-reconhecíveis.
O conjunto ℒ de todas as linguagens é incontável. Primeiro vamos observar que o conjunto ℬ de todas as sequencias binárias infinitas é incontável. Depois mostramos uma bijeção f : ℒ ℬ. Cada linguagem A  ℒ tem uma sequência única em ℬ, que chamamos sequência característica de A, XA. Seja *={s1,s2,s3,...} O i-ésimo bit de XA é 1 se si  A e 0 caso contário.

26 COROLÁRIO: Algumas linguagens não são Turing-reconhecíveis.
O conjunto ℒ de todas as linguagens é incontável. f : ℒ ℬ. Cada linguagem A  ℒ tem uma sequência única em ℬ, que chamamos sequência característica de A, XA. Seja *={s1,s2,s3,...}. O i-ésimo bit de XA é 1 se si  A e 0 caso contrário. Exemplo: Seja A a linguagem de todas as cadeias binárias que começam com 0: * = {, 0, 1, 00, 01, 10, 11, 000, 001,...} A = { 0, , 01, , 001,...} XA=

27 PROBLEMAS INDECIDÍVEIS
AMT = {<M,w> | M é uma MT e M aceita w} Teorema: AMT é indecidível Supomos que AMT é decidível. Seja H um decisor para AMT : H(<M,w>) = aceite, se M aceita w rejeite, se M não aceita w. Vamos mostrar que H não pode existir.

28 Teorema: AMT é indecidível
H(<M,w>) = aceite, se M aceita w rejeite, se M não aceita w. Seja D uma nova MT com H como sub-rotina: D = “Sobre a entrada <M>, onde M é uma MT: Rode H sobre a entrada < M, <M> >. Dê como saída o oposto do que H dá como saída; ou seja, se H aceita, rejeite e se H rejeita, aceite.

29 Teorema: AMT é indecidível
D = “Sobre a entrada <M>, onde M é uma MT: Rode H sobre a entrada < M, <M> >. Dê como saída o oposto do que H dá como saída; ou seja, se H aceita, rejeite e se H rejeita, aceite. D(<M>) = aceita se M não aceita <M> rejeita se M aceita <M> D(<D>)? Aceita se D não aceita <D> Rejeita se D aceita <D>

30 Teorema: AMT é indecidível
H aceita <M,w> exatamente quando M aceita w. D rejeita <M> exatamente quando M aceita <M>. D rejeita <D> exatamente quando D aceita <D>. Onde está a diagonalização nessa prova?

31 Teorema: AMT é indecidível
Onde está a diagonalização nessa prova? Ao analisar as tabelas de comportamento para as MTs H e D.

32 Teorema: AMT é indecidível
aceite se a MT aceita a entrada, branco se ela rejeita ou entra em loop. <M1> <M2> <M3> <M4> .... M1 aceite M2 M3 M4.... H <M1> <M2> <M3> <M4> .... M1 aceite rejeite M2 M3 M4....

33 Teorema: AMT é indecidível
Adicionando D à última tabela H <M1> <M2> <M3> <M4> ... <D> M1 aceite rejeite M2 M3 M4.... D ???

34 UMA LINGUAGEM TURING-IRRECONHECÍVEL
Existem linguagens que não são sequer Turing-reconhecível. Vamos provar que, se uma linguagem e seu complemento forem ambas Turing-reconhecíveis, a linguagem é decidível. Logo, para qualquer linguagem indecidível, ou ela ou seu complemento não é Turing-reconhecível. Dizemos que uma linguagem é co-Turing-reconhecível se ela é o complemento de uma linguagem Turing-reconhecível.

35 UMA LINGUAGEM TURING-IRRECONHECÍVEL
TEOREMA: Uma linguagem é decidível sse ela é Turing-reconhecível e co-Turing-reconhecível. Em outras palavras, uma linguagem é decid´vel exatamente quando ela e seu complemento são ambas Turing-reconhecíveis.

36 TEOREMA: Uma linguagem é decidível sse ela é Turing-reconhecível e co-Turing-reconhecível.
PROVA: Parte 1: se A e A’ são decidíveis então são Turing- reconhecíveis. Parte 2; Se A e A’ são Turing reconhecíveis então são decidíveis.

37 TEOREMA: Uma linguagem é decidível sse ela é Turing-reconhecível e co-Turing-reconhecível.
PROVA: Parte 1: se A e A’ são decidíveis então são Turing- reconhecíveis. Qualquer linguagem decidível é Turing-reconhecível, e o complemento de uma linguagem decidível também é decidível.

38 TEOREMA: Uma linguagem é decidível sse ela é Turing-reconhecível e co-Turing-reconhecível.
Parte 2; Se A e A’ são Turing reconhecíveis então são decidíveis. Se tanto A quanto A’ são Turing-reconhecíveis, fazemos M1 ser o reconhecedor para A e M2 o reconhecedor para A’. A máquina de Turing M abaixo é um decisor para A. M = “Sobre a entrada w: Rode ambas M1 e M2 sobre a entrada w em paralelo. Se M1 aceita, aceite; se M2 aceita, rejeite.

39 UMA LINGUAGEM TURING-IRRECONHECÍVEL
Corolário: O complemento de AMT não é Turing-reconhecível. Sabemos que AMT é Turing-reconhecível.E também provamos que AMT é indecidível. Se o seu complemento fosse Turing-reconhecível, ela seria decidível, uma contradição. Portanto, o complemento de AMT não é Turing-reconhecível.


Carregar ppt "Informática Teórica Engenharia da Computação"

Apresentações semelhantes


Anúncios Google