Aula 10 maquinade turing

2,912 views

Published on

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,912
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
88
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula 10 maquinade turing

  1. 1. Curso: Ciência da Computação Turma: 6ª Série Teoria da Computação Aula 14Máquina de Turing – Máquina de Post
  2. 2. Planejamento● Hoje tem entrega da ATPS.● Combinar aula da próxima semana.● Nossa avaliação é dia 29 de Novembro.● Exercícios de Máquinas Universais.
  3. 3. Máquina de Turing Foi proposta por Alan Turing em 1936 e é universalmente conhecida e aceita como formalização de algoritmo. Trata-se de ummecanismo simples que formaliza a ideia de umapessoa que realiza cálculos. O modelo possui no mínimo, o mesmo poder computacional de qualquer computador de propósito geral. 3 Teoria da Computação
  4. 4. Noção Intuitiva O ponto de partida de Turing foi analisar a situação na qual uma pessoa, equipada com um instrumento de escrita e um apagado, realiza cálculos numa folha de papel, organizada em quadrados.Inicialmente, suponha que a folha de papel contémsomente os dados iniciais do problema. O trabalho dapessoa pode ser resumido em sequências de operaçõessimples como segue:● Ler um símbolo de um quadrado;● Alterar um símbolo em um quadrado;● Mover os olhos para outro quadrado. 4 Teoria da Computação
  5. 5. Noção IntuitivaQuando é encontrada alguma representação satisfatória para a respostadesejada, a pessoa termina seus cálculos.Hipóteses para o cálculos com a Máquina de Turing:● A natureza bidimensional do papel não é um requerimento essencial para os cálculos. Pode ser assumido que o papel consiste de uma fita infinita organizada em quadrados;● O conjunto de símbolos pode ser finito, pois se pode utilizar sequências de símbolos;● O conjunto de estados da mente da pessoa durante o processo de cálculo é finito. Mais ainda, entre esses estados, existem dois em particular: “estado inicial” e “estado final”, correspondendo ao início e ao fim dos cálculos, respectivamente;● O comportamento da pessoa a cada momento é determinado somente pelo seu estado presente e pelo símbolo para o qual sua atenção está voltada.● A pessoa é capaz de observar e alterar o símbolo de apenas um quadrado de cada vez, bem como de transferir sua atenção somente para um dos quadrados adjacentes. 5 Teoria da Computação
  6. 6. Máquina de TuringÉ constituída por três partes:(a) Fita. Usada simultaneamente como dispositivo de entrada, de saída e de memória do trabalho;(b) Unidade de Controle. Reflete o estado corrente da máquina. Possui uma unidade de leitura e gravação (cabeça da fita), a qual acessa uma célula da fita de cada vez e movimenta-se para a esquerda ou para a direita;(c) Programa ou Função de Transição. Função que define o estado da máquina e comanda as leituras, as gravações e o sentido de movimento da cabeça. 6 Teoria da Computação
  7. 7. Fita e Unidade de Controle Branco Início da Fita Entrada Θ a b b b c a β β a b ... Fita Infinito ControleA unidade de controle possui um número pré-definido de estados.A cabeça da fita lê o símbolo de uma célula de cada vez e gravaum novo símbolo. Após a leitura/gravação (a gravação é realizadana mesma célula de leitura), a cabeça move uma célula para adireita ou para a esquerda. O símbolo gravado e o sentido domovimento são definidos pelo programa. 7 Teoria da Computação
  8. 8. Modelo FormalUma Máquina de Turing é um 8-upla: M = (∑, Q, ∏, q0, F, V, β, Ö)onde:∑: alfabeto de símbolos de entrada;Q: conjunto de estados possíveis da máquina, o qual é finito;∏ : Programa ou função de transição; ∏ : Qx( ∑ U V U {β, Ö}) → Qx( ∑ U V U {β, Ö}) x {E,d} a qual é uma funçãoparcial;q0: Estado inicial da máquina tal que q0 é elemento de Q;F: Conjunto de estados finais tal que F está contido em Q;V: Alfabeto auxiliar;β: Símbolo especial branco;Ö: Marcador de início da fita. 8 Teoria da Computação
  9. 9. Modelo Formal cont.O símbolo de início de fita ocorre exatamente uma vez e sempre nacélula mais à esquerda da fita, auxiliando na identificação de que acabeça da fita se encontra na célula mais à esquerda da fita. A funçãoprograma (função):considera para determinarestado corrente novo estadosímbolo lido da fita símbolo a ser gravado sentido de movimente da cabeça, onde esquerda e direita são representados por E e D respectivamenteAssim tem-se que:∏ (estado corrente, símbolo lido) = (novo estado, símbolo gravado,sentido do movimento)ou seja suponha p, q є Q, au ,av є ( ∑ U V U {β, Ö}) em є {E,D}):π (p, au) = (q, av, m) 9 Teoria da Computação
  10. 10. Função ProgramaA função programa pode ser interpretada comoum grafo finito direto: (au,av,m) p q sentido novo estado símbolo do estado corrente lido movimento símbolo gravadoAdicionalmente, a função programa pode serrepresentada na forma de tabela. Como seriauma tabela para representar a funçãoprograma??? 5 minutos para pensar Teoria da Computação 10
  11. 11. Tabela Função Programaπ Ö ... au ... av ... βp (q,av,m)q 11 Teoria da Computação
  12. 12. Máquina de TuringO processamento de uma Máquina de Turing M = (∑, Q, π, q0, F, β, Ö)para uma palavra de entrada w consiste na sucessiva aplicação dafunção programa a partir do estado inicial q0 e da cabeça posicionada nacélula mais à esquerda da fita, até ocorrer uma condição de parada. Oprocessamento de M para a entrada w pode parar ou ficar um loopinfinito. A parada pode ser de duas maneiras: aceitando ou rejeitando aentrada w. As condições de parada são as seguintes:(a) Estado Final: A máquina assume um estado final: a máquina para e a palavra é aceita;(b) Função indefinida: A função programa é indefinida para o argumento (símbolo lido e estado corrente): a máquina pára e a palavra de entrada é rejeitada;(c) Movimento inválido: O argumento corrente da função programa define um movimento à esquerda e a cabeça da fita já se encontra na célula mais à esquerda: a máquina para e a palavra de entrada é rejeitada. 12 Teoria da Computação
  13. 13. Máquina de Turing como Reconhecedores de LinguagensUma das abordagens do estudo das Máquinas de Turing ou máquinas universais é como reconhecedores de linguagens, ou seja,dispositivos capazes de determinar se uma dada palavra sobre o alfabeto de entrada pertence ou não a uma certa linguagem. 13 Teoria da Computação
  14. 14. Linguagem Aceita por uma Máquina de TuringSeja M = (∑, Q, ∏ , q0, F, β, Ö) uma máquina de Turing. Então:a) A Linguagem Aceita por M, denotada por ACEITA(M) ou L(M), éo conjunto de todas as palavras pertencentes a ∑* aceitas por M,ou seja: ACEITA(M) = {w | M ao processar w є ∑* pára em um estado q fє F}b) A Linguagem Rejeitada por M, denotada por REJEITA(M) é oconjunto de todas as palavras de ∑* rejeitadas por M, ou seja: REJEITA(M) = {w | M ao processar w є ∑* pára em um estadoq não є F}c) A linguagem para qual M fica em loop infinito, denotada porLOOP(M), é o conjunto de todas as palavras de ∑* para as quaisM fica processando indefinidamente. 14 Teoria da Computação
  15. 15. Mais informações sobre Máquina de Turing e Reconhecimento de Linguagens● ACEITA(M) U REJEITA(M) U LOOP(M) = ∑*● ACEITA(M) ∩ REJEITA(m) = Ø● ACEITA(M) ∩ LOOP(M) = Ø● REJEITA(M) ∩ LOOP(M) = Ø e, portanto:● ACEITA(M) ∩ REJEITA(M) ∩ LOOOP(M) = Ø Consequentemente, o complemento de:● ACEITA(M) é REJEITA(M) U LOOP(M)● REJEITA(M) é ACEITA(M) U LOOP(M)● LOOP(M) é ACEITA(M) U REJEITA(M) ou seja, uma Máquina de Turing como reconhecedor particiona o conjunto de palavras sobre o alfabeto ∑ em classes de equivalência. 15 Teoria da Computação
  16. 16. Máquina de Turing – Duplo BalanceamentoConsidere a linguagem: Duplo_Bal = {anbn | n>=0} Quais são as palavras aceitas por essa linguagem???A Máquina de Turing: MT_Duplo_Bal = ({a,b}, {q0,q1,q2,q3,q4}, ∏, q0 , {q4}, {A,B}, β, Ö} étal que: ACEITA(MT_Duplo_Bal) = Duplo_Bal REJEITA(MT_Duplo_Bal) = ∑* - Duplo_BalE, portanto, LOOP(MT_Duplo_Bal) = Ø----------------------------------------------------------------------------------------O algoritmo apresentado reconhece o primeito símbolo a, o qual émarcado como A, e movimenta a cabeça da fita à direita, procurando o bcorrespondente, o qual é marcado como B. Este ciclo é repetidosucessivamente até identificar para cada a o seu correspondente b.Adicionalmente, o algoritmo garante que qualquer outra palavra que não 16esteja na forma a b é rejeitada.Note-se que o símbolo de início da fita n n Teoria da Computação
  17. 17. Máquina de Turing – Duplo BalanceamentoO algoritmo apresentado reconhece o primeiro símbolo a, o qual émarcado como A, e movimenta a cabeça da fita à direita,procurando o b correspondente, o qual é marcado como B. Esteciclo é repetido sucessivamente até identificar para cada a o seucorrespondente b. Adicionalmente, o algoritmo garante quequalquer outra palavra que não esteja na forma anbn érejeitada.Note-se que o símbolo de início da fita não tem influênciana solução proposta. 17 Teoria da Computação
  18. 18. 18Teoria da Computação
  19. 19. Sequência de Processamento da Máquina de Turing para a Sequência aabb 19 Teoria da Computação
  20. 20. Máquina de Turing – Duplo BalanceamentoEssa linguagem é um exemplo clássico e de fundamental importância noestudo das linguagens, por permite estabelecer analogia com linguagensque possuem duplo balanceamento como, por exemplo:a.Linguagens bloco-estruturadas do tipo BEGINnENDn, com a linguagemde programação Pascal;b. Linguagem com parênteses balanceados na forma (n)n , como asexpressões aritméticas, presentes na maioria das linguagens deprogramação. 20 Teoria da Computação
  21. 21. ExercícioConsidere a Máquina de Turing vista em aula.Verifique qual o estado final após a computaçãopara as seguintes palavras:ababaaabaaaabbb 21 Teoria da Computação
  22. 22. Máquina de PostAssim como Turing, Emil Leon Post propôs, também em 1936, ummodelo de Máquina Universal denominado Máquina de Post.Uma máquina de Post consiste, basicamente, de duas partes:a) Variável X. Trata-se de uma variável do tipo fila e é utilizada comoentrada, saída e memória de trabalho.b) Programa. É uma sequência finita de instruções, representado comoum diagrama de fluxos (espécie de fluxograma), onde cada vértice éuma instrução. As instruções pode ser de quatro tipos: Partida Parada Desvio AtribuiçãoA variável X não possui tamanho nem limites fixos. Seu comprimento éigual ao comprimento da palavra correspondente armazenada. Ossímbolos podem pertencer ao alfabeto de entrada ou a {#}. únicosímbolo auxiliar. Inicialmente, o valor de X é a palavra de entrada. CasoX não contenha símbolos, a entrada é vazia representada por ε. 22 Teoria da Computação
  23. 23. Definição da Máquina de PostUma máquina de Post é uma tripla: M={ ∑, D, #}Onde: ∑ alfabeto de símbolos de entrada; D programa ou diagrama de fluxos construído a partir decomponentes elementares denominados partida, parada, desvio eatribuição; # símbolo auxiliar. 23 Teoria da Computação
  24. 24. Definição da Máquina de PostAs componentes elementares de um diagrama de fluxos são comosegue:a) Partida. Existe somente uma instrução de início (partida) em um partidaprograma.b) Parada. Existem duas alternativas de instruções de parada emum programa, uma de aceitação (aceita) e outra de rejeição(rejeita), representadas como ilustrado ao lado. aceita rejeitac) Desvio ou teste. Determina o fluxo de programa de acordo com osímbolo mais à esquerda da palavra armazenada na variável X(início da fila). Também deve ser prevista a possibilidade de Xconter a palavra vazia. Portanto é um desvio condicional, e trata-sede uma função total, ou seja, definida para todos os valores dodomínio. Assim, se o cardinal de ∑ é n, então existem n+2 arestasde desvios condicionais, pois se deve incluir as possibilidades de #e ε, como ilustrado na figura ao lado, onde X ← ler(X)denota uma leitura destrutiva ou seja, que lê o simbolo maisà esquerda da palavra, retirando da mesma o símbolo lido.d) Atribuição. Concatena o símbolo indicado (pertencente a∑ U {#}) à direita da palavra armazenada na variável X (fim X ← Xsda fila). A operação de atribuição é representada comilustrado ao lado. 24 Teoria da Computação
  25. 25. Máquina de PostEm um diagrama de fluxos, existe somente uma instrução departida, mas podem existir diversas (zero ou mais) instruçõesde parada, tanto de aceitação como de rejeição. Uma palavrade entrada é aceitada ou rejeitada, se a computação, iniciadacom a variável X, contendo a entrada, atingir uma instruçãoaceita ou rejeita, respectivamente. Note-se que éperfeitamente possível uma Máquina de Post ficar em loopinfinito.Em um desvio, se X contém a palavra vazia ε, então segue ofluxo correspondente. Caso contrário, lê o símbolo mais àesquerda da palavra X e o remove após a decisão de qualaresta do fluxo indica a próxima instrução. 25 Teoria da Computação
  26. 26. Exemplo da Máquina de Post – Duplo BalanceamentoConsidere a seguinte linguagem já discutida nessa aula: Duplo_Bal ={anbn | n>= 0}A Máquina de Post: Post_Duplo_Bal = ({a,b}, D, #)Onde D, como ilustrado no próximo slide, é tal que: ACEITA(Post_Duplo_Bal) = Duplo_Bal REJEITA(Post_Duplo_Bal) = ∑* - Duplo_BalE, potanto, LOOP(Post_Duplo_Bal) = Ø 26 Teoria da Computação
  27. 27. Exemplo da Máquina de Post – Duplo BalanceamentoO algoritmo lê e remove o primeiro símbolo a. Apoś, realiza umavarredura circular em busca do correspondente b. Esta varredura érealizada através de sucessivas leitura (remoções), armazenando osímbolo lido à direita de X. Ao encontrar o b, este é removido, e umanova varredura circular é realizada até o fim da palavra de entrada(identificado pelo símbolo auxiliar #, atribuído a X no início doprocessamento). Este ciclo é repetido até restar a palavra vazia ouocorrer alguma condição de rejeição. 27 Teoria da Computação
  28. 28. 28Teoria da Computação
  29. 29. Aplicar a Máquina de Post do Algoritmo Anterior para:● aabb● ab● abb 29 Teoria da Computação
  30. 30. Exercícios1. Elabore uma Máquina de Turing M sobre o alfabeto {a,b} tal que: ACEITA(M) = {w | w inicia com a e, após cada, existe pelo menos um b} LOOP(M) = {w | w não є ACEITA(MP) e existe pelo menos um b entre dois a} REJEITA(M) = {a,b}* - (ACEITA(M) U LOOP(M)) Por exemplo: ab, abbab є ACEITA(MP) b, aba, abbaba є REJEITA(MP)2. Compare o algoritmo da Máquina de Turing com o da Máquina de Post para Duplo_Bal. Qualvocê acha que é mais eficiente. Teça seus comentários a respeito dos dois algoritmos.3, Elabore uma Máquina de Post sobre o alfabeto {a,b} tal que: ACEITA(P) = {ANBN | m>n>=0} REJEITA(P) = {a,b}* - ACEITA(P) 30 Teoria da Computação

×