O documento discute linguagens não recursivamente enumeráveis e a hierarquia de Chomsky, apresentando os seguintes pontos:
1) Linguagens não recursivamente enumeráveis não possuem formalização gramatical e não podem ser reconhecidas por máquinas de Turing.
2) A hierarquia de Chomsky classifica as linguagens de acordo com sua complexidade gramatical em quatro níveis: recursivamente enumeráveis, sensíveis ao contexto, livres de contexto e regulares.
3) Exemplos mostram como linguagens se encaixam nos diferentes níveis da hierarqu
3. Linguagens não recursivamente enumeráveis
● Não possuem formalização gramatical
● Não existem máquinas de Turing que as
reconheçam
4. Linguagens não recursivamente enumeráveis
● Não possuem formalização gramatical
● Não existem máquinas de Turing que as
reconheçam
Também conhecidas por:
● Linguagens não gramaticais
● Linguagens não Turing-reconhecíveis
● Linguagens não recursivamente enumeráveis
7. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
“O conjunto C1
= { M | M é uma Máquina de Turing e L(M) ⊆ Σ*
} é enumerável. C1
corresponde ao conjunto de todas as
Máquinas de Turing definíveis sobre um certo alfabeto Σ.”
8. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
“O conjunto C1
= { M | M é uma Máquina de Turing e L(M) ⊆ Σ*
} é enumerável. C1
corresponde ao conjunto de todas as
Máquinas de Turing definíveis sobre um certo alfabeto Σ.”
● Toda máquina de Turing pode ser codificada em uma cadeia de caracteres (de
tamanho finito)
9. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
“O conjunto C1
= { M | M é uma Máquina de Turing e L(M) ⊆ Σ*
} é enumerável. C1
corresponde ao conjunto de todas as
Máquinas de Turing definíveis sobre um certo alfabeto Σ.”
● Toda máquina de Turing pode ser codificada em uma cadeia de caracteres (de
tamanho finito)
● Toda cadeia pode ser, ou não, uma representação válida de uma máquina de
Turing
10. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
“O conjunto C1
= { M | M é uma Máquina de Turing e L(M) ⊆ Σ*
} é enumerável. C1
corresponde ao conjunto de todas as
Máquinas de Turing definíveis sobre um certo alfabeto Σ.”
● Toda máquina de Turing pode ser codificada em uma cadeia de caracteres (de
tamanho finito)
● Toda cadeia pode ser, ou não, uma representação válida de uma máquina de
Turing
● Gerar todas as cadeias possíveis, uma após a outra
11. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
“O conjunto C1
= { M | M é uma Máquina de Turing e L(M) ⊆ Σ*
} é enumerável. C1
corresponde ao conjunto de todas as
Máquinas de Turing definíveis sobre um certo alfabeto Σ.”
● Toda máquina de Turing pode ser codificada em uma cadeia de caracteres (de
tamanho finito)
● Toda cadeia pode ser, ou não, uma representação válida de uma máquina de
Turing
● Gerar todas as cadeias possíveis, uma após a outra
● Checar se cada cadeia é, ou não, uma representação válida de uma máquina
de Turing
12. Algumas linguagens não são Turing-reconhecíveis
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
“O conjunto das cadeias de tamanho infinito sobre Σ = {0,1}
é não enumerável (e infinito).”
● Método da diagonalização
13. Algumas linguagens não são Turing-reconhecíveis
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
“O conjunto das cadeias de tamanho infinito sobre Σ = {0,1}
é não enumerável (e infinito).”
● Método da diagonalização (George Cantor)
● Prova por contradição (semelhante à prova para ℝ)
14. Algumas linguagens não são Turing-reconhecíveis
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
Suponha que esse conjunto seja enumerável.
● Correspondência com ℕ
1 - 0 0 0 0 0 0 1 0 0 …
2 - 1 1 1 0 0 0 1 1 0 …
3 - 1 0 1 0 1 0 1 0 1 …
4 - 1 1 1 1 1 1 1 1 1 …
5 - 0 0 1 1 0 1 0 0 1 …
6 - 1 0 0 0 0 1 0 1 0 …
7 - 0 0 1 1 1 0 0 0 1 …
…
● Podemos listar todas as cadeias
15. Algumas linguagens não são Turing-reconhecíveis
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
Suponha que esse conjunto seja enumerável.
● Correspondência com ℕ
1 - 0 0 0 0 0 0 1 0 0 …
2 - 1 1 1 0 0 0 1 1 0 …
3 - 1 0 1 0 1 0 1 0 1 …
4 - 1 1 1 1 1 1 1 1 1 …
5 - 0 0 1 1 0 1 0 0 1 …
6 - 1 0 0 0 0 1 0 1 0 …
7 - 0 0 1 1 1 0 0 0 1 …
…
● Podemos listar todas as cadeias
● Se pudermos encontrar uma cadeia
nessa enumeração que não esteja
emparelhada com nenhum elemento
de ℕ, então esse conjunto é não
enumerável
16. Algumas linguagens não são Turing-reconhecíveis
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
Suponha que esse conjunto seja enumerável.
● Correspondência com ℕ
1 - 0 0 0 0 0 0 1 0 0 …
2 - 1 1 1 0 0 0 1 1 0 …
3 - 1 0 1 0 1 0 1 0 1 …
4 - 1 1 1 1 1 1 1 1 1 …
5 - 0 0 1 1 0 1 0 0 1 …
6 - 1 0 0 0 0 1 0 1 0 …
7 - 0 0 1 1 1 0 0 0 1 …
…
1 0 0 0 1 0 1 ...
● Podemos listar todas as cadeias
● Se pudermos encontrar uma cadeia
nessa enumeração que não esteja
emparelhada com nenhum elemento
de ℕ, então esse conjunto é não
enumerável
17. Algumas linguagens não são Turing-reconhecíveis
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
Suponha que esse conjunto seja enumerável.
● Correspondência com ℕ
1 - 0 0 0 0 0 0 1 0 0 …
2 - 1 1 1 0 0 0 1 1 0 …
3 - 1 0 1 0 1 0 1 0 1 …
4 - 1 1 1 1 1 1 1 1 1 …
5 - 0 0 1 1 0 1 0 0 1 …
6 - 1 0 0 0 0 1 0 1 0 …
7 - 0 0 1 1 1 0 0 0 1 …
…
1 0 0 0 1 0 1 ...
● Podemos listar todas as cadeias
● Se pudermos encontrar uma cadeia
nessa enumeração que não esteja
emparelhada com nenhum elemento
de ℕ, então esse conjunto é não
enumerável
● Chega-se a uma contradição
18. Algumas linguagens não são Turing-reconhecíveis
Teorema 3 (Linguagens são não enumeráveis)
“O conjunto das linguagens sobre um alfabeto é não
enumerável (e infinito).”
● Seja Σ = {a,b}
19. Algumas linguagens não são Turing-reconhecíveis
Teorema 3 (Linguagens são não enumeráveis)
“O conjunto das linguagens sobre um alfabeto é não
enumerável (e infinito).”
● Seja Σ = {a,b}
● O conjunto das cadeias de tamanho finito sobre Σ é enumerável
a b aa ab ba bb aaa aab …
20. Algumas linguagens não são Turing-reconhecíveis
Teorema 3 (Linguagens são não enumeráveis)
“O conjunto das linguagens sobre um alfabeto é não
enumerável (e infinito).”
● Seja Σ = {a,b}
● O conjunto das cadeias de tamanho finito sobre Σ é enumerável
a b aa ab ba bb aaa aab …
● Uma linguagem é um subconjunto do conjunto acima, e pode ser representada
por uma cadeia binária infinita
1 0 1 1 0 0 1 1 0 …
21. Algumas linguagens não são Turing-reconhecíveis
Teorema 3 (Linguagens são não enumeráveis)
“O conjunto das linguagens sobre um alfabeto é não
enumerável (e infinito).”
● Seja Σ = {a,b}
● O conjunto das cadeias de tamanho finito sobre Σ é enumerável
a b aa ab ba bb aaa aab …
● Uma linguagem é um subconjunto do conjunto acima, e pode ser representada
por uma cadeia binária infinita
1 0 1 1 0 0 1 1 0 …
● Pelo Teorema 2, o conjunto das linguagens é não enumerável
22. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
Corolário 1 (Linguagens Turing-reconhecíveis são
enumeráveis)
“O conjunto das linguagens Turing-reconhecíveis é enumerável
(e infinito).”
23. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
Corolário 1 (Linguagens Turing-reconhecíveis são
enumeráveis)
“O conjunto das linguagens Turing-reconhecíveis é enumerável
(e infinito).”
● Para cada linguagem Turing-reconhecível existe uma máquina de Turing
correspondente.
24. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
Teorema 3 (Linguagens são não enumeráveis)
Corolário 1 (Linguagens Turing-reconhecíveis são
enumeráveis)
25. Algumas linguagens não são Turing-reconhecíveis
Teorema 1 (Máquinas de Turing são enumeráveis)
Teorema 2 (Cadeias binárias infinitas são não enumeráveis)
Teorema 3 (Linguagens são não enumeráveis)
Corolário 1 (Linguagens Turing-reconhecíveis são
enumeráveis)
Corolário 2 “Algumas linguagens não são
Turing-reconhecíveis”
27. Mas como seria a
cara de uma
linguagem não
recursivamente
enumerável?
28. Mas como seria a
cara de uma
linguagem não
recursivamente
enumerável?
yku uygkuyfygl ihiuh
iuhliuh ioiuy
iyt8ti8ru3wtresgf
zfgvy ygkjhgug
ygutfiyt 6i7g ougi7gu
ygi76giyg i7687h
outvu64uc bo8ho8
vjyrc67vo 78oybi7
46c757 8698v698 ...
29. Exemplo de linguagens não Turing-reconhecíveis
A linguagem LN
compreende o conjunto das cadeias C(M)w
tais que w representa uma cadeia que não é aceita pela
Máquina de Turing M.
LN
= {C(M)w ∈ Σ*
| w ∉ L(M) }
43. Linguagens sensíveis ao contexto (tipo-1)
Linguagens: Linguagens Sensíveis ao Contexto
Gramáticas: Gramáticas Sensíveis ao Contexto
Reconhecedores: Máquina de Turing com fita
limitada
52. Linguagem Gramática Reconhecedor
(0) Recursivamente
Enumerável Irrestrita Máquina de Turing
(1) Sensível ao
Contexto Sensível ao Contexto
Máquina de Turing
com Fita Limitada
(2) Livre de Contexto Livre de Contexto Autômato com Pilha
(3) Regular Regular Autômato Finito