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 es...
Máquinas de várias pilhas
– q0: estado inicial
– Z0: símbolo que indica fim da pilha
– F⊆Q: conjunto de estados de aceitaç...
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:
– ...
Máquinas de várias pilhas
● Na Máquina de Pilhas, faça a pilha esquerda
(primeira pilha) conter todos os símbolos a
esquer...
Máquinas de várias pilhas
– S possuirá um marcador de fundo de pilha. A
pilha está vazia quando só possui este
marcador de...
Máquinas de várias pilhas
– S pode simular a M.T. caminhando em suas pilhas.
– O símbolo no topo da segunda pilha correspo...
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, tem...
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 repr...
Máquinas de contadores
● Toda linguagem recursivamente enumerável é aceita por
uma máquina de contadores (M.C.) com três c...
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, s...
Máquinas de contadores
– Teremos o seguinte número inteiro para
representar este conteúdo:
● 3·42 + 3·41 + 2 = 62
– Se a p...
Máquinas de contadores
● Dois contadores servem para representar as
pilhas.
● O terceiro contador serve para efetuar
conta...
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 >...
Máquinas de contadores
● Toda linguagem RE pode ser representado
por uma máquina de contador com dois
contadores apenas.
●...
Máquinas de contadores
– Note que m é representado por uma
multiplicação de números primos. A ordem
será mantida.
● Se esc...
Computadores pessoais
● Os computadores e M.T. São equivalentes
quanto a aceitação de linguagens RE? Para
provar, precisam...
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 f...
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ô...
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...
Referência
● [1] HOPCROFT, John E.; ULLMAN, Jeffrey
D.; MOTWANI, Rajeev. Introdução à teoria
de autômatos, linguagens e co...
Aula04
Próximos SlideShares
Carregando em…5
×

Aula04

249 visualizações

Publicada em

Aula sobre máquinas de várias pilhas, máquinas de contadores e a Tese de Church-Turing

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
249
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula04

  1. 1. Máquinas de Turing e outros modelos Yuri Tavares dos Passos
  2. 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. 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
  4. 4. Máquinas de várias pilhas
  5. 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. 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. 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. 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. 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. 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. 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. 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. 13. 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)
  14. 14. 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
  15. 15. 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.
  16. 16. 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.
  17. 17. 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
  18. 18. 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.
  19. 19. 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
  20. 20. Computadores pessoais ● PC em M.T.
  21. 21. 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
  22. 22. Computadores pessoais ● PC em M.T. – Cada componente guarda o endereço de memória e seu conteúdo binário entre # e *
  23. 23. Computadores pessoais
  24. 24. 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).
  25. 25. 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? – E se existir uma máquina mais poderosa que a MT?
  26. 26. 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

×