Você está na página 1de 29

UNIVERSIDADE FEDERAL RURAL DO SEMI-RIDO CURSO: CINCIA DA COMPUTAO

Prof. Danielle Casillo

Proposta por Alan Turing em 1936; universalmente conhecida e formalizao de algoritmo;

aceita

como

Teoria da Computao

Trata-se de um mecanismo simples que formaliza a idia de uma pessoa que realiza clculos; Possui, no mnimo, o mesmo poder computacional de qualquer computador de propsito geral; No constitui uma mquina, como definida anteriormente, mas sim um programa para uma mquina universal.

Teoria da Computao

O ponto de partida de Turing foi analisar a situao na qual uma pessoa, equipada com um instrumento de escrita e um apagador, realiza clculos em uma folha de papel organizada em quadrados. Inicialmente, a folha de papel contm somente os dados iniciais do problema.

Teoria da Computao

O trabalho da pessoa pode ser resumido em sequncias de operaes simples como segue:
Ler um smbolo de um quadrado; Alterar um smbolo em um quadrado; Mover os olhos para outro quadrado; Quando encontrada alguma representao satisfatria para a resposta desejada, a pessoa termina seus clculos.
Teoria da Computao 5

Para viabilizar esse procedimento, as seguintes hipteses so aceitveis:


A natureza bidimensional do papel no um requerimento essencial para os clculos. assumido que o papel consiste de uma fita infinita organizada em quadrados (clulas); Conjunto de smbolos pode ser finito; Conjunto de estados da mente da pessoa durante o processo de clculo finito. Existem dois estados em particular: estado inicial e estado final, correspondendo ao incio e ao fim dos clculos, respectivamente;
Teoria da Computao 6

Comportamento da pessoa a cada momento determinado somente pelo seu estado presente e pelo smbolo para o qual sua ateno est voltada; A pessoa capaz de observar e alterar o smbolo de apenas um quadrado de cada vez, bem como de transferir sua ateno somente para um dos quadrados adjacentes.

Teoria da Computao

Variaes sobre a Definio de Mquina de Turing.


Diversas variaes sobre a definio de Mquina de Turing so adotadas. Note-se que estas variaes no alteram o poder computacional do formalismo. As variaes mais significativas esto nas caractersticas da fita e no movimento da cabea como:

Teoria da Computao

Inexistncia do Marcador de Incio de Fita.


frequente no incluir um marcador de incio de fita. Assim, a clula mais esquerda da fita contm o primeiro smbolo da entrada (ou branco, se a entrada for vazia). Neste caso, ao definir uma funo programa, deve-se tomar cuidado especial para controlar quando a cabea da fita atinge o fim da mesma;

Teoria da Computao

Cabea de Fita Leitura/Gravao.

no

se

Move

em

uma

Na funo programa, possvel especificar, adicionalmente ao movimento para esquerda ou direita, que a cabea permanea parada (na clula de leitura/gravao). O principal objetivo dessa variao facilitar a especificao da funo programa, bem como reduzir o nmero de transies necessrias.

Teoria da Computao

10

Estado Final de Rejeio


Pode ser definido um estado final de rejeio, para explicitar a condio de parada com rejeio da entrada.

Teoria da Computao

11

marcador de incio de fita fita cabea da fita controle = a b

entrada

branco

...

unidade de controle

Fita:
Usada simultaneamente como dispositivo de entrada, de sada e de memria de trabalho; finita esquerda e infinita (to grande quanto necessrio) direita, sendo dividida em clulas, cada uma das quais armazenando um smbolo.
Teoria da Computao 12

Os smbolos podem pertencer:


Ao alfabeto de entrada Ao alfabeto auxiliar branco marcador de incio de fita

Inicialmente, a palavra a ser processada ocupa as clulas mais esquerda, aps o marcador de incio de fita, ficando as demais com branco.

Teoria da Computao

13

Unidade de Controle
Reflete o estado corrente da mquina. Possui um nmero finito e predefinido de estados. Possui uma unidade de leitura e gravao (cabea da fita), a qual acessa uma clula da fita de cada vez. A cabea da fita l o smbolo de uma clula de cada vez e grava um novo smbolo. Aps a leitura/gravao (a gravao realizada na mesma clula de leitura), a cabea move-se uma clula para a direita ou esquerda.
Teoria da Computao 14

Programa ou Funo de Transio.


O programa comanda as leituras e gravaes, o sentido de movimento da cabea e define o estado da mquina. Programa uma funo que, dependendo do estado corrente da mquina e do smbolo lido, determina o smbolo a ser gravado, o sentido do movimento da cabea e o novo estado.

Teoria da Computao

15

Definio - Mquina de Turing


Uma Mquina de Turing uma 8-upla: M =(, Q, , q0, F, V, , )
alfabeto de smbolos de entrada; Q conjunto de estados possveis da mquina, o qual finito; programa ou funo de transio: ( uma funo parcial) q0 estado inicial da mquina, tal que q0 elemento de Q; F conjunto de estados finais, tal que F est contido em Q; V alfabeto auxiliar; smbolo especial branco; smbolo especial marcador de incio da fita.
Teoria da Computao 16

Smbolo de incio de fita , ocorre exatamente uma vez e sempre na clula mais esquerda da fita, auxiliando na identificao de que a cabea da fita se encontra na clula mais esquerda da fita. A funo programa , considera:
estado corrente smbolo lido da fita

Para determinar:
novo estado smbolo a ser gravado sentido de movimento da cabea esquerda (E) e direita (D)
Teoria da Computao 17

O programa pode ser representado como um grafo finito (p, au) = (q, av, m)
p (au, av, m) q

estado corrente smbolo lido

novo estado sentido do movimento

smbolo gravado
Teoria da Computao 18

q0

qf

O programa pode ser representado por uma Tabela de Transies (p, au) = (q, av, m) p q
Teoria da Computao 19

au (q, av, m)

av

O processamento de uma Mquina de Turing M=(, Q, , q0, F, V, , ) para uma palavra de entrada w consiste na sucessiva aplicao da funo programa, a partir do estado inicial q0 e da cabea posicionada na clula mais esquerda da fita at ocorrer uma condio de parada. Processamento de M para a entrada w pode parar ou ficar em loop infinito.

Teoria da Computao

20

A parada pode ser de duas maneiras: aceitando ou rejeitando a entrada w. As condies de parada so as seguintes:
Estado Final: A mquina assume um estado final: a mquina para, e a palavra de entrada aceita; Funo Indefinida: A funo programa indefinida para o argumento (smbolo lido e estado corrente): a mquina para, e a palavra de entrada rejeitada; Movimento Invlido: O argumento corrente da funo programa define um movimento esquerda e a cabea da fita j se encontra na clula mais esquerda: a mquina para, e a palavra de entrada rejeitada.
Teoria da Computao 21

Uma das abordagens do estudo das Mquinas de Turing ou das Mquinas Universais em geral como reconhecedores de linguagens, ou seja, dispositivos capazes de determinar se uma dada palavra sobre o alfabeto de entrada pertence ou no a uma certa linguagem.

Teoria da Computao

22

Linguagem Aceita por uma Mquina de Turing. Seja M = (, Q, , q0, F, V, , ) uma Mquina de Turing. Ento:
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) = {wM ao processar w , pra em um estado qf F}

Teoria da Computao

23

b)

A linguagem rejeitada por M, denotada por REJEITA(M), o conjunto de todas as palavras de rejeitadas por M, ou seja: REJEITA(M) = {wM ao processar w , pra em um estado q F} 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.

c)

Teoria da Computao

24

Considere a linguagem: Duplo_Bal = {anbn | n 0}, construa uma Mquina de Turing para essa linguagem. Passo 1: Construir o Grafo da Mquina de Turing Passo 2: Construir sua Tabela de Transio Passo 3: Escrever os elementos da Mquina de Turing

Teoria da Computao

25

Computao

Teoria da Computao

26

Teoria da Computao

27

Tabela de transies MT_Duplo_Bal = ({a, b}, {q0, q1, q2, q3, q4}, , q0, {q4}, {A, B}, , )
Teoria da Computao 28

Esta linguagem um exemplo clssico e de fundamental importncia no estudo das linguagens, pois permite estabelecer analogia com linguagens que possuem duplo balanceamento em sua estrutura como, por exemplo:
Linguagens bloco-estruturadas do tipo BEGINnENDn, como a linguagem de programao Pascal; Linguagens com parnteses balanceados na forma (n)n, como as expresses aritmticas, presentes na maioria das linguagens de programao.
Teoria da Computao 29