You are on page 1of 12

CAPTULO 2 MAQUINAS DE TURING A Mquina de Turing, introduzida por Alan Turing, em 1936, apresenta muitas caractersticas comumente associadas

aos computadores modernos. Isto no acidental; A Mquina de Turing antecedeu ao computador de programa armazenado, sendo um modelo para o seu desenho e desenvolvimento. Utilizando uma seqncia de operaes elementares, a Mquina de Turing pode acessar e alterar qualquer posio de memria. Entretanto, diferentemente do computador, uma MT no tem limitaes de tempo ou memria disponvel para realizar uma computao. A Mquina de Turing o estgio mais avanado no desenvolvimento das mquinas de estado finito. 1.1 MQUINA DE TURING PADRO A Mquina de Turing uma mquina de estado finito na qual uma transio imprime um smbolo sobre uma fita. A cabea de leitura pode se mover em qualquer direo, possibilitando a mquina ler e manipular a entrada, quantas vezes desejar. A estrutura da mquina semelhante a dos autmatos finitos com a funo de transio incorporando essas caractersticas adicionais. Definio 1.1.1 Uma Mquina de Turing uma quntupla M = (Q, , , , q0), onde Q um conjunto finito de estados, um conjunto finito, chamado de alfabeto da fita, que contem um smbolo especial B usado para representar o branco, um subconjunto de - {B}, chamado alfabeto de entrada, uma funo parcial de Q x em Q x x {L, R} e q0 Q um estado distinguido, chamado de estado inicial. A fita de uma MT dividida em quadrculas e estende-se infinitamente em uma direo. As quadrculas so numeradas com os naturais 0, 1, 2, ......... , da esquerda para a direita. Uma computao tem incio no estado q 0 , com a cabea de leitura sobre a quadrcula rotulada por 0, conforme esquema a seguir.

A entrada de uma MT uma palavra de *, escrita na fita a partir do posio 1. A posio zero da fita e todas as demais, exceto aquelas ocupadas pela entrada, so assumidas estarem em branco. Uma transio de uma MT consiste nas seguintes trs aes: Uma mudana de estado A impresso de um smbolo na quadrcula sob a cabea de leitura Movimentao da cabea de leitura para a quadrcula situada direita (R) ou a esquerda (L) da posio corrente da cabea de leitura.

Assim, a configurao a seguir,

quando submetida a transio (qi, x) = [qj, y, L], se transforma na configurao abaixo, em que a MT mudou do estado de qi para qj, trocou o smbolo x, por y e moveu o cabea de leitura uma posio para a esquerda da posio anterior.

Uma Mquina de Turing sempre para quando encontra um par (estado, smbolo) para o qual nenhuma transio est definida. Uma transio que leva a MT para a esquerda da posio zero da fita faz com que a computao termine de uma forma dita anormal. Quando dizemos que uma computao para, queremos nos referir ao fato de que a MT terminou a computao de uma forma normal. Mquinas de Turing so projetadas para realizar computaes sobre palavras de um alfabeto de entrada. Exemplo 1.1.1 Seja a MT M = (Q, , , , q0), onde

Q = { q 0, q 1, q 2 } = { a, b} = {B} : (q0,B) = [q1 , B, R] (q1,B) = [q2 , B, L] (q1,a) = [q2 , b, R] (q1,b) = [q1 , a, R] (q2,a) = [q2 , a, L] (q2,b) = [q2 , b, L] Assim como os autmatos finitos, uma MT pode ser representada pela sua Tabela de Transio ou por seu Diagrama de Estados. Para o exemplo acima, estas representaes so: Tabela de Transio de M:

q0 q1 q2

B q1, B, R q2, B, L -

a q1, b, R q2, a, L

b q1, a, R q2, b, L

Diagrama de Estados de M: A representao de M por diagrama de estados feita com o arco de qi para qj sendo rotula por x / y d, onde x, o smbolo processado, substitudo por y, com a cabea de leitura/gravao deslocando-se uma posio para a direita ou para esquerda, conforme o valor de d seja R ou L, respectivamente. Para o exemplo anterior, temos:

Uma configurao de uma MT consiste de um estado, a fita e a posio da cabea de leitura. Em qualquer estgio de uma computao, somente um segmento da fita no se encontra em branco Uma configurao denotada por uqivB indica que uv a palavra sobre a fita, que a mquina encontra-se no estado qi, j tendo processado a palavra u e que est lendo o primeiro smbolo v. A seguir indicamos trs configuraes de uma MT.

q0BababB

Bq1ababB

Bbq1babB

As configuraes de uma MT podem ser usadas para indicar as computaes realizadas por esta A notao uqivB transio de M. J uqivB M transies.
*

xq jyB indica que xqjyB obtido de uqivB por uma simples

xq jyB indica que xqjyB obtido de uqivB por um nmero finito de

A computao realizada pela MT do exemplo 1.1.1 consiste em altera a entrada w, trocando os smbolos a por b e vice-versa. As computaes geradas pelo processamento de w = abab so indicadas pelas seguintes configuraes: q0BababB Bq1ababB Baq1babB Babq1abB
4

Babaq1bB Bababq1B Babaq2bB Babq2abB Baq2babB Bq2ababB q2BababB Exemplo 1.1.2 A Mquina de Turing a seguir produz uma COPIA da palavra w de = {a, b}, isto , a computao comea com BwB e termina com BwBwB.

1.2 MQUINA DE TURING COMO RECONHECEDOR As Mquinas de Turing tm sido introduzidas como paradigma de computao efetiva. Uma computao de uma MT composta de uma seqncia de operaes elementares. At o momento, a Mquina de Turing foi apresentada para ilustrar as caractersticas dos computadores reais. As computaes lem e manipulam smbolos sobre a fita. Nenhuma interpretao foi dada ao resultado das computaes. MTs podem ser usadas para reconhecer linguagens e computar funes. O resultado de uma computao pode ser definido em termos do estado no qual a computao termina ou em termos da configurao da fita ao termino da computao.

Usado como reconhecedor de linguagens, dizemos que uma MT aceita ou rejeita a palavra w de entrada. Inicialmente a aceitao de uma palavra definida por estado final, de modo semelhante as tcnicas usadas por DAF e PDA. Porm, diferentemente destes, uma MT no precisa ler a palavra por inteiro para aceit-la ou no. Uma computao que termina de forma anormal rejeita a entrada, independente do estado em que se encontre.

Definio 1.2.1 Seja M=(Q, , , , q0, F) uma Mquina de Turing. Uma palavra u * aceita por estado final se a computao de M com entrada u parar em um estado final. A linguagem de M, L(M), so todas as palavras aceitas por M. Exemplo 1.2.1 Considere a MT M a seguir definida:

A MT acima reconhece a palavra w = bbbabaaba, sendo a sua linguagem definida pela expresso regular (a+b)* aa (a+b)*. Observe que M , conforme a definio 1.2.1, no precisou processar a entrada w por inteiro para determinar a sua aceitao. A linguagem aceita por uma Mquina de Turing dita ser recursivamente enumervel. Caso o MT pare para toda palavra w de entrada, a linguagem dita se recursiva. No caso das linguagens recursivas, as computaes da MT se constituem no procedimento que determina se uma palavra w pertence ou no a linguagem L da MT. O estado da mquina no qual a computao termina oferece a resposta. Se este for final a palavra est na linguagem L, seno ela no est em L . A terminologia recursiva e recursivamente enumervel tem sua origem na interpretao de uma MT como um procedimento para calcular o valor de uma funo, conforme veremos mais atentamente em um outro captulo.

Exemplo 1.2.2 A MT seguinte reconhece a linguagem L = {akbkck I k 0 }.

Os smbolos da fita X, Y, Z marcam os as, bs e cs que so casados. A computao termina com sucesso, quando todos os smbolos da entrada so trocados pelos smbolos correspondentes. A transio de q 1 para q6 aceita a palavra nula. Uma linguagem pode ser reconhecida por uma MT sem a necessidade de estados final. De acordo com esse enfoque, uma MT aceita uma palavra w se a computao gerada por w simplesmente parar.

Definio 1.2.2 Seja M=(Q, , , , q0) uma MT. Uma palavra u * aceita por parada se a computao de M com entrada u para.

Teorema 1.2.3 As seguinte afirmaes so equivalentes: i) ii) A linguagem L aceita por uma MT por estado final. A linguagem L aceita por uma MT por parada.

Prova a) Seja M = (Q, , , , q0) uma Mquina de Turing que aceita L por parada. A mquina M' = (Q, , , , q0, Q) claramente aceita L por estado final.

b) Seja M = (Q, , , , q0, F) uma MT que aceita L por estado final. Defina a MT M' = (Q{qf}, , , ', q0) do seguinte modo: i) se (qi, x) definido, ento faa '(qi, x) = (qi, x). ii) para cada qi Q - F, se (qi, x) indefinido, ento defina '(qi, x) = [qf, x, R]. iii) para cada x , '(qf, x) = [qf, x, R]. Observe que quando uma computao em M para e o estado no final, em M esta computao move-se indefinidamente para a direita. As nicas computaes que terminam em M so exatamente aquela computaes de M que terminam em um estado final de M. Assim, M aceita L por parada e L(M)=L(M).

Exemplo 1.2.3 A maquina de Turing do exemplo 1.2.1 alterado para aceitar (a+b)* aa (a+b)* por parada, de acordo com o teorema 1.2.3. M:

Observe que uma computao em M somente entra em q f quando a palavra de entrada tenha sido lida por inteiro. A mquina obtida de M ao se apagar os arcos que vo de q0 para qf e de qf para qf, rotulados por a/a R e b/b R, tambm aceita a linguagem definida pela expresso regular (a+b)* aa (a+b)*. O restante deste capitulo ser dedicado ao exame de variaes da Maquina de Turing Padro. Cada variao parece aumentar a capacidade da mquina. Contudo, ser provado que a linguagem aceita por essas mquinas mais gerais so precisamente aquela aceitas pela Mquina de Turing Padro.

1.3 MQUINAS DE TURING MULTITRILHAS O restante deste captulo ser dedicado ao exame de variaes no modelo da Mquina de Turing Padro. Cada uma das variaes consideradas parece aumentar a capacidade de computao da mquina. Ns vamos provar, contudo, que as linguagens aceitas por essas mquinas mais gerais so precisamente aquelas aceita pela mquina de Turing Padro. Uma fita multitrilha uma fita dividida em trilhas. Uma posio em uma fita com multitrilhas contem n smbolos do alfabeto de fita. O diagrama seguinte representa uma fita com duas trilhas com a cabea de leitura posicionado sobre a posio 2, tendo qi como o estado corrente da mquina.

A mquina l uma posio da fita como um todo. Mltiplas trilhas fazem com que aumente a quantidade de informaes que podem ser consideradas na determinao da transio apropriada. Uma posio da fita em uma mquina com 2-trilhas e representado pelo par ordenado [x, y], onde x um smbolo na trilha 1 e y na trilha 2. Os estados, alfabeto de entrada, alfabeto da fita, estado inicial e estados finais de uma mquina com 2-trilhas so os mesmos de ma MT Padro. Uma transio de uma MT com 2-trilhas escrita como:

(qi, [x, y]) = [qj, [z, w], d], onde d {L, R} A entrada para uma MT com 2-trilhas colocada na posio 1 da trilha 1. Todas as posies da trilha 2 so consideradas brancas. A aceitao de uma entrada em uma MT com multitrilha definida por estado final. Teorema 1.3.1 Uma linguagem L aceita por uma MT com 2-trilhas, se, e somente se, L aceita por uma MT Padro. Prova Claramente, se L aceita por uma MT Padro, L aceita por uma MT com 2trilhas. A MT com 2-trilhas equivalente, simplesmente ignora a presena da 2 trilha. Seja M=(Q, , , , q0, F) uma MT com 2-trilhas. Vamos construir M, uma MT com 1-trilha na qual cada posio da fita contm a mesma informao de uma posio da fita 2-trilhas. A representao de uma posio de uma fita de 2-trilhas com um par ordenado nos permite efetivar tal representao. O alfabeto de M consiste de pares ordenados dos elementos de M. Assim M = (Q, x{B}, x , , q0, F) com a funo de transio (qi , [x, y]) = [qi , [x, y]], aceita L(M).

1.4 MQUINAS DE TURING COM FITA INFINITA NAS DUAS DIREES Uma MT com fita infinita nas duas direes idntica a uma MT padro, exceto pelo fato de que a fita infinita nas duas direes. Nesse caso a entrada pode ser colocada em qualquer posio da fita, com as demais posies sendo assumidas B (branca). O cabeote de leitura posicionado no incio da computao, no branco imediatamente a esquerda da entrada. Uma mquina M com fita infinita nas duas direes pode ser construda para simular as aes de uma MT padro M. Para tanto, basta se acrescentar o smbolo especial # ao alfabeto da fita de M ( # no smbolo do alfabeto de M) e us-lo para simular a fronteira esquerda da fita. As computaes de M comea por escrever o smbolo # na posio imediatamente a esquerda da posio inicial do cabeote de leitura. As demais computaes so idnticas as de M, exceto quando M termina de forma anormal. Nesse caso, quando M tenta mover a cabea de leitura para a esquerda da fronteira, M l o smbolo # entra em um estado de no aceitao.
10

Exemplo:

Texto a inserir

Agora vamos mostrar que a linguagem aceita por uma MT M com fita infinita nas duas direes tambm aceita por um MT Padro M. Faremos isso, mostrando que L(M) aceita por uma mquina M com duas trilhas. Assim sendo, pelo teorema anteriormente apresentado, se M aceita L(M), existe uma mquina de transio padro, M que aceita L(M). Como construir M a partir de M

11

Seja M=(Q, , , , q0, F) MT com fita infinita nas duas direes. Construa M, uma MT com fita infinita em uma direo, com duas trilhas, do seguinte modo.

1.5 MQUINAS DE TURING MULTIFITAS

1.6 MQUINAS DE TURING NO DETERMINISTICAS


12

You might also like