A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.

Apresentações semelhantes


Apresentação em tema: "Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da."— Transcrição da apresentação:

1 Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da Computação Máquina de Turing

2 Memória ilimitada e irrestrita Inicialmente a fita contém apenas a entrada (palavra) e o resto é branco. Se a máquina precisa armazenar informação ela pode escrever essa informação na fita.

3 Máquina de Turing Para ler a informação que está na fita, a máquina pode mover o cabeçote para trás A máquina continua computando até que possa produzir uma saída As saídas aceitação e rejeição são obtidas quando a máquina entra nos estados projetados para tal. Se ela não vai para um desses estados, ela pode entrar em loop.

4 Máquina de Turing Diferenças entre autômato finito e máquina de Turing : A máquina de Turing pode tanto ler quanto escrever na fita O cabeçote pode se mover tanto para a frente quanto para trás. A fita é infinita Os estados especiais de aceitação e rejeição tem efeito imediato A máquina de Turing pode não parar.

5 Máquina de Turing Exemplo: Uma máquina de Turing para reconhecer a linguagem : L = { w#w : w {0,1}* }. Estratégia : Zig-Zag para os lugares (símbolos) correspondentes aos 2 lados do # e determinar se eles casam. Usar marcas para conservar traço de qual lugar (símbolo) corresponde. Se todos os símbolos respectivos casarem, ir para o estado de aceitação.

6 Máquina de Turing M 1 = Com entrada w : Scanear a entrada para estar certo que ela contém um simples #. Senão, rejeitar. Zig-Zag através da fita para posição correspondentes relativas à # para checar se essas posições contém o mesmo símbolo. Senão, rejeitar. Marcar símbolos à medida em que eles são checados para conservar traço de qual símbolo corresponde. Quando todos os símbolos à esquerda do # estiverem marcados, checar para símbolos remanescentes do lado direito. Se existir símbolo, rejeitar, senão, aceitar.

7 Máquina de Turing Uma MT é uma 7-tupla, onde : Q : conjunto finito de estados : é o alfabeto de entrada não contendo B. : é o alfabeto da fita, onde B e. : Q x Q x x { L, R }. q 0 Q é o estado inicial. q aceitação Q é o estado de aceitação. q rejeição Q é o estado de rejeição. Definição Formal:

8 Máquina de Turing Configuração Inicial q 0 w onde w = w 1 w 2... w n * nas primeiras n posições da fita com o resto preenchido c/ B e o cabeçote posicionado no primeiro símbolo w 1. Uma configuração C qualquer é representada por: u q v onde u e v *. 1011q 7 011

9 Máquina de Turing Supondo que temos a, b e c em, bem como u e v em * e estados q i e q j, dizemos que : 1.u a q i b v produz u q j a c v se (q i,b) = (q j, c, L) 2.u a q i b v produz u a c q j v se (q i,b) = (q j, c, R) Casos Especiais : 1.A configuração q i b v produz q j c v se (q i,b) = (q j, c, L) 2.A configuração u a q i é equivalente a u a q i B

10 Máquina de Turing: aceitação/rejeição A configuração de aceitação é uma configuração onde o estado da configuração é q aceitação. Uma configuração de rejeição é uma configuração onde o estado da configuração é q rejeição. Uma máquina de Turing M aceita uma entrada w. Se existe uma sequência de configuração C 1,C 2,..., C k, onde : 1.C 1 é a configuração inicial de M p/ entrada w. 2.C i produz C i+1. 1 i k-1 3.C k é uma configuração de aceitação. O conjunto de palavras que M aceita é a linguagem de M.

11 Máquina de Turing Uma linguagem é Turing-reconhecível se existe alguma máquina de Turing que a reconheça. Operando uma MT sobre uma entrada, três possibilidades podem existir : aceitação, rejeição e loop. Uma MT pode não aceitar uma entrada por entrar no estado q rejeição ou por nunca parar (loop). Uma MT que sempre pára é chamada um decididor. Um decididor que reconhece alguma linguagem também é dito decidir aquela linguagem. Uma linguagem é Turing-decidível se alguma máquina de Turing a decide. Toda linguagem Turing-decidível é Turing-reconhecível. O inverso não é verdadeiro.

12 Máquina de Turing M : L = { 0 2n : n 0 } Q = (q 1, q 2, q 3, q 4, q 5, q aceita, q rejeita ), = {0}, e = {0,x, }. q 0 = q 1 q aceita q1q1 q2q2 q4q4 q5q5 q3q3 q rejeita R x R 0, R 0 x, R 0 L x L L 0 R0 x, R R x R R R

13 Variantes de MT: Multifitas 1. Cada fita tem seu cabeçote de leitura/escrita. 2. Inicialmente, entrada na fita 1 e demais com λ. 3. Transição implica em ler/escrever/mover sobre todas as fitas simultaneamente :

14 Variantes de MT: Multifitas δ : Q x г k Q x г k x { L,R} k ou seja, δ(q i,a 1,...,a k ) = (q j,b 1,...,b k,L,R,...L} Significa que, se a máquina está no estado q i, lendo simultaneamente os símbolos a 1,...,a k nas k fitas, ela vai para o estado q j, escreve os símbolos b 1,...b k nas fitas respectivas e move cada cabeçote conforme especificado.

15 Variantes de MT:Multifitas Teorema 14: Toda MT multi-fita M tem uma MT de uma fita S equivalente.

16 Variantes de MT Corolário: Uma linguagem é Turing-reconhecível se e somente se alguma MT multifita a reconhece. Prova: ) Uma linguagem é Turing-reconhecível se existe uma MT que a reconheça (definição). Como uma MT convencional (1-fita) é um caso particular de MT multifita, então se uma linguagem é Turing- reconhecível,ela é reconhecível por alguma MT multifita.

17 Variantes de MT Cont. da prova: ) Se uma linguagem é reconhecida por uma MT multifita, então ela é reconhecida por uma MT convencional (1-fita) equivalente (teorema14). Então, ela é Turing-reconhecível.

18 Não-determinismo A função de transição para uma máquina de Turing não determinística é da seguinte forma: : Q × P(Q × × {L, R}) A computação de uma máquina de Turing não determinística é uma árvore cujos nodos correspondem às diferentes possibilidades para a máquina.

19 Não-determinismo Teorema 15: Toda MT não-determística N tem uma equivalente determinística D.

20 Não-determinismo Prova: Fita 1 contém w (entrada). Não é modificada. Fita 2 contém cópia de trabalho de w Fita 3 contém um ramo (finito) de escolha. Fazer D tentar todos os possíveis ramos da computação não-determinística.

21 Não-determinismo D = Inicialmente, a fita 1 contém a cadeia de entrada w, e as fitas 2 e 3 estão vazias. 1.Copiar a fita 1 na fita 2. 2.Usar a fita 2 para simular a entrada w em uma das possibilidades da computação não determinística. Antes de cada passo de N, consulte o próximo símbolo na fita 3 para determinar que escolha tomar entre as permitidas pela função de transição de N. Se não restam mais símbolos na fita 3, ou se esta opção não determinística for inválida, cancele esta execução, indo para o estado 4. Vá também para o estado 4 se uma configuração de rejeição for encontrada. Se um estado final (de aceitação) for encontrado, aceite a entrada. 3.Substitua a cadeia na fita 3 com a próxima cadeia. Simule a próxima execução de N indo de volta para o estágio 1.

22 Não-determinismo Corolário: Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing não determinística a reconhece. Prova: ) Qualquer MT determinística é automaticamente uma MT não determinística ) Ver Teorema 2.

23 Não-determinismo Definição: Uma MT não determinística é um decididor se todos os ramos param para todas as entradas. Corolário: Uma linguagem é decidível se e somente se alguma MT não determinística a decide.

24 Enumerador Inicialmente fita vazia Se não pára, pode imprimir uma lista infinita de palavras A linguagem enumerada por E é a coleção de todas as palavras que ele eventualmente imprime Pode gerar as palavras da linguagem em qualquer ordem, possivelmente com repetição

25 Enumerador Teorema 16: Uma linguagem é Turing-reconhecível se e somente se algum enumerador a gera. Prova: )Se existe um E para uma linguagem A, então uma TM M a reconhece. 1. Execute E. Cada vez que E imprime uma palavra compare-a com w. 2. Se w aparece como uma saída de E, aceitar. Claramente, M aceita as cadeias que aparecem na lista gerada por E. M = Para a entrada w:

26 Enumerador ) Se a MT M reconhece A, podemos construir o enumerador E que a gera. Digamos s 1, s 2, s 3,... é uma lista de todas as cadeias possíveis sobre *. E = Ignore a entrada. Repita o seguinte para i = 1, 2, 3, Execute M i vezes para cada entrada, s 1,s 2,s 3,..., s i. 2. Se alguma das computações aceita, imprima o s j correspondente.

27 Representar naturais como strings de 0s, ou seja, i > 0, é representado 0 i. Se uma função tem n argumentos, então n naturais são colocados na fita como um string de 0s separados por 1: 0 i 10 i in. (Funções de N n em N). Se a máquina pára no estado de aceitação com a fita consistindo apenas de 0 m, para algum m > 0, dizemos então que f(i 1,i 2,...i n ) = m, isto é, a máquina computa o valor de f para a entrada i 1,i 2,...,i n. Se f(i 1,...i n ) é definida para todos i 1,...i n e existe uma MT que a compute, dizemos que f é uma função total recursiva. Se f(i 1,...,i n ) é parcialmente definida para i 1,...i n e existe uma MT que a compute, dizemos que f é uma função parcial recursiva. Calculadora de Função

28 Máquina Universal A MT = { | M é uma MT e aceita w} Teorema 17: A MT é Turing-reconhecível. Prova: U= Com entrada, onde M é uma MT e w um string: Simular M com entrada w. Se M entra no estado de aceitação, aceitar. Se M entra no estado de rejeição, rejeitar.

29 Máquina Universal U entra em loop com entrada se M entra em loop com entrada w. A máquina U é chamada Máquina de Turing Universal, porque ela é capaz de simular qualquer outra máquina de Turing a partir de sua descrição.


Carregar ppt "Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da."

Apresentações semelhantes


Anúncios Google