Teoria da Computação

19
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias http://teoria.computacao.googlep ages.com / [email protected] UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências da Computação

description

UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências da Computação. Teoria da Computação. MÁQUINA DE TURING (Continuação) Fabrício Dias http://teoria.computacao.googlepages.com / [email protected]. Agenda. Máquina de Turing Linguagem Enuméravel Recursivamente - PowerPoint PPT Presentation

Transcript of Teoria da Computação

Page 1: Teoria da Computação

Teoria da ComputaçãoMÁQUINA DE TURING (Continuação)

Fabrício Dias

http://teoria.computacao.googlepages.com/

[email protected]

UNIPÊ – Centro Universitário de João PessoaCurso de Ciências da Computação

Page 2: Teoria da Computação

Agenda

Máquina de Turing Linguagem Enuméravel Recursivamente Extensões da Máquina de Turing Não-determinismo Máquina de Turing Multidimensional Máquina de Turing com Múltiplas Cabeças Hierarquia de classes de linguagens

Page 3: Teoria da Computação

3

Máquina de Turing

Critério para o Reconhecimento de Linguagens. Se a máquina pára para toda palavra da

linguagem sobre o alfabeto de entrada, ela é reconhecida pela Máquina de Turing.

Page 4: Teoria da Computação

4

Linguagem Enumerável Recursivamente

Definição 3.8 Linguagem Enumerável Recursivamente Uma linguagem aceita por uma Máquina de Turing

é dita enumerável recursivamente. Enumerável deriva do fato de que as palavras de

qualquer linguagem enumerável recursivamente podem ser enumeradas ou listadas por uma Máquina de Turing.

Recursivamente é um termo matemático, anterior ao computador, com significado similar ao de recursão, utilizado na computação.

Page 5: Teoria da Computação

5

Linguagem Enumerável Recursivamente

Se L é uma dessas linguagens, então para qualquer máquina M que aceita a linguagem L, existe pelo menos uma palavra w, não pertencente a L, que, ao ser processada por M, resulta que a máquina entre em loop infinito. Se w pertence a L, M pára e aceita a entrada; Se w não pertence a L, M pode parar, rejeitando

a palavra, ou permanecer processando indefinidamente (loop).

Page 6: Teoria da Computação

6

Linguagem Enumerável Recursivamente

Exemplos – as seguintes linguagens são exemplos de linguagens Enumeráveis Recursivamente. Duplo_Bal = { anbn / n 0} Triplo_Bal = { anbncn / n 0} Palavra_Palavra = { ww / w é palavra sobre os

símbolos a e b} { w / w tem o mesmo número de símbolos a que b} { ai bj ck / i=j ou j=k}

Page 7: Teoria da Computação

7

Linguagens Recursivas

Uma sub-classe da Classe das Linguagens Enumerável Recursivamente, denominada Classe das Linguagens Recursivas, é composta pelas linguagens para as quais existe pelo menos uma Máquina de Turing que pára para qualquer entrada, aceitando ou rejeitando.

Page 8: Teoria da Computação

8

Linguagens Recursivas

Uma linguagem L é dita Linguagem Recursiva se existe uma Máquina de Turing M, tal que: ACEITA(M) = L REJEITA(M) = * - L LOOP(M) =

Page 9: Teoria da Computação

9

Linguagens Recursivas

Pode-se afirmar que a classe das Linguagens Recursivas representa todas as linguagens que podem ser reconhecidas mecanicamente. Existem conjuntos que não são Enumeráveis

Recursivamente, ou seja, linguagens para as quais não é possível desenvolver uma MT que as reconheça.

Page 10: Teoria da Computação

10

Extensões da Máquina de Turing

Page 11: Teoria da Computação

11

São apresentadas outras modificações sobre o modelo básico da Máquina de Turing, as quais não aumentam o poder computacional. Ou seja, é possível construir Máquinas de Turing tradicionais que simulam cada uma das modificações sugeridas.

Extensões da Máquina de Turing

Page 12: Teoria da Computação

12

As Máquinas Universais são equivalentes às diversas versões modificadas do modelo básico, com características que supostamente aumentariam o poder computacional

Não-determinismo Múltiplas fitas Múltiplas cabeças Fita infinita em ambos os lados

Extensões da Máquina de Turing

Page 13: Teoria da Computação

13

Não-Determinismo

Não-determinismo é uma importante generalização dos modelos de máquinas.

No caso da Máquina de Turing, para o mesmo estado corrente e símbolo lido, diversas alternativas são possíveis. Cada alternativa é percorrida de forma totalmente independente.

Page 14: Teoria da Computação

14

Não-Determinismo

Genericamente, não-determinismo é interpretado como: a máquina, ao processar uma entrada, tem

como resultado um conjunto de novos estados.

ela assume um conjunto de estados alternativos, como se houvesse uma multiplicação da unidade de controle, uma para cada alternativa, processando independentemente, sem compartilhar recursos com as demais.

processamento de um caminho não influi no estado geral, nem no símbolo lido dos demais caminhos alternativos.

Page 15: Teoria da Computação

15

Não-Determinismo Para uma máquina M não-

determinística, uma palavra w pertence a: ACEITA(M) se existe pelo menos um

caminho alternativo que aceita a palavra. REJEITA(M) se todas as alternativas

rejeitam a entrada. LOOP(M) se nenhum caminho aceita a

palavra e pelo menos um fica em loop.

Page 16: Teoria da Computação

16

Não-Determinismo

Isso significa que as alterações de conteúdo na fita realizadas em um caminho não modificam o conteúdo da mesma nos demais caminhos alternativos.

Page 17: Teoria da Computação

17

Máquina de Turing Multidimensional

Máquina de Turing Multidimensional Neste modelo, a fita tradicional é substituída

por uma estrutura do tipo arranjo k-dimensional, infinita em todas as 2k direções;

Page 18: Teoria da Computação

18

Máquina de Turingcom Múltiplas Cabeças

Máquina de Turing com Múltiplas Cabeças A Máquina de Turing com esta modificação

possui k cabeças de leitura e gravação sobre uma única fita.

Cada cabeça possui movimento independente. Assim, o processamento depende do estado corrente e do símbolo lido em cada uma das cabeças.

Page 19: Teoria da Computação

19

Combinações Combinações

Combinações de algumas ou de todas as modificações apresentadas.

A combinação de algumas ou de todas as modificações apresentadas não aumenta o poder computacional da Máquina de Turing.

Por exemplo, uma Máquina de Turing Não-Determinística com Múltiplas Fitas e Múltiplas Cabeças pode ser simulada por uma Máquina de Turing tradicional.