teoriacomputação aula 07 maquina turing

56
Teoria da Computação Ciência da Computação Prof. Esp. Giulliano

Upload: thiago-ferreira-bueno

Post on 03-Feb-2016

11 views

Category:

Documents


0 download

DESCRIPTION

sobre máquina de turing

TRANSCRIPT

Page 1: TeoriaComputação Aula 07 Maquina Turing

Teoria da ComputaçãoCiência da Computação

Prof. Esp. Giulliano

Page 2: TeoriaComputação Aula 07 Maquina Turing

Máquina de Turing

Page 3: TeoriaComputação Aula 07 Maquina Turing

Histórico

• A máquina de Turing foi proposta por Alan Turing em 1936 e é universalmente conhecida e aceita como formalização de algoritmo.

Page 4: TeoriaComputação Aula 07 Maquina Turing

Histórico

• Trata-se de um mecanismo simples que formaliza a ideia de uma pessoa que realiza cálculos;

• Semelhante a um autômato finito;• Possui, no mínimo, o mesmo poder computacional de

qualquer computador de propósito geral;

Page 5: TeoriaComputação Aula 07 Maquina Turing

Histórico

• O modelo da Máquina de Turing é importante para a Ciência da Computação porque através dele é possível determinar quais as funções que são computáveis e quais não são;

• Através de um conceito bastante simples (no qual é possível provar teoremas de forma facilitada) define-se a classe das funções calculáveis;

• Se uma função pode ser calculada, há um modelo de Turing ou equivalente para tal função.

Page 6: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• O ponto de partida de Turing foi analisar a situação na qual uma pessoa, com um lápis e uma borracha, realiza cálculos em uma folha de organizada em quadrados.

Page 7: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• Inicialmente, a folha de papel contém somente os dados iniciais do problema.

• O trabalho da pessoa pode ser resumido em sequências de operações simples como segue:• ler um símbolo de um quadrado;• alterar um símbolo em um quadrado;• mover os olhos para outro quadrado

Page 8: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• Quando é encontrada alguma representação satisfatória para a resposta desejada, termina-se os cálculos;

• Para viabilizar esse procedimento, algumas hipóteses são consideradas:

Page 9: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• As seguintes hipóteses são aceitáveis:• A natureza bidimensional do papel não é um

requerimento essencial para os cálculos; • É assumido que o papel consiste de uma fita infinita

organizada em quadrados (células); • Conjunto de símbolos pode ser finito; • Conjunto de estados da mente da pessoa durante o

processo de cálculo é finito;

Page 10: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• As seguintes hipóteses são aceitáveis (cont.):

• Existem dois estados 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.

Page 11: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• As seguintes hipóteses são aceitáveis (cont.):

• 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.

Page 12: TeoriaComputação Aula 07 Maquina Turing

Noção Intuitiva

• Esta noção de uma pessoa calculando pode ser vista como uma máquina constituída de 3 partes:

• Fita - > Papel• Unidade de Controle - > Posição no papel• Programa ou Função de Transição -> Valores de

entrada

Page 13: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

Fita e unidade de Controle de uma Máquina

de Turing

Page 14: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina• Fita

• Usada simultaneamente como dispositivo de entrada, de saída e de memória de trabalho;

• É finita à esquerda e infinita - tão grande quanto necessário - à direita, sendo dividida em células, cada uma das quais armazenando um símbolo.

• Os símbolos podem pertencer:• ao alfabeto de entrada; • ao alfabeto auxiliar;• branco;• marcador de início de fita

Page 15: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

• Fita

• Inicialmente, a palavra a ser processada ocupa as células mais à esquerda, após o marcador de início de fita, ficando as demais com branco, assim como é mostrado na figura a seguir:

Page 16: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

Page 17: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

• Unidade de Controle• Reflete o estado corrente da máquina, no caso da

figura o estado corrente da máquina está apontando para o início da fita;

• Possui um número finito e predefinido de estados;• Possui uma unidade de leitura e gravação (cabeça

da fita), a qual acessa uma célula da fita de cada vez.

Page 18: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

• Unidade de Controle

• A cabeça da fita lê o símbolo de uma célula de cada vez e grava um novo símbolo. Após a leitura/gravação (a gravação é realizada na mesma célula de leitura), a cabeça move-se uma célula para a direita ou esquerda.

Page 19: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

Page 20: TeoriaComputação Aula 07 Maquina Turing

Noção como Máquina

• Programa ou função de transição • O programa comanda as leituras e gravações, o

sentido de movimento da cabeça e define o estado da máquina;

• Programa é uma função que, dependendo do estado corrente da máquina e do símbolo lido, determina o símbolo a ser gravado, o sentido do movimento da cabeça e o novo estado.

Page 21: TeoriaComputação Aula 07 Maquina Turing

Definição Formal

• Uma Máquina de Turing é uma 8-upla: (Diverio & Memezes)

M =(Q, , δ, q0, F, V, , )Q conjunto de estados possíveis da máquina, o qual é finito; alfabeto de símbolos de entrada;δ programa ou função de transição: (é uma função parcial)

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; símbolo especial marcador de início da fita (pode ser também ¤ ou ).

Page 22: TeoriaComputação Aula 07 Maquina Turing

Definição Formal

• Uma Máquina de Turing é uma 5-upla: (Lewis & Papadimitriu)

M =(Q, , δ, q0, F)Q conjunto de estados possíveis da máquina, o qual é finito; alfabeto de símbolos de entrada;δ programa ou função de transição: (é uma função parcial)

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; símbolo especial marcador de início da fita.

Page 23: TeoriaComputação Aula 07 Maquina Turing

Definição Formal

• Símbolo de início de fita , ocorre exatamente uma vez e sempre na célula mais à esquerda da fita, auxiliando na identificação de que a cabeça da fita se encontra na célula mais à esquerda da fita.

Page 24: TeoriaComputação Aula 07 Maquina Turing

Definição Formal

• A função programa δ , considera:• estado corrente• símbolo lido da fita

• Serve para determinar:• novo estado• símbolo a ser gravado

• sentido de movimento da cabeça esquerda (E ou ) e direita (D ou ).

• Se permanecer no mesmo estado (Π)

Page 25: TeoriaComputação Aula 07 Maquina Turing

Definição Formal• O programa pode ser representado como um grafo finito.

δ(p, au) = (q, av, m)

novo estado

símbolo lido

estado corrente

símbolo gravado

sentido do movimento

(a u , a v , m) q p

Page 26: TeoriaComputação Aula 07 Maquina Turing

Definição Formal

• O processamento de uma Máquina de Turing para uma palavra de entrada w consiste na sucessiva aplicação da função programa, a partir do estado inicial q0 e da cabeça posicionada na célula mais à esquerda da fita até ocorrer uma condição de parada.

• Processamento de M para a entrada w pode parar ou ficar em loop infinito.

• A parada pode ser de duas maneiras: aceitando ou rejeitando a entrada w.

Page 27: TeoriaComputação Aula 07 Maquina Turing

Definição Formal

• As condições de parada são as seguintes:• Estado Final: A máquina assume um estado final: a

máquina para, e a palavra de entrada é aceita;• Função Indefinida: A função programa é indefinida

para o argumento (símbolo lido e estado corrente): a máquina para, e a palavra de entrada é rejeitada;

• 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.

Page 28: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing• Reconhecedores de linguagens

• Uma das abordagens do estudo das Máquinas de Turing ou das Máquinas Universais em geral é 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.

Page 29: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing• Quando utilizada como reconhecedor, devem ser

especificados dois estados finais.• Este estados representam, respectivamente, um

estado de aceita e rejeita, isto é:• para uma palavra qualquer impressa na fita de

entrada, a Máquina de Turing “aceitará” esta palavra caso ela pertença à linguagem expressa por p, e “rejeitará” caso contrário.

Page 30: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing• Então:

• Seja M uma máquina de Turing

a. A linguagem aceita por M, denotada por ACEITA(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 qf F}

Page 31: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing

b. A linguagem rejeitada por M, denotada por REJEITA(M), é o conjunto de todas as palavras de Σ rejeitadas por M, ou seja:

REJEITA(M) = {w|M ao processar w , pára em um estado qf F}

Page 32: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing

c. A linguagem para a qual M fica em loop infinito, denotada por LOOP(M) é conjunto de todas as palavras de para as quais M fica processando indefinidamente.

Page 33: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing• Exemplo: Seja a Máquina de Turing

MT1 = ({a,b},{q0, q1, q2, q3, q4}, δ, q0, {q4}, {A,B}, ,) no qual:

δ a b A B q0 (q0, , D) (q1, A, D) (q3, B, D) (q4, , D)q1 (q1, a, D) (q2, B, E) (q1, B, D)q2 (q2, a, E) (q0, A, D) (q2, B, E)q3 (q3, B, D) (q4, , E)q4

Page 34: TeoriaComputação Aula 07 Maquina Turing

Lembrando...• O programa pode ser representado como um grafo finito.

δ(p, au) = (q, av, m)

novo estado

símbolo lido

estado corrente

símbolo gravado

sentido do movimento

(a u , a v , m) q p

Page 35: TeoriaComputação Aula 07 Maquina Turing

35

Exemplo:

q0

q 4

q3

q1 q2

(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

Abordagens da Máquina de Turing

δ a b A B q0 (q0, , D) (q1, A, D) (q3, B, D) (q4, , D)

q1 (q1, a, D) (q2, B, E) (q1, B, D)

q2 (q2, a, E) (q0, A, D) (q2, B, E)

q3 (q3, B, D) (q4, , E)

q4

Page 36: TeoriaComputação Aula 07 Maquina Turing

q 436

Exemplo:

q0

q3

q1 q2

(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

L(MT1) = {anbn | n ≥ 0}

Abordagens da Máquina de Turing

Page 37: TeoriaComputação Aula 07 Maquina Turing

37

Exemplo: Dada a máquina, ela aceita ou rejeita a palavra?

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

Abordagens da Máquina de Turing

Page 38: TeoriaComputação Aula 07 Maquina Turing

38

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 0

a a b b ß

Abordagens da Máquina de Turing

Page 39: TeoriaComputação Aula 07 Maquina Turing

39

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 0

a a b b ß

Abordagens da Máquina de Turing

Page 40: TeoriaComputação Aula 07 Maquina Turing

40

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 1

A a b b ß

Abordagens da Máquina de Turing

Page 41: TeoriaComputação Aula 07 Maquina Turing

41

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 1

A a b b ß

Abordagens da Máquina de Turing

Page 42: TeoriaComputação Aula 07 Maquina Turing

42

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 2

A a B b ß

Abordagens da Máquina de Turing

Page 43: TeoriaComputação Aula 07 Maquina Turing

43

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 2

A a B b ß

Abordagens da Máquina de Turing

Page 44: TeoriaComputação Aula 07 Maquina Turing

44

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...

q 0

A a B b ß

Abordagens da Máquina de Turing

Page 45: TeoriaComputação Aula 07 Maquina Turing

45

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 1

A A B b ß

Abordagens da Máquina de Turing

Page 46: TeoriaComputação Aula 07 Maquina Turing

46

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 1

A A B b ß

Abordagens da Máquina de Turing

Page 47: TeoriaComputação Aula 07 Maquina Turing

47

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 2

A A B B ß

Abordagens da Máquina de Turing

Page 48: TeoriaComputação Aula 07 Maquina Turing

48

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 2

A A B B ß

Abordagens da Máquina de Turing

Page 49: TeoriaComputação Aula 07 Maquina Turing

49

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 0

A A B B ß

Abordagens da Máquina de Turing

Page 50: TeoriaComputação Aula 07 Maquina Turing

50

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 3

A A B B ß

Abordagens da Máquina de Turing

Page 51: TeoriaComputação Aula 07 Maquina Turing

51

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 3

A A B B ß

Abordagens da Máquina de Turing

Page 52: TeoriaComputação Aula 07 Maquina Turing

52

Exemplo:

q0

q 4

q3

q1 q2(a, A, D)

(ß, ß, D)

(B, B, D)

(B, B, D)

(b, B, E)

(a, a, D)

(B, B, D)

(a, a, E)

(B, B, E)

(A, A, D)

(ß, ß, D)

(ß, ß, E)

w = aabb

...q 4

A A B B ß

Abordagens da Máquina de Turing

Então, a palavra w=aabb é reconhecida pela Máquina de Turing.

Page 53: TeoriaComputação Aula 07 Maquina Turing

Abordagens da Máquina de Turing• Essa linguagem é um exemplo clássico e de

fundamental importância no estudo das linguagens, por permite estabelecer analogia com linguagens que possuem duplo balanceamento como, por exemplo:• Linguagens bloco-estruturadas do tipo BEGINnENDn,

com a linguagem de programação Pascal;• Linguagem com parênteses balanceados na forma

(n)n, como as expressões aritméticas, presentes na maioria das linguagens de programação.

Page 54: TeoriaComputação Aula 07 Maquina Turing

Lembrando Novamente ...• O programa pode ser representado como um grafo finito.

δ(p, au) = (q, av, m)

novo estado

símbolo lido

estado corrente

símbolo gravado

sentido do movimento

(a u , a v , m) q p

Page 55: TeoriaComputação Aula 07 Maquina Turing

55

Exercício:

w = abab

Aceita ou rejeita?

Abordagens da Máquina de Turing

Page 56: TeoriaComputação Aula 07 Maquina Turing

Fim