SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Linguagens não recursivamente enumeráveis
e
Hierarquia de Chomsky
ou
“As queridinhas de Turing
e a
Hierarquia que todos já falaram”
Linguagens não
recursivamente
enumeráveis
Linguagens não recursivamente enumeráveis
● Não possuem formalização gramatical
● Não existem máquinas de Turing que as
reconheçam
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
Linguagens não recursivamente enumeráveis
Algumas linguagens não são Turing-reconhecíveis
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 Σ.”
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)
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
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
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
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
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 ℝ)
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
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
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
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
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}
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 …
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 …
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
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).”
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.
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)
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”
“Existem mais problemas
do que algoritmos para
resolvê-los.”
Mas como seria a
cara de uma
linguagem não
recursivamente
enumerável?
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 ...
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) }
Hierarquia de
Chomsky
“A hierarquia que todos já falaram”
Recursivamente enumeráveis (0)
Sensíveis ao contexto (1)
Livres de contexto (2)
Regular (3)
Universo de Linguagens
Recursivamente enumeráveis (0)
Sensíveis ao contexto (1)
Livres de contexto (2)
Regular (3)
Universo de Linguagens
Linguagens regulares (tipo-3)
Linguagens: Linguagens Regulares
Gramáticas: Gramáticas Regulares
Reconhecedores: Autômatos Finitos
Linguagens regulares
L={a(ba)*
}
aba, ababa, abababa
L={(a ⋃ b)*
(aa ⋃ bb)}
aa, bb, aaa, abaa
Gramáticas regulares
G=(V,Σ,P,S)
Regras de Produção:
A → wB
A → Bw
A → w
A →
Sendo que w ∈ Σ*
, e A,B ∈ V.
Gramáticas regulares
L={a(ba)*
} (aba, ababa, abababa)
G=({S,A},{a,b},P,S)
S→aA
A→baA |
Recursivamente enumeráveis (0)
Sensíveis ao contexto (1)
Livres de contexto (2)
Regular (3)
Universo de Linguagens
Linguagens livres de contexto (tipo-2)
Linguagens: Linguagens Livre de Contexto
Gramáticas: Livre de Contexto
Reconhecedores: Autômato com Pilha
Linguagens livres de contexto
L = {an
bn
| n≥0}
ab, aabb, aaabbb
L = Expressões aritméticas (+,*,[,])
x+x, x+x*x, x*[x+x]
Gramáticas livres de contexto
G=(V,Σ,P,S)
Regras de Produção:
A → α
Sendo que α ∈ (Σ ⋃ V)*
.
Gramáticas livres de contexto
L={an
bn
| n≥0} (ab, aabb, aaabbb)
G=({S,A,C},{a,b,c},P,S)
S→aSb
S→
Recursivamente enumeráveis (0)
Sensíveis ao contexto (1)
Livres de contexto (2)
Regular (3)
Universo de Linguagens
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
Linguagens sensíveis ao contexto
L={an
bn
cn
| n>0}
abc, aaabbccc, aabbcc
L={ww | w ∈ {a,b}*
}
aa, aabb, abaaba
Gramáticas sensíveis ao contexto
G=(V,Σ,P,S)
Regras de Produção:
u → W
Sendo que u ∈ (Σ ⋃ V)+
e w ∈ (Σ ⋃ V)*
, e |u|⪕|w|.
Gramáticas sensíveis ao contexto
L={an
bn
cn
| n>0} (abc, aabbcc, aaabbbccc)
G=({S,A,C},{a,b,c},P,S)
S→aAbc | abc
A→aAbC |
Cb→bC
Cc→cc
Recursivamente enumeráveis (0)
Sensíveis ao contexto (1)
Livres de contexto (2)
Regular (3)
Universo de Linguagens
Linguagens recursivamente enumeráveis (tipo-0)
Linguagens: Linguagens Recursivamente Enumeráveis
Gramáticas: Gramáticas Irrestritas
Reconhecedores: Máquina de Turing
Linguagens recursivamente enumeráveis
L={an
bn
cn
| n≥0}
abc, aaabbbccc, aabbcc
L={u[u] | u ∈ {a,b}*
}
aa[aa], aab[aab], baba[baba]
Gramáticas irrestritas
G=(V,Σ,P,S)
Regras de Produção:
u → W
Sendo que u ∈ (Σ ⋃ V)+
e w ∈ (Σ ⋃ V)*
.
Gramáticas irrestritas
L={an
bn
cn
| n≥0} (abc,aaabbbccc)
G=({S,A,C},{a,b,c},P,S)
S→aAbc |
A→aAbC |
Cb→bC
Cc→cc
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
aCc→aA
Cc→bB
Aa→bB
A→aAb
B→aaA
A→abB
A→Bab
A→
0
aCc→aA
Cc→bB
Aa→bB
A→aAb
B→aaA
A→abB
A→Bab
A→
1
0
aCc→aA
Cc→bB
Aa→bB
A→aAb
B→aaA
A→abB
A→Bab
A→
2
1
0
aCc→aA
Cc→bB
Aa→bB
A→aAb
B→aaA
A→abB
A→Bab
A→
3
2
1
0
Obrigado!

Mais conteúdo relacionado

Mais procurados

Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de AlgoritmosAdilmar Dantas
 
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...Databricks
 
Algoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlgoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlex Camargo
 
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2Dimitris Psounis
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministicowab030
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Inc.
 
O caixeiro viajante é np completo
O caixeiro viajante é np completoO caixeiro viajante é np completo
O caixeiro viajante é np completoMarcelo Carvalho
 
Algoritmo Variaveis
Algoritmo   VariaveisAlgoritmo   Variaveis
Algoritmo VariaveisAndré Nobre
 
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Inc.
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 

Mais procurados (20)

Algoritmos gulosos
Algoritmos gulososAlgoritmos gulosos
Algoritmos gulosos
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
 
Algoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlgoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de strings
 
NLP_KASHK:POS Tagging
NLP_KASHK:POS TaggingNLP_KASHK:POS Tagging
NLP_KASHK:POS Tagging
 
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.1
ΠΛΗ31 ΜΑΘΗΜΑ 1.1ΠΛΗ31 ΜΑΘΗΜΑ 1.1
ΠΛΗ31 ΜΑΘΗΜΑ 1.1
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministico
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
 
O caixeiro viajante é np completo
O caixeiro viajante é np completoO caixeiro viajante é np completo
O caixeiro viajante é np completo
 
Algoritmo Variaveis
Algoritmo   VariaveisAlgoritmo   Variaveis
Algoritmo Variaveis
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
ΠΛΗ31 ΜΑΘΗΜΑ 3.5
ΠΛΗ31 ΜΑΘΗΜΑ 3.5ΠΛΗ31 ΜΑΘΗΜΑ 3.5
ΠΛΗ31 ΜΑΘΗΜΑ 3.5
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
 
PROLOG - ΜΑΘΗΜΑ 3
PROLOG - ΜΑΘΗΜΑ 3PROLOG - ΜΑΘΗΜΑ 3
PROLOG - ΜΑΘΗΜΑ 3
 
Computacao Numérica
Computacao NuméricaComputacao Numérica
Computacao Numérica
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 

Semelhante a Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky

2º/2012 - Prova 03 de Autômatos e Computabilidade
2º/2012 - Prova 03 de Autômatos e Computabilidade2º/2012 - Prova 03 de Autômatos e Computabilidade
2º/2012 - Prova 03 de Autômatos e Computabilidadeshichibukai_01
 
01 maquinas de turing
01 maquinas de turing01 maquinas de turing
01 maquinas de turingYuri Passos
 
05 indecibilidade
05 indecibilidade05 indecibilidade
05 indecibilidadeYuri Passos
 
Tipos de Dados em Python: Como Manipulamos Dados em Python?
Tipos de Dados em Python: Como Manipulamos Dados em Python?Tipos de Dados em Python: Como Manipulamos Dados em Python?
Tipos de Dados em Python: Como Manipulamos Dados em Python?Marcelo Fabiano N. de Oliveira
 
06-Complementos de LRE e LR - Reducoes.pdf
06-Complementos de LRE e LR - Reducoes.pdf06-Complementos de LRE e LR - Reducoes.pdf
06-Complementos de LRE e LR - Reducoes.pdfYuri Passos
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python PoliRodrigo Lira
 

Semelhante a Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky (7)

2º/2012 - Prova 03 de Autômatos e Computabilidade
2º/2012 - Prova 03 de Autômatos e Computabilidade2º/2012 - Prova 03 de Autômatos e Computabilidade
2º/2012 - Prova 03 de Autômatos e Computabilidade
 
01 maquinas de turing
01 maquinas de turing01 maquinas de turing
01 maquinas de turing
 
05 indecibilidade
05 indecibilidade05 indecibilidade
05 indecibilidade
 
Tipos de Dados em Python: Como Manipulamos Dados em Python?
Tipos de Dados em Python: Como Manipulamos Dados em Python?Tipos de Dados em Python: Como Manipulamos Dados em Python?
Tipos de Dados em Python: Como Manipulamos Dados em Python?
 
06-Complementos de LRE e LR - Reducoes.pdf
06-Complementos de LRE e LR - Reducoes.pdf06-Complementos de LRE e LR - Reducoes.pdf
06-Complementos de LRE e LR - Reducoes.pdf
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
 
Introducao ao python
Introducao ao pythonIntroducao ao python
Introducao ao python
 

Mais de Marcos Paulo Maia dos Santos

Mais de Marcos Paulo Maia dos Santos (11)

Inclusão Digital - Conceitos básicos de informática
Inclusão Digital - Conceitos básicos de informáticaInclusão Digital - Conceitos básicos de informática
Inclusão Digital - Conceitos básicos de informática
 
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticosRegressão simbólica - Resolvendo problemas de planejamento não-determinísticos
Regressão simbólica - Resolvendo problemas de planejamento não-determinísticos
 
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
Problema da Árvore Geradora de Rotulação Mínima (PAGRM)
 
Introdução a ciência de dados com Python
Introdução a ciência de dados com PythonIntrodução a ciência de dados com Python
Introdução a ciência de dados com Python
 
Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)Applied plotting, charting & data representation in Python (pt. 2)
Applied plotting, charting & data representation in Python (pt. 2)
 
Resolução de problemas por meio de busca
Resolução de problemas por meio de buscaResolução de problemas por meio de busca
Resolução de problemas por meio de busca
 
Planejamento em Inteligência Artificial
Planejamento em Inteligência ArtificialPlanejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
 
Planejamento como verificação de modelos
Planejamento como verificação de modelosPlanejamento como verificação de modelos
Planejamento como verificação de modelos
 
Diagramas de decisão binária
Diagramas de decisão bináriaDiagramas de decisão binária
Diagramas de decisão binária
 
Linguagens de programação - Go
Linguagens de programação - GoLinguagens de programação - Go
Linguagens de programação - Go
 
Planejamento em Inteligência Artificial
Planejamento em Inteligência ArtificialPlanejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
 

Último

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Último (9)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky

  • 1. Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky ou “As queridinhas de Turing e a Hierarquia que todos já falaram”
  • 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
  • 6. Algumas linguagens não são Turing-reconhecí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”
  • 26. “Existem mais problemas do que algoritmos para resolvê-los.”
  • 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) }
  • 30. Hierarquia de Chomsky “A hierarquia que todos já falaram”
  • 31. Recursivamente enumeráveis (0) Sensíveis ao contexto (1) Livres de contexto (2) Regular (3) Universo de Linguagens
  • 32. Recursivamente enumeráveis (0) Sensíveis ao contexto (1) Livres de contexto (2) Regular (3) Universo de Linguagens
  • 33. Linguagens regulares (tipo-3) Linguagens: Linguagens Regulares Gramáticas: Gramáticas Regulares Reconhecedores: Autômatos Finitos
  • 34. Linguagens regulares L={a(ba)* } aba, ababa, abababa L={(a ⋃ b)* (aa ⋃ bb)} aa, bb, aaa, abaa
  • 35. Gramáticas regulares G=(V,Σ,P,S) Regras de Produção: A → wB A → Bw A → w A → Sendo que w ∈ Σ* , e A,B ∈ V.
  • 36. Gramáticas regulares L={a(ba)* } (aba, ababa, abababa) G=({S,A},{a,b},P,S) S→aA A→baA |
  • 37. Recursivamente enumeráveis (0) Sensíveis ao contexto (1) Livres de contexto (2) Regular (3) Universo de Linguagens
  • 38. Linguagens livres de contexto (tipo-2) Linguagens: Linguagens Livre de Contexto Gramáticas: Livre de Contexto Reconhecedores: Autômato com Pilha
  • 39. Linguagens livres de contexto L = {an bn | n≥0} ab, aabb, aaabbb L = Expressões aritméticas (+,*,[,]) x+x, x+x*x, x*[x+x]
  • 40. Gramáticas livres de contexto G=(V,Σ,P,S) Regras de Produção: A → α Sendo que α ∈ (Σ ⋃ V)* .
  • 41. Gramáticas livres de contexto L={an bn | n≥0} (ab, aabb, aaabbb) G=({S,A,C},{a,b,c},P,S) S→aSb S→
  • 42. Recursivamente enumeráveis (0) Sensíveis ao contexto (1) Livres de contexto (2) Regular (3) Universo de Linguagens
  • 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
  • 44. Linguagens sensíveis ao contexto L={an bn cn | n>0} abc, aaabbccc, aabbcc L={ww | w ∈ {a,b}* } aa, aabb, abaaba
  • 45. Gramáticas sensíveis ao contexto G=(V,Σ,P,S) Regras de Produção: u → W Sendo que u ∈ (Σ ⋃ V)+ e w ∈ (Σ ⋃ V)* , e |u|⪕|w|.
  • 46. Gramáticas sensíveis ao contexto L={an bn cn | n>0} (abc, aabbcc, aaabbbccc) G=({S,A,C},{a,b,c},P,S) S→aAbc | abc A→aAbC | Cb→bC Cc→cc
  • 47. Recursivamente enumeráveis (0) Sensíveis ao contexto (1) Livres de contexto (2) Regular (3) Universo de Linguagens
  • 48. Linguagens recursivamente enumeráveis (tipo-0) Linguagens: Linguagens Recursivamente Enumeráveis Gramáticas: Gramáticas Irrestritas Reconhecedores: Máquina de Turing
  • 49. Linguagens recursivamente enumeráveis L={an bn cn | n≥0} abc, aaabbbccc, aabbcc L={u[u] | u ∈ {a,b}* } aa[aa], aab[aab], baba[baba]
  • 50. Gramáticas irrestritas G=(V,Σ,P,S) Regras de Produção: u → W Sendo que u ∈ (Σ ⋃ V)+ e w ∈ (Σ ⋃ V)* .
  • 51. Gramáticas irrestritas L={an bn cn | n≥0} (abc,aaabbbccc) G=({S,A,C},{a,b,c},P,S) S→aAbc | A→aAbC | Cb→bC Cc→cc
  • 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