SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Máquinas de Turing e
outros modelos
Yuri Tavares dos Passos
Máquinas de várias pilhas
● Máquina de pilha ou autômato de pilha é dado
por M = (Q,Σ,Г,δ,q0,Z0,F)
– Q: é o conjunto de estados
– Σ: símbolos de fita
– Г: símbolos de pilha
– δ: Q x Σ ⋃ {ε} x Г → 2Σ x Г*
● Exemplo: δ(q,a,X) = {(p,YZ), (r,ε)}
● Na fita, ε é usado para não avançar a fita
●
Na pilha, ε indica que o topo foi apagado
Máquinas de várias pilhas
– q0: estado inicial
– Z0: símbolo que indica fim da pilha
– F⊆Q: conjunto de estados de aceitação
Máquinas de várias pilhas
Máquinas de várias pilhas
● A máquina de várias pilhas é uma
extensão deste autômato para usar mais
de uma pilha.
Máquinas de várias pilhas
● Toda linguagem recursivamente enumerável é
aceita por uma máquinas com duas pilhas
● Prova:
– Se uma linguagem é RE, então existe uma M.T.
que a aceite.
– Esta M.T. Pode ser simulada por um autômato de
duas pilhas da seguinte forma:
● Quebre a fita da M.T. em duas partes a partir da cabeça
de leitura
Máquinas de várias pilhas
● Na Máquina de Pilhas, faça a pilha esquerda
(primeira pilha) conter todos os símbolos a
esquerda da fita da M.T.
● A pilha direita (segunda pilha) guarda todos os
símbolos à direita da fita da M.T.
– Considere S o nome desta Máquina de pilhas.
Máquinas de várias pilhas
– S possuirá um marcador de fundo de pilha. A
pilha está vazia quando só possui este
marcador de fundo de pilha.
– Suponha que a palavra w$ esteja na entrada
de S. S copia w no topo de sua primeira pilha.
– S extrai um simbolo por vez e empilha na pilha
esquerda. Agora a segunda pilha conterá w
com o topo na extremidade esquerda de w.
Máquinas de várias pilhas
– S pode simular a M.T. caminhando em suas pilhas.
– O símbolo no topo da segunda pilha corresponde
ao símbolo atual.
– Se a M.T. anda para direita, este símbolo é
empilhado na primeira pilha e desempilhado da
segunda
– Se a M.T. anda para esquerda, o primeiro símbolo
da pilha esquerda é empilhado na pilha da direita
● Se o fundo de alguma pilha for alcançado, S possui um
símbolo B para marcar o branco da máquina de Turing.
Máquinas de contadores
● A máquina de contador pode ser vista como
uma máquina de várias pilhas.
● Ao invés de pilhas, temos contadores
inteiros não negativos.
● Estes contadores podem ser incrementados
ou decrementados.
● Quando um contador alcança 0, não pode
decrementar.
Máquinas de contadores
● Uma M.C. é uma restrição de uma M.P.
Onde:
– Só existem dois símbolos de pilha, Z0 e X.
– Z0 representa o 0.
– Só podemos substituir Z0 por XiZ0 onde i é o
número inteiro não negativo a ser armazenado
no contador.
Máquinas de contadores
● Toda linguagem recursivamente enumerável é aceita por
uma máquina de contadores (M.C.) com três contadores.
● Prova:
– Suponha que a máquina de contador C simula uma máquina de
pilhas S.
– Se S possui r-1 símbolos de fita, então podemos representar estes
símbolos por inteiros de 1 a r-1.
– A pilha será simulada por um número na base r.
– Suponha que a pilha tenha os símbolos X1, X2, …, Xn (o topo é X1)
– O número Xnrn-1 + … + X3r2 + X2r1 + X1 representa o conteúdo da
pilha
● Г = {S,X,Y,Z}
● Г = {1,2,3,4}
Máquinas de contadores
S
X
Y
Z0
1
2
3
Z0
321
Máquinas de contadores
● Exemplo:
– Considere que os símbolos da fita sejam 0, 1 e 2.
– Temos que r – 1 = 3.
● A base r, será r = 4
– Então modificamos os símbolos para 1 a r – 1, isto
é, 1, 2 e 3.
– Se a pilha tiver em um dado momento a seguinte
configuração:
● 233 (onde 2 está no topo)
Máquinas de contadores
– Teremos o seguinte número inteiro para
representar este conteúdo:
● 3·42 + 3·41 + 2 = 62
– Se a pilha tiver em um dado instante a
seguinte configuração:
● 323
– Teremos o seguinte número inteiro para
representar este conteúdo:
● 3·42 + 2·41 + 3 = 59
Máquinas de contadores
● Dois contadores servem para representar as
pilhas.
● O terceiro contador serve para efetuar
contas, como dividir por r e multiplicar por r.
– Lembre-se que C somente soma e subtrai.
● Para extrair o símbolo X1, da pilha, devemos
devemos substituir o número i, por i/r,
descartando o resto. O resto é o X1.
Máquinas de contadores
● Para trocar um símbolo X por outro, Y, na
pilha, fazemos que i seja igual a i – (Y –
X), caso Y > X e i – (X – Y), caso X > Y.
● Para empilhar X, fazemos i se tornar ir + X.
Máquinas de contadores
● Toda linguagem RE pode ser representado
por uma máquina de contador com dois
contadores apenas.
● Prova:
– Faça que os três contadores, i, j e k, sejam
representados por um número inteiro
somente.
– Este número inteiro será m = 2i3j5k
Máquinas de contadores
– Note que m é representado por uma
multiplicação de números primos. A ordem
será mantida.
● Se escolhessemos 2i3j4k então o número 12
poderia ser representado por i = 0, j = 1 e k = 1 ou i
= 2, j = 1 e k = 0. Isto tornaria a representação
ambígua.
– O segundo contador tem a função de realizar
a multiplicação e divisão por 2, 3 e 5.
Computadores pessoais
● Os computadores e M.T. São equivalentes
quanto a aceitação de linguagens RE? Para
provar, precisamos mostrar que:
– Uma M.T. pode ser simulada em um PC.
– Um PC pode ser simulado por uma M.T.
● M.T. em PC
– Pode ser escrito uma M.T. em qualquer linguagem de
programação.
– Existem diversas simulações em sites da internet
Computadores pessoais
● PC em M.T.
Computadores pessoais
● PC em M.T.
– Usa uma M.T. com várias fitas.
– Cada componente principal do PC é simulado
em cada fita
● Registradores
● Contadores de instrução
● Endereço de memória atual
● Conteúdo de um arquivo de entrada
● Rascunho
Computadores pessoais
● PC em M.T.
– Cada componente guarda o endereço de
memória e seu conteúdo binário entre # e *
Computadores pessoais
Comparação de tempo
entre M.T. e PC.
● O tempo de execução entre cada um dos
modelos acima deve ser limitado por um
polinômio.
– Limite entre problemas tratáveis e intratáveis
● A M.T. que simula um PC pode executar n
etapas do PC em O(n3) passos.
● Como esta M.T. possui várias fitas, a sua
conversão para M.T. de uma fita levará a uma
quantidade de passos de no máximo O(n6).
Tese de Church-Turing
● Toda função computável pode ser
simulada por uma Máquina de Turing
– O que é uma função computável?
● É uma função que possui uma descrição efetiva
para calculá-la (ou seja, possui um algoritmo).
– E se existir uma máquina mais poderosa que
a MT?
Referência
● [1] HOPCROFT, John E.; ULLMAN, Jeffrey
D.; MOTWANI, Rajeev. Introdução à teoria
de autômatos, linguagens e computação.
[Rio de Janeiro]: Campus, c2003. p. 328-
352
● Imagens da versão em inglês

Mais conteúdo relacionado

Mais procurados

Questão disco braço rotulado
Questão disco braço rotuladoQuestão disco braço rotulado
Questão disco braço rotuladoDiogo de Lucena
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando CVinícius Hax
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em CBruno Oliveira
 
Atividades - Geogebra
Atividades - GeogebraAtividades - Geogebra
Atividades - Geogebraluiz10filho
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 
Aula 4 a linguagem assembly
Aula 4   a linguagem assemblyAula 4   a linguagem assembly
Aula 4 a linguagem assemblyLCCIMETRO
 
Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Ensdo
 
Exercicio 5 transformada de fourier no tempo continuo
Exercicio 5   transformada de fourier no tempo continuoExercicio 5   transformada de fourier no tempo continuo
Exercicio 5 transformada de fourier no tempo continuoAlessandro Beda
 
Saída formatada - Com printF
Saída formatada - Com printFSaída formatada - Com printF
Saída formatada - Com printFAldemir Gomes
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte CarloAngelo Polotto
 

Mais procurados (20)

Questão disco braço rotulado
Questão disco braço rotuladoQuestão disco braço rotulado
Questão disco braço rotulado
 
4 aula do curso de automação - Arduino
4 aula do curso de automação - Arduino4 aula do curso de automação - Arduino
4 aula do curso de automação - Arduino
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em C
 
Mat logaritmos
Mat logaritmosMat logaritmos
Mat logaritmos
 
Questão 1
Questão 1Questão 1
Questão 1
 
Aula1a4
Aula1a4Aula1a4
Aula1a4
 
Curso de Simulink
Curso de SimulinkCurso de Simulink
Curso de Simulink
 
Atividades - Geogebra
Atividades - GeogebraAtividades - Geogebra
Atividades - Geogebra
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Radiciação
RadiciaçãoRadiciação
Radiciação
 
Redes de-petri-2
Redes de-petri-2Redes de-petri-2
Redes de-petri-2
 
Trigometria aula 002
Trigometria aula 002Trigometria aula 002
Trigometria aula 002
 
Aula 4 a linguagem assembly
Aula 4   a linguagem assemblyAula 4   a linguagem assembly
Aula 4 a linguagem assembly
 
Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1Estrdado materia-06-alocacao-de-memoria1
Estrdado materia-06-alocacao-de-memoria1
 
Exercicio 5 transformada de fourier no tempo continuo
Exercicio 5   transformada de fourier no tempo continuoExercicio 5   transformada de fourier no tempo continuo
Exercicio 5 transformada de fourier no tempo continuo
 
Saída formatada - Com printF
Saída formatada - Com printFSaída formatada - Com printF
Saída formatada - Com printF
 
Linguagem C 09 Ponteiros
Linguagem C 09 PonteirosLinguagem C 09 Ponteiros
Linguagem C 09 Ponteiros
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte Carlo
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 

Semelhante a Modelos de computação e Máquinas de Turing

Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
02 maquinas de turing modificadas
02 maquinas de turing modificadas02 maquinas de turing modificadas
02 maquinas de turing modificadasYuri Passos
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 
Aula04 ponteiros e conversao
Aula04   ponteiros e conversaoAula04   ponteiros e conversao
Aula04 ponteiros e conversaoYuri Passos
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turingwab030
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programaçãoAlysonTrindadeFernan
 
FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorDafmet Ufpel
 
Análise combinatória resumo
Análise combinatória   resumoAnálise combinatória   resumo
Análise combinatória resumoUyara Teixeira
 
Ger numaleat(1)
Ger numaleat(1)Ger numaleat(1)
Ger numaleat(1)Iago Lira
 
04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdfYuri Passos
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos Castro
 
Teoria da Computação - Maquina de post
Teoria da Computação - Maquina de postTeoria da Computação - Maquina de post
Teoria da Computação - Maquina de postAugusto Schmidt
 
01 maquinas de turing
01 maquinas de turing01 maquinas de turing
01 maquinas de turingYuri Passos
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdfAlexSouza974126
 

Semelhante a Modelos de computação e Máquinas de Turing (20)

Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Aula de C e C++
Aula de C e C++Aula de C e C++
Aula de C e C++
 
2 maquina de post
2 maquina de post2 maquina de post
2 maquina de post
 
02 maquinas de turing modificadas
02 maquinas de turing modificadas02 maquinas de turing modificadas
02 maquinas de turing modificadas
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Aula04 ponteiros e conversao
Aula04   ponteiros e conversaoAula04   ponteiros e conversao
Aula04 ponteiros e conversao
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
 
Hp1
Hp1Hp1
Hp1
 
Python introdução a linguagem de programação
Python introdução a linguagem de programaçãoPython introdução a linguagem de programação
Python introdução a linguagem de programação
 
FORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputadorFORTRAN 90 - Representacao numeroscomputador
FORTRAN 90 - Representacao numeroscomputador
 
Análise combinatória resumo
Análise combinatória   resumoAnálise combinatória   resumo
Análise combinatória resumo
 
Ger numaleat(1)
Ger numaleat(1)Ger numaleat(1)
Ger numaleat(1)
 
04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Teoria da Computação - Maquina de post
Teoria da Computação - Maquina de postTeoria da Computação - Maquina de post
Teoria da Computação - Maquina de post
 
Hp 9s-pt
Hp 9s-ptHp 9s-pt
Hp 9s-pt
 
01 maquinas de turing
01 maquinas de turing01 maquinas de turing
01 maquinas de turing
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdf
 
Aula01
Aula01Aula01
Aula01
 

Mais de Yuri Passos

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
 
03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdf03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdfYuri Passos
 
07 intratablilidade
07 intratablilidade07 intratablilidade
07 intratablilidadeYuri Passos
 
05 indecibilidade
05 indecibilidade05 indecibilidade
05 indecibilidadeYuri Passos
 
09 problemas de grafos np-completos
09 problemas de grafos np-completos09 problemas de grafos np-completos
09 problemas de grafos np-completosYuri Passos
 
10 maquinas probabilisticas
10 maquinas probabilisticas10 maquinas probabilisticas
10 maquinas probabilisticasYuri Passos
 
07 intratablilidade
07 intratablilidade07 intratablilidade
07 intratablilidadeYuri Passos
 
08 SAT e Variacões
08 SAT e Variacões08 SAT e Variacões
08 SAT e VariacõesYuri Passos
 
Aula06 matriz em C
Aula06 matriz em CAula06 matriz em C
Aula06 matriz em CYuri Passos
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionaisYuri Passos
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoesYuri Passos
 
Aula03 repeticao
Aula03   repeticaoAula03   repeticao
Aula03 repeticaoYuri Passos
 

Mais de Yuri Passos (17)

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
 
03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdf03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdf
 
07 intratablilidade
07 intratablilidade07 intratablilidade
07 intratablilidade
 
05 indecibilidade
05 indecibilidade05 indecibilidade
05 indecibilidade
 
09 problemas de grafos np-completos
09 problemas de grafos np-completos09 problemas de grafos np-completos
09 problemas de grafos np-completos
 
10 maquinas probabilisticas
10 maquinas probabilisticas10 maquinas probabilisticas
10 maquinas probabilisticas
 
Teorema de rice
Teorema de riceTeorema de rice
Teorema de rice
 
07 intratablilidade
07 intratablilidade07 intratablilidade
07 intratablilidade
 
08 SAT e Variacões
08 SAT e Variacões08 SAT e Variacões
08 SAT e Variacões
 
Aula06 matriz em C
Aula06 matriz em CAula06 matriz em C
Aula06 matriz em C
 
Aula02 condicionais
Aula02   condicionaisAula02   condicionais
Aula02 condicionais
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Aula03 repeticao
Aula03   repeticaoAula03   repeticao
Aula03 repeticao
 
Aula04
Aula04Aula04
Aula04
 
Aula03
Aula03Aula03
Aula03
 
Aula02
Aula02Aula02
Aula02
 
Aula05
Aula05Aula05
Aula05
 

Modelos de computação e Máquinas de Turing

  • 1. Máquinas de Turing e outros modelos Yuri Tavares dos Passos
  • 2. Máquinas de várias pilhas ● Máquina de pilha ou autômato de pilha é dado por M = (Q,Σ,Г,δ,q0,Z0,F) – Q: é o conjunto de estados – Σ: símbolos de fita – Г: símbolos de pilha – δ: Q x Σ ⋃ {ε} x Г → 2Σ x Г* ● Exemplo: δ(q,a,X) = {(p,YZ), (r,ε)} ● Na fita, ε é usado para não avançar a fita ● Na pilha, ε indica que o topo foi apagado
  • 3. Máquinas de várias pilhas – q0: estado inicial – Z0: símbolo que indica fim da pilha – F⊆Q: conjunto de estados de aceitação
  • 5. Máquinas de várias pilhas ● A máquina de várias pilhas é uma extensão deste autômato para usar mais de uma pilha.
  • 6. Máquinas de várias pilhas ● Toda linguagem recursivamente enumerável é aceita por uma máquinas com duas pilhas ● Prova: – Se uma linguagem é RE, então existe uma M.T. que a aceite. – Esta M.T. Pode ser simulada por um autômato de duas pilhas da seguinte forma: ● Quebre a fita da M.T. em duas partes a partir da cabeça de leitura
  • 7. Máquinas de várias pilhas ● Na Máquina de Pilhas, faça a pilha esquerda (primeira pilha) conter todos os símbolos a esquerda da fita da M.T. ● A pilha direita (segunda pilha) guarda todos os símbolos à direita da fita da M.T. – Considere S o nome desta Máquina de pilhas.
  • 8. Máquinas de várias pilhas – S possuirá um marcador de fundo de pilha. A pilha está vazia quando só possui este marcador de fundo de pilha. – Suponha que a palavra w$ esteja na entrada de S. S copia w no topo de sua primeira pilha. – S extrai um simbolo por vez e empilha na pilha esquerda. Agora a segunda pilha conterá w com o topo na extremidade esquerda de w.
  • 9. Máquinas de várias pilhas – S pode simular a M.T. caminhando em suas pilhas. – O símbolo no topo da segunda pilha corresponde ao símbolo atual. – Se a M.T. anda para direita, este símbolo é empilhado na primeira pilha e desempilhado da segunda – Se a M.T. anda para esquerda, o primeiro símbolo da pilha esquerda é empilhado na pilha da direita ● Se o fundo de alguma pilha for alcançado, S possui um símbolo B para marcar o branco da máquina de Turing.
  • 10. Máquinas de contadores ● A máquina de contador pode ser vista como uma máquina de várias pilhas. ● Ao invés de pilhas, temos contadores inteiros não negativos. ● Estes contadores podem ser incrementados ou decrementados. ● Quando um contador alcança 0, não pode decrementar.
  • 11. Máquinas de contadores ● Uma M.C. é uma restrição de uma M.P. Onde: – Só existem dois símbolos de pilha, Z0 e X. – Z0 representa o 0. – Só podemos substituir Z0 por XiZ0 onde i é o número inteiro não negativo a ser armazenado no contador.
  • 12. Máquinas de contadores ● Toda linguagem recursivamente enumerável é aceita por uma máquina de contadores (M.C.) com três contadores. ● Prova: – Suponha que a máquina de contador C simula uma máquina de pilhas S. – Se S possui r-1 símbolos de fita, então podemos representar estes símbolos por inteiros de 1 a r-1. – A pilha será simulada por um número na base r. – Suponha que a pilha tenha os símbolos X1, X2, …, Xn (o topo é X1) – O número Xnrn-1 + … + X3r2 + X2r1 + X1 representa o conteúdo da pilha
  • 13. ● Г = {S,X,Y,Z} ● Г = {1,2,3,4} Máquinas de contadores S X Y Z0 1 2 3 Z0 321
  • 14. Máquinas de contadores ● Exemplo: – Considere que os símbolos da fita sejam 0, 1 e 2. – Temos que r – 1 = 3. ● A base r, será r = 4 – Então modificamos os símbolos para 1 a r – 1, isto é, 1, 2 e 3. – Se a pilha tiver em um dado momento a seguinte configuração: ● 233 (onde 2 está no topo)
  • 15. Máquinas de contadores – Teremos o seguinte número inteiro para representar este conteúdo: ● 3·42 + 3·41 + 2 = 62 – Se a pilha tiver em um dado instante a seguinte configuração: ● 323 – Teremos o seguinte número inteiro para representar este conteúdo: ● 3·42 + 2·41 + 3 = 59
  • 16. Máquinas de contadores ● Dois contadores servem para representar as pilhas. ● O terceiro contador serve para efetuar contas, como dividir por r e multiplicar por r. – Lembre-se que C somente soma e subtrai. ● Para extrair o símbolo X1, da pilha, devemos devemos substituir o número i, por i/r, descartando o resto. O resto é o X1.
  • 17. Máquinas de contadores ● Para trocar um símbolo X por outro, Y, na pilha, fazemos que i seja igual a i – (Y – X), caso Y > X e i – (X – Y), caso X > Y. ● Para empilhar X, fazemos i se tornar ir + X.
  • 18. Máquinas de contadores ● Toda linguagem RE pode ser representado por uma máquina de contador com dois contadores apenas. ● Prova: – Faça que os três contadores, i, j e k, sejam representados por um número inteiro somente. – Este número inteiro será m = 2i3j5k
  • 19. Máquinas de contadores – Note que m é representado por uma multiplicação de números primos. A ordem será mantida. ● Se escolhessemos 2i3j4k então o número 12 poderia ser representado por i = 0, j = 1 e k = 1 ou i = 2, j = 1 e k = 0. Isto tornaria a representação ambígua. – O segundo contador tem a função de realizar a multiplicação e divisão por 2, 3 e 5.
  • 20. Computadores pessoais ● Os computadores e M.T. São equivalentes quanto a aceitação de linguagens RE? Para provar, precisamos mostrar que: – Uma M.T. pode ser simulada em um PC. – Um PC pode ser simulado por uma M.T. ● M.T. em PC – Pode ser escrito uma M.T. em qualquer linguagem de programação. – Existem diversas simulações em sites da internet
  • 22. Computadores pessoais ● PC em M.T. – Usa uma M.T. com várias fitas. – Cada componente principal do PC é simulado em cada fita ● Registradores ● Contadores de instrução ● Endereço de memória atual ● Conteúdo de um arquivo de entrada ● Rascunho
  • 23. Computadores pessoais ● PC em M.T. – Cada componente guarda o endereço de memória e seu conteúdo binário entre # e *
  • 25. Comparação de tempo entre M.T. e PC. ● O tempo de execução entre cada um dos modelos acima deve ser limitado por um polinômio. – Limite entre problemas tratáveis e intratáveis ● A M.T. que simula um PC pode executar n etapas do PC em O(n3) passos. ● Como esta M.T. possui várias fitas, a sua conversão para M.T. de uma fita levará a uma quantidade de passos de no máximo O(n6).
  • 26. Tese de Church-Turing ● Toda função computável pode ser simulada por uma Máquina de Turing – O que é uma função computável? ● É uma função que possui uma descrição efetiva para calculá-la (ou seja, possui um algoritmo). – E se existir uma máquina mais poderosa que a MT?
  • 27. Referência ● [1] HOPCROFT, John E.; ULLMAN, Jeffrey D.; MOTWANI, Rajeev. Introdução à teoria de autômatos, linguagens e computação. [Rio de Janeiro]: Campus, c2003. p. 328- 352 ● Imagens da versão em inglês