Você está na página 1de 5

ESIN/UCPel 058814 Linguagens Formais e Autmatos

TEXTO 5

Mquina de Turing
Linguagens Sensveis ao Contexto e Enumerveis Recursivamente
Prof. Luiz A M Palazzo Maio de 2007

________________________________________________________________________

0. Introduo
A Cincia da Computao o estudo sistematizado relativo Computao. Originou-se na Grcia com os algoritmos de Euclides (sculo III A.C.) e na Babilnia, com estudos sobre complexidade e redutibilidade de problemas. Em 1936 Alan Mathieson Turing, matemtico ingls, props um modelo que ficou conhecido como Mquina de Turing, atualmente aceito como uma formalizao do conceito de procedimento, isto , uma seqncia finita de instrues que podem ser realizadas mecanicamente em um tempo finito. Ainda em 1936, Alonzo Church apresentou uma hiptese que ficou conhecida como a Hiptese de Church, segundo a qual qualquer funo computvel pode ser representada por uma Mquina de Turing. Como o conceito de procedimento matematicamente impreciso, no possvel provar que a Mquina de Turing realmente o dispositivo computacional mais genrico possvel. Entretanto nenhum modelo computacional desenvolvido at o presente conseguiu apresentar capacidade computacional superior ao modelo de Turing, o que refora a Hiptese de Church. As Linguagens Enumerveis Recursivamente (LER), ou do Tipo Zero, so as linguagens que podem ser reconhecidas por uma Mquina de Turing e portanto esta classe de linguagem representa o conjunto de todas as linguagens que podem ser reconhecidas mecanicamente e em um tempo finito. Para gerar as LER emprega-se um formalismo axiomtico ou gerador na forma de uma gramtica denominada Gramtica Irrestrita (no possui qualquer restrio quanto ao formato das produes). As Linguagens Sensveis ao Contexto (LSC), ou do Tipo 1, esto contidas propriamente no conjunto das LER. Gramticas Sensveis ao Contexto (GSC): o formalismo gerador das LSC. O lado esquerdo das produes pode ser uma palavra de variveis ou terminais definindo um contexto de derivao. Mquina de Turing com Fita Limitada: o mecanismo reconhecedor das LSC. Sua fita limitada e portanto finita.. No se sabe se o no-determinismo aumenta ou no o poder computacional das Mquinas de Turing com Fita Limitada.

1. Mquina de Turing
A Mquina de Turing, para ser considerada um modelo de um procedimento deve apresentar, entre outras, as seguintes propriedades: a) A execuo do algoritmo deve ser finita. b) Deve consistir de passos (1) discretos, (2) executveis mecanicamente, (3) num tempo finito. O modelo proposto por Alan Turing em 1936 consistia de 3 partes: a) Fita: usada simultaneamente como dispositivo de entrada, sada e memria de trabalho, b) Unidade de Controle: reflete o estado corrente da mquina. Possui uma unidade de leitura e gravao (cabea da fita) que acessa uma clula da fita de cada vez, movendo-se para a esquerda e para a direita, e c) Programa ou Funo de Transio: comanda as leituras e gravaes, o sentido do movimento da cabea e define o estado da mquina. A fita finita esquerda e infinita direita, sendo dividida em clulas onde cada uma armazena um smbolo, que podem pertencer ao alfabeto de entrada, ao alfabeto auxiliar ou ser "branco". Inicialmente a palavra a ser processada ocupa as clulas mais esquerda da fita, ficando as demais em "branco". A unidade de controle possui um nmero finito e pr-definido de estados A cabea de leitura/gravao l o smbolo contido em uma clula da fita de cada vez e grava um novo smbolo. Aps a leitura/gravao a cabea se move uma clula para a direita ou para a esquerda. O smbolo gravado e o sentido do movimento so definidos pelo programa. Inicialmente a cabea est posicionada na clula mais esquerda da fita como pode ser visto na figura, onde representa "branco".

...

Controle

O 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 da mquina.

(a1, a2, m) p
ESTADO ANTERIOR

q
NOVO ESTADO

Smbolo lido

Smbolo gravado

Sentido do movimento

Isto :

(p, a1) = (q, a2, m)

2. Definio Formal da Mquina de Turing


Uma mquina de Turing uma heptupla: M = (, Q, , q0, F, V, ), onde: um alfabeto de entrada Q um conjunto finito de estados possveis de M um programa ou funo de transio parcial: :Qx(V{}) Qx(V{})x{E,D} q0 um estado inicial da mquina, q0 Q F um conjunto de estados finais da mquina tal que F est contido em Q V um alfabeto auxiliar (que pode ser vazio) o smbolo especial "branco" A funo de transio considera o estado corrente e o smbolo lido da fita para determinar o novo estado, o smbolo a ser gravado e o sentido do movimento da cabea, onde esquerda e direita so representadas por E e D respectivamente. 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. O 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. As condies de parada so as seguintes: a) A mquina assume um estado final: a mquina pra e a palavra de entrada aceita. b) A funo programa indefinida para o argumento (smbolo lido e estado corrente): a mquina pra e a palavra de entrada rejeitada. c) O argumento da funo programa determina um movimento para a esquerda e a cabea j est na posio mais esquerda da fita: a mquina pra e a palavra de entrada rejeitada.

Para definir formalmente o comportamento da Mquina de Turing necessrio estender a funo programa para usar como argumento um estado e uma palavra. Se M uma Mquina de Turing: a) ACEITA(M) ou L(M) o conjunto de todas as palavras de * aceitas por M. b) REJEITA(M) o conjunto de todas as palavras de * rejeitadas por M. c) LOOP(M) o conjunto de todas as palavras de * para as quais M entra em loop infinito.

3. Exemplo: Mquina de Turing Seja a linguagem L1= { anbn | n 0}. A Mquina de Turing M = ({a, b}, {q0, q1, q2, q3, q4}, 1, q0, {q4}, {A, B}, ), onde 1 como na tabela a seguir tal que: (1) ACEITA(M) = L1, (2) REJEITA(M) = * - L1 e (3) LOOP(M) =

1
q0 q1 q2 q3 q4

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

B
(q3, B, D)

(q4, , D)

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

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

(A, A, D) (a, A, D) (b, B, E)

q0

q1

q2

(B, B, D)

(a, a, D) (B, B, D)

(a, a, E) (B, B, E)

(, , D)

q3

(B, B, D) (, , D)

q4

a q0 A

a q1

b q1

a q2

A q2

a q0

B q1

b q1

B q2

A q2

B q0

B q3

q3

q4

Você também pode gostar