Escolar Documentos
Profissional Documentos
Cultura Documentos
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 :
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)
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