SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Máquinas de Turing
Yuri Tavares dos Passos
Introdução
● As Máquinas de Turing (M.T.) são úteis
para provar que alguns problemas:
– não podem ser resolvidos ou
– são naturalmente difíceis de se resolver
Introdução
● Considere o seguinte problema:
– É possível fazer um programa que diga se um
program em C pode imprimir na tela “hello
worldn”?
Introdução
Introdução
● Envolve o teorema de Fermat
– Resolvido recentemente!
● O problema geral sobre impressão de
“hello world” é possível ser resolvido?
Introdução
Introdução
Introdução
Introdução
Introdução
● O que acontece com H2 quando H2'
imprime “yes”?
● E quando imprime “hello world”?
Introdução
● Se H2 imprimir “hello world”, significa que a
entrada H2 não imprimiria tal palavra.
● Se H2 não imprimir “hello world”, significa
que sua entrada H2 imprimiria tal palavra
● Absurdo!
Linguagens e Problemas
● Nesta disciplina trataremos linguagens
como se fossem problemas a serem
resolvidos
– Pertinência de um string w a uma linguagem
L:
– Dado uma cadeia w em ∑* , definir se w
está ou não em L.
Linguagens e Problemas
● Exemplo: O problema de testar se um
número binário é primo.
● Lp é o conjunto das cadeias dos números
binários que representam um número
binário.
Linguagens e Problemas
● Na prática, decidir se faz parte ou não de
um conjunto não generaliza a noção de
problema.
– Um analisador sintático além de
responder sim ou não, também gera
uma árvore sintática.
Linguagens e Problemas
● Em alguns momentos, estamos usando
linguagens não como problemas de
decisão:
– {0n1n|n≥1}
● Consideramos problemas de decisão
quando queremos provar que ele é difícil
Linguagens e Problemas
● Exemplo: Reconhecer se um arquivo texto
em ASCII pertence a linguagem dos
programas C.
– Um compilador C converte um arquivo
ASCII para executável.
– Se o problema de reconhecimento fosse
mais fácil que a conversão, então
usaríamos o conversor para reconhecer.
Linguagens e Problemas
● Teríamos uma contradição a hipótese: se o
teste de pertinência a C é difícil, o
problema da conversão também é difícil.
Universos das
Linguagens
Máquina de Turing
● Motivação de seu estudo:
– Provar para o programador que existem
problemas que não podem ser resolvidos
– Provar que alguns problemas podem ser
resolvidos, mas usam um período de tempo
muito grande
● Convencer ao programador que apenas algumas
instâncias do problema bem especificadas podem
ser resolvidas em tempo hábil
Máquina de Turing
● Máquina abstrata
– Seria ineficiente construí-la no mundo real
● Utilizar programas em uma linguagem (C,
Java) dificultam as provas, pois:
– Cada estado de um programa é representado pelas
suas variáveis
– Mais difícil de adaptar problemas como “uma
gramática é ambígua?”, “uma fórmula booleana
pode assumir V como resultado?”
Máquina de Turing
● Histórico:
– David Hilbert indagou se era possível encontrar
um algoritmo para determinar a falsidade ou
verdade de uma proposição matemática.
– Kurt Gödel demonstrou o teorema da
incompletude.
– Diversas noções de computação vieram à tona.
● Funções recursivas de Alonzo Church e outras.
– Turing propôs a M.T.
Máquina de Turing
Máquina de Turing
● M = (Q,Σ,Г,δ,q0,B,F)
● Q é o conjunto de estados
● Σ é o alfabeto de entrada
● Г é o alfabeto de saída, ou símbolos da fita.
– Σ⊂Г
● δ é a funçao de transição
– δ: Q x Г→ Q x Г x {E,D}
– {E,D} = {L,R} = {←,→}
Máquina de Turing
● q0 é o estado inicial.
– q0∈Q
● B é o simbolo branco.
– B∈Г e B∉Σ
● F é o conjunto de estados finais.
– F⊆Q
Descrição instantânea
● Notação para descrever o que faz a M.T.
● Suponhamos que a esquerda e a direita
de uma D.I. (ou ID) é infinitamente branco.
X1
X2
...Xi-1
qXi
Xi+1
...Xn
Descrição instantânea
● Usamos ⊢ para refletir um movimento
● Usamos ⊢* para indicar zero ou mais
movimentos
● Suponha δ(q,Xi) = (p,Y,L)
– X1X2...Xi-1qXiXi+1...Xn⊢X1X2...pXi-1YXi+1...Xn
● Suponha δ(q,Xi) = (p,Y,R)
– X1X2...Xi-1qXiXi+1...Xn⊢X1X2...Xi-1YpXi+1...Xn
Descrição instantânea
● Se i=1 e movimento à esquerda:
– qX1X2...Xn⊢qBX1X2...Xn
● Se i=n, Y=B e movimento à esquerda:
– X1X2...Xn-1qXn⊢X1X2...Xn-2pXn-1
Descrição instantânea
● Se i=1, Y=B e movimento à direita:
– qX1X2...Xn p⊢ X2...Xn
● Se i=n e movimento à direita:
– X1X2...Xn-1qXn⊢X1X2...Xn-2YpB
Exemplo 1
● Uma M.T. Para reconhecer {0n1n|n≥1}
● M = ({q0,q1,q2,q3,q4},{0,1},{0,1,X,Y,B},δ,q0,B,
{q4})
Exemplo 1
Exemplo 1
● q0: estado inicial e M entra toda vez que
retorna ao 0 restante mais à esquerda.
● q1: indica que deve ir a direita enquanto
for 0 ou Y, troca 1 por Y e anda à direita
para encontrar novos Ys.
● q2: volta a esquerda até encontrar um X,
andando à esquerda enquanto for Y ou 0.
Exemplo 1
● q3: lê Ys até encontrar um B a direita.
● q4: estado final, indica que foi reconhecida
a palavra. Trava para indicar
reconhecimento!
Exemplo 1
q00011 X⊢ q1011 X0⊢ q111 X⊢ q20Y1⊢q2X0Y1⊢
Xq00Y1 XX⊢ q1Y1 XXY⊢ q11 XX⊢ q2YY⊢
Xq2XYY XX⊢ q0YY XXY⊢ q3Y XXYY⊢ q3B⊢
XXYYBq4B
Exemplo 1
q00010 X⊢ q1010 X0⊢ q110 X⊢ q20Y0⊢q2X0Y0⊢
Xq00Y0 XX⊢ q1Y0 XXY⊢ q10 XXY0⊢ q1B
Diagramas de transição
Exemplo 2
● Ao invés de reconhecer uma linguagem,
uma M.T. para calcular.
– m∸n = max(m-n,0)
● M = ({q0, … ,q6},{0,1},{0,1,B},δ,q0,B,{})
● Entrada é da forma: 0m10n
– 0000100 = 4∸2
● Saída é da forma: 0m∸n
Exemplo 2
Exemplo 2
Exemplo 2
● q0: estado inicial. Inicia o ciclo de substituição
de 0 por B. Vai para q5 se encontrar 1.
● q1: Pesquisa à direita, passando por 0s até
achar 1. Em seguida vai para q2.
● q2: Salta 1s até encontrar 0. Vai para q4 se
encontrar B e vai para q3 se encontrar 0,
substituindo-o por 1
Exemplo 2
● q3: M se move à esquerda até encontrar B.
Ao encontrar muda para q0.
● q4: Subtração está completa, mas um 0
sem correspondência foi encontrado.Troca
o 1 por B.
● q5: Troca os símbolos restantes por B ao
final do cálculo.
Exemplo 2
● q6:Pára a máquina quando termina o
cálculo.
Exemplo 2
● 0000100
Linguagens aceitas pela
M.T.
● Seja M = (Q,Σ,Г,δ,q0,B,F)
● L(M) é o conjunto de strings w tais que q0w ⊢* αpβ para
algum p∈F e quaisquer strings α e β.
● O conjunto das linguagens aceitas por M.T. são chamadas
de linguagens recursivamente enumeráveis.
– Recursiva vem de formalismos computacionais anteriores
à M.T.
– Enumeráveis vem da noção que tais strings podem ser
enumeradas (colocadas em ordem) assim como os
conjuntos enumeráveis (ℕ,ℤ,ℚ)
Máquina de Turing e sua
parada
● A noção de aceitação está relacionada
comumente a parada da M.T.
– Reconhecimento de {0n1n|n≥1}
● Dizemos que a M.T. pára quando entra em
um estado q tal que δ(q,X) é indefinido
– A M.T. para calcular “monus” pára para
qualquer entrada.
Máquina de Turing e sua
parada
● Suponhamos que sempre pára quando se
aceita uma string.
● As linguagens das M.T. que sempre param
mesmo quando se rejeita uma string são
consideradas recursivas.
Exercícios
● Mostre as D.I.s do Exemplo 1 para: 00,
000111 e 00111
● Projete uma M.T. que reconheça as
seguintes linguagens:
– O conjunto de strings com o número igual de 0s
e 1s.
– {anbncn|n≥1}
– {wwR| w∈{0,1}*}
Exercícios
● Considere a seguinte Máquina de Turing:
M = ({q0,q1,q2,qf},{0,1},{0,1,B},δ,q0,B,{qf})
Descreva o que faz M se δ for definida com
a) δ(q0,0)=(q1,1,R); δ(q1,1)=(q1,1,R); δ(q1,B)=(qf,B,R)
b) δ(q0,0)=(q0,B,R); δ(q0,1)=(q1,B,R);
δ(q1,1)=(q1,B,R); δ(q1,B)=(qf,B,R)
c) δ(q0,0)=(q1,1,R); δ(q1,1)=(q2,0,L); δ(q2,1)=(q0,1,R);
δ(q1,B)=(qf,B,R)
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

Aula 10 minimizaçãode automato
Aula 10   minimizaçãode automatoAula 10   minimizaçãode automato
Aula 10 minimizaçãode automato
wab030
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
L’Université Hassan 1er Settat
 

Mais procurados (20)

Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Aula 10 minimizaçãode automato
Aula 10   minimizaçãode automatoAula 10   minimizaçãode automato
Aula 10 minimizaçãode automato
 
Turing machine Introduction
Turing machine IntroductionTuring machine Introduction
Turing machine Introduction
 
Basic Traversal and Search Techniques
Basic Traversal and Search TechniquesBasic Traversal and Search Techniques
Basic Traversal and Search Techniques
 
Dynamic programming - fundamentals review
Dynamic programming - fundamentals reviewDynamic programming - fundamentals review
Dynamic programming - fundamentals review
 
Ngrams smoothing
Ngrams smoothingNgrams smoothing
Ngrams smoothing
 
Satisfiability
SatisfiabilitySatisfiability
Satisfiability
 
Lisp Programming Languge
Lisp Programming LangugeLisp Programming Languge
Lisp Programming Languge
 
Formal Languages and Automata Theory unit 2
Formal Languages and Automata Theory unit 2Formal Languages and Automata Theory unit 2
Formal Languages and Automata Theory unit 2
 
Lecture Notes-Finite State Automata for NLP.pdf
Lecture Notes-Finite State Automata for NLP.pdfLecture Notes-Finite State Automata for NLP.pdf
Lecture Notes-Finite State Automata for NLP.pdf
 
Turing Machine
Turing MachineTuring Machine
Turing Machine
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Artificial Intelligence: The Nine Phases of the Expert System Development Lif...
Artificial Intelligence: The Nine Phases of the Expert System Development Lif...Artificial Intelligence: The Nine Phases of the Expert System Development Lif...
Artificial Intelligence: The Nine Phases of the Expert System Development Lif...
 
Lecture Notes-Are Natural Languages Regular.pdf
Lecture Notes-Are Natural Languages Regular.pdfLecture Notes-Are Natural Languages Regular.pdf
Lecture Notes-Are Natural Languages Regular.pdf
 
10CSL67 CG LAB PROGRAM 3
10CSL67 CG LAB PROGRAM 310CSL67 CG LAB PROGRAM 3
10CSL67 CG LAB PROGRAM 3
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
 
R packages
R packagesR packages
R packages
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Recent Advances in Natural Language Processing
Recent Advances in Natural Language ProcessingRecent Advances in Natural Language Processing
Recent Advances in Natural Language Processing
 

Semelhante a 01 maquinas de turing

Apresentacao N P Completude Loiane
Apresentacao  N P Completude  LoianeApresentacao  N P Completude  Loiane
Apresentacao N P Completude Loiane
Loiane Groner
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
wab030
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
Ricardo Bolanho
 

Semelhante a 01 maquinas de turing (20)

05 indecibilidade
05 indecibilidade05 indecibilidade
05 indecibilidade
 
Teoria da Computação
Teoria da ComputaçãoTeoria da Computação
Teoria da Computação
 
07 intratablilidade
07 intratablilidade07 intratablilidade
07 intratablilidade
 
07 intratablilidade
07 intratablilidade07 intratablilidade
07 intratablilidade
 
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
 
Apresentacao N P Completude Loiane
Apresentacao  N P Completude  LoianeApresentacao  N P Completude  Loiane
Apresentacao N P Completude Loiane
 
Python
PythonPython
Python
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
 
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
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Estudos sobre PROBLEMAS P-NP-NP-COMPLETO.pptx
Estudos sobre PROBLEMAS P-NP-NP-COMPLETO.pptxEstudos sobre PROBLEMAS P-NP-NP-COMPLETO.pptx
Estudos sobre PROBLEMAS P-NP-NP-COMPLETO.pptx
 
Programação Lógica com Restrições
Programação Lógica com RestriçõesProgramação Lógica com Restrições
Programação Lógica com Restrições
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
 
Floyd-Warshall
Floyd-WarshallFloyd-Warshall
Floyd-Warshall
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Definições de Máquinas de Turing
Definições de Máquinas de TuringDefinições de Máquinas de Turing
Definições de Máquinas de Turing
 
Introducao ao python
Introducao ao pythonIntroducao ao python
Introducao ao python
 
Topicos de econometria de séries temporais 2020_1
Topicos de econometria de séries temporais 2020_1Topicos de econometria de séries temporais 2020_1
Topicos de econometria de séries temporais 2020_1
 

Mais de Yuri Passos

Mais de Yuri Passos (18)

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
 
04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf
 
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
 
02 maquinas de turing modificadas
02 maquinas de turing modificadas02 maquinas de turing modificadas
02 maquinas de turing modificadas
 
04 tese de church-turing
04 tese de church-turing04 tese de church-turing
04 tese de church-turing
 
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
 
Aula04 ponteiros e conversao
Aula04   ponteiros e conversaoAula04   ponteiros e conversao
Aula04 ponteiros e conversao
 
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
 
Aula01
Aula01Aula01
Aula01
 
Aula05
Aula05Aula05
Aula05
 

Último (7)

Planejamento do viveiro de mudas florestais
Planejamento do viveiro de mudas florestaisPlanejamento do viveiro de mudas florestais
Planejamento do viveiro de mudas florestais
 
Apresentação sobre o cientista linus pauling.pptx
Apresentação sobre o cientista linus pauling.pptxApresentação sobre o cientista linus pauling.pptx
Apresentação sobre o cientista linus pauling.pptx
 
NEUROCIENCIA I (1).ppt aula explicativa 1
NEUROCIENCIA I (1).ppt aula explicativa 1NEUROCIENCIA I (1).ppt aula explicativa 1
NEUROCIENCIA I (1).ppt aula explicativa 1
 
FOUCAULT, Michel. A coragem da verdade.pdf
FOUCAULT, Michel. A coragem da verdade.pdfFOUCAULT, Michel. A coragem da verdade.pdf
FOUCAULT, Michel. A coragem da verdade.pdf
 
Estudo Dirigido Sistema Cardiovascular - 8°.docx
Estudo Dirigido Sistema Cardiovascular - 8°.docxEstudo Dirigido Sistema Cardiovascular - 8°.docx
Estudo Dirigido Sistema Cardiovascular - 8°.docx
 
Historia da Agricultura Agronomia 2017.pptx
Historia da Agricultura Agronomia 2017.pptxHistoria da Agricultura Agronomia 2017.pptx
Historia da Agricultura Agronomia 2017.pptx
 
Bilhete de Identidade sobre o Tungsténio.pptx
Bilhete de Identidade sobre o Tungsténio.pptxBilhete de Identidade sobre o Tungsténio.pptx
Bilhete de Identidade sobre o Tungsténio.pptx
 

01 maquinas de turing

  • 1. Máquinas de Turing Yuri Tavares dos Passos
  • 2. Introdução ● As Máquinas de Turing (M.T.) são úteis para provar que alguns problemas: – não podem ser resolvidos ou – são naturalmente difíceis de se resolver
  • 3. Introdução ● Considere o seguinte problema: – É possível fazer um programa que diga se um program em C pode imprimir na tela “hello worldn”?
  • 5.
  • 6. Introdução ● Envolve o teorema de Fermat – Resolvido recentemente! ● O problema geral sobre impressão de “hello world” é possível ser resolvido?
  • 11. Introdução ● O que acontece com H2 quando H2' imprime “yes”? ● E quando imprime “hello world”?
  • 12. Introdução ● Se H2 imprimir “hello world”, significa que a entrada H2 não imprimiria tal palavra. ● Se H2 não imprimir “hello world”, significa que sua entrada H2 imprimiria tal palavra ● Absurdo!
  • 13. Linguagens e Problemas ● Nesta disciplina trataremos linguagens como se fossem problemas a serem resolvidos – Pertinência de um string w a uma linguagem L: – Dado uma cadeia w em ∑* , definir se w está ou não em L.
  • 14. Linguagens e Problemas ● Exemplo: O problema de testar se um número binário é primo. ● Lp é o conjunto das cadeias dos números binários que representam um número binário.
  • 15. Linguagens e Problemas ● Na prática, decidir se faz parte ou não de um conjunto não generaliza a noção de problema. – Um analisador sintático além de responder sim ou não, também gera uma árvore sintática.
  • 16. Linguagens e Problemas ● Em alguns momentos, estamos usando linguagens não como problemas de decisão: – {0n1n|n≥1} ● Consideramos problemas de decisão quando queremos provar que ele é difícil
  • 17. Linguagens e Problemas ● Exemplo: Reconhecer se um arquivo texto em ASCII pertence a linguagem dos programas C. – Um compilador C converte um arquivo ASCII para executável. – Se o problema de reconhecimento fosse mais fácil que a conversão, então usaríamos o conversor para reconhecer.
  • 18. Linguagens e Problemas ● Teríamos uma contradição a hipótese: se o teste de pertinência a C é difícil, o problema da conversão também é difícil.
  • 20. Máquina de Turing ● Motivação de seu estudo: – Provar para o programador que existem problemas que não podem ser resolvidos – Provar que alguns problemas podem ser resolvidos, mas usam um período de tempo muito grande ● Convencer ao programador que apenas algumas instâncias do problema bem especificadas podem ser resolvidas em tempo hábil
  • 21. Máquina de Turing ● Máquina abstrata – Seria ineficiente construí-la no mundo real ● Utilizar programas em uma linguagem (C, Java) dificultam as provas, pois: – Cada estado de um programa é representado pelas suas variáveis – Mais difícil de adaptar problemas como “uma gramática é ambígua?”, “uma fórmula booleana pode assumir V como resultado?”
  • 22. Máquina de Turing ● Histórico: – David Hilbert indagou se era possível encontrar um algoritmo para determinar a falsidade ou verdade de uma proposição matemática. – Kurt Gödel demonstrou o teorema da incompletude. – Diversas noções de computação vieram à tona. ● Funções recursivas de Alonzo Church e outras. – Turing propôs a M.T.
  • 24. Máquina de Turing ● M = (Q,Σ,Г,δ,q0,B,F) ● Q é o conjunto de estados ● Σ é o alfabeto de entrada ● Г é o alfabeto de saída, ou símbolos da fita. – Σ⊂Г ● δ é a funçao de transição – δ: Q x Г→ Q x Г x {E,D} – {E,D} = {L,R} = {←,→}
  • 25. Máquina de Turing ● q0 é o estado inicial. – q0∈Q ● B é o simbolo branco. – B∈Г e B∉Σ ● F é o conjunto de estados finais. – F⊆Q
  • 26. Descrição instantânea ● Notação para descrever o que faz a M.T. ● Suponhamos que a esquerda e a direita de uma D.I. (ou ID) é infinitamente branco. X1 X2 ...Xi-1 qXi Xi+1 ...Xn
  • 27. Descrição instantânea ● Usamos ⊢ para refletir um movimento ● Usamos ⊢* para indicar zero ou mais movimentos ● Suponha δ(q,Xi) = (p,Y,L) – X1X2...Xi-1qXiXi+1...Xn⊢X1X2...pXi-1YXi+1...Xn ● Suponha δ(q,Xi) = (p,Y,R) – X1X2...Xi-1qXiXi+1...Xn⊢X1X2...Xi-1YpXi+1...Xn
  • 28. Descrição instantânea ● Se i=1 e movimento à esquerda: – qX1X2...Xn⊢qBX1X2...Xn ● Se i=n, Y=B e movimento à esquerda: – X1X2...Xn-1qXn⊢X1X2...Xn-2pXn-1
  • 29. Descrição instantânea ● Se i=1, Y=B e movimento à direita: – qX1X2...Xn p⊢ X2...Xn ● Se i=n e movimento à direita: – X1X2...Xn-1qXn⊢X1X2...Xn-2YpB
  • 30. Exemplo 1 ● Uma M.T. Para reconhecer {0n1n|n≥1} ● M = ({q0,q1,q2,q3,q4},{0,1},{0,1,X,Y,B},δ,q0,B, {q4})
  • 32. Exemplo 1 ● q0: estado inicial e M entra toda vez que retorna ao 0 restante mais à esquerda. ● q1: indica que deve ir a direita enquanto for 0 ou Y, troca 1 por Y e anda à direita para encontrar novos Ys. ● q2: volta a esquerda até encontrar um X, andando à esquerda enquanto for Y ou 0.
  • 33. Exemplo 1 ● q3: lê Ys até encontrar um B a direita. ● q4: estado final, indica que foi reconhecida a palavra. Trava para indicar reconhecimento!
  • 34. Exemplo 1 q00011 X⊢ q1011 X0⊢ q111 X⊢ q20Y1⊢q2X0Y1⊢ Xq00Y1 XX⊢ q1Y1 XXY⊢ q11 XX⊢ q2YY⊢ Xq2XYY XX⊢ q0YY XXY⊢ q3Y XXYY⊢ q3B⊢ XXYYBq4B
  • 35. Exemplo 1 q00010 X⊢ q1010 X0⊢ q110 X⊢ q20Y0⊢q2X0Y0⊢ Xq00Y0 XX⊢ q1Y0 XXY⊢ q10 XXY0⊢ q1B
  • 37. Exemplo 2 ● Ao invés de reconhecer uma linguagem, uma M.T. para calcular. – m∸n = max(m-n,0) ● M = ({q0, … ,q6},{0,1},{0,1,B},δ,q0,B,{}) ● Entrada é da forma: 0m10n – 0000100 = 4∸2 ● Saída é da forma: 0m∸n
  • 40. Exemplo 2 ● q0: estado inicial. Inicia o ciclo de substituição de 0 por B. Vai para q5 se encontrar 1. ● q1: Pesquisa à direita, passando por 0s até achar 1. Em seguida vai para q2. ● q2: Salta 1s até encontrar 0. Vai para q4 se encontrar B e vai para q3 se encontrar 0, substituindo-o por 1
  • 41. Exemplo 2 ● q3: M se move à esquerda até encontrar B. Ao encontrar muda para q0. ● q4: Subtração está completa, mas um 0 sem correspondência foi encontrado.Troca o 1 por B. ● q5: Troca os símbolos restantes por B ao final do cálculo.
  • 42. Exemplo 2 ● q6:Pára a máquina quando termina o cálculo.
  • 44. Linguagens aceitas pela M.T. ● Seja M = (Q,Σ,Г,δ,q0,B,F) ● L(M) é o conjunto de strings w tais que q0w ⊢* αpβ para algum p∈F e quaisquer strings α e β. ● O conjunto das linguagens aceitas por M.T. são chamadas de linguagens recursivamente enumeráveis. – Recursiva vem de formalismos computacionais anteriores à M.T. – Enumeráveis vem da noção que tais strings podem ser enumeradas (colocadas em ordem) assim como os conjuntos enumeráveis (ℕ,ℤ,ℚ)
  • 45. Máquina de Turing e sua parada ● A noção de aceitação está relacionada comumente a parada da M.T. – Reconhecimento de {0n1n|n≥1} ● Dizemos que a M.T. pára quando entra em um estado q tal que δ(q,X) é indefinido – A M.T. para calcular “monus” pára para qualquer entrada.
  • 46. Máquina de Turing e sua parada ● Suponhamos que sempre pára quando se aceita uma string. ● As linguagens das M.T. que sempre param mesmo quando se rejeita uma string são consideradas recursivas.
  • 47. Exercícios ● Mostre as D.I.s do Exemplo 1 para: 00, 000111 e 00111 ● Projete uma M.T. que reconheça as seguintes linguagens: – O conjunto de strings com o número igual de 0s e 1s. – {anbncn|n≥1} – {wwR| w∈{0,1}*}
  • 48. Exercícios ● Considere a seguinte Máquina de Turing: M = ({q0,q1,q2,qf},{0,1},{0,1,B},δ,q0,B,{qf}) Descreva o que faz M se δ for definida com a) δ(q0,0)=(q1,1,R); δ(q1,1)=(q1,1,R); δ(q1,B)=(qf,B,R) b) δ(q0,0)=(q0,B,R); δ(q0,1)=(q1,B,R); δ(q1,1)=(q1,B,R); δ(q1,B)=(qf,B,R) c) δ(q0,0)=(q1,1,R); δ(q1,1)=(q2,0,L); δ(q2,1)=(q0,1,R); δ(q1,B)=(qf,B,R)
  • 49. 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