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 Máquina de.

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 Máquina de."— 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 Máquina de Turing Teoria da Computação

2 Máquina de Turing 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 M1 = 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 Definição Formal:
Uma MT é uma 7-tupla < Q, , , , q0 , qaceitação, qrejeição >, 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 }. q0  Q é o estado inicial. qaceitação  Q é o estado de aceitação. qrejeição  Q é o estado de rejeição.

8 Máquina de Turing Configuração Inicial q0 w  1011q7011 
onde w = w1w2 ... wn  * nas primeiras n posições da fita com o resto preenchido c/ B e o cabeçote posicionado no primeiro símbolo w1. Uma configuração C qualquer é representada por: u q v onde u e v  *. 1011q 

9 Máquina de Turing Supondo que temos a, b e c em , bem como u e v em * e estados qi e qj, dizemos que : u a qi b v produz u qj a c v se (qi ,b) = (qj, c, L) u a qi b v produz u a c qj v se (qi ,b) = (qj, c, R) Casos Especiais : A configuração qi b v produz qj c v se (qi ,b) = (qj, c, L) A configuração u a qi é equivalente a u a qi 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 é qaceitação. Uma configuração de rejeição é uma configuração onde o estado da configuração é qrejeição. Uma máquina de Turing M aceita uma entrada w. Se existe uma sequência de configuração C1,C2, ... , Ck, onde : C1 é a configuração inicial de M p/ entrada w. Ci produz Ci+1. 1  i  k-1 Ck é 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 qrejeiçã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 = { 02n : n  0 }
Q = (q1, q2, q3, q4, q5, qaceita, qrejeita),  = {0}, e  = {0,x,}. q0 = q1 qaceita q1 q2 q4 q5 q3 qrejeita   R x  R 0  , R 0  x, R 0  L x  L   L 0  R

13 Variantes de MT: Multifitas
Cada fita tem seu cabeçote de leitura/escrita. Inicialmente, entrada na fita 1 e demais com λ. 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, δ(qi,a1,...,ak) = (qj,b1,...,bk,L,R,...L} Significa que, se a máquina está no estado qi, lendo simultaneamente os símbolos a1,...,ak nas k fitas, ela vai para o estado qj, escreve os símbolos b1,...bk 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: Prova:
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:
Fazer D tentar todos os possíveis ramos da computação não-determinística. 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.

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. Copiar a fita 1 na fita 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. 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: Prova:
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: Corolário:
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 s1, s2, s3, ... é uma lista de todas as cadeias possíveis sobre *. E = “Ignore a entrada. Repita o seguinte para i = 1, 2, 3, ... 1. Execute M i vezes para cada entrada, s1,s2,s3,..., si. 2. Se alguma das computações aceita, imprima o sj correspondente.”

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

28 Máquina Universal AMT = {<M, w> | M é uma MT e aceita w}
Teorema 17: AMT é Turing-reconhecível. Prova: U= “Com entrada <M, w>, 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 <M,w> 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 Máquina de."

Apresentações semelhantes


Anúncios Google