240 likes | 315 Views
Informática Teórica Engenharia da Computação. Máquinas de Turing. Agora nos voltamos para um modelo muito mais poderoso, proposto por Alan Turing em 1936, chamado máquina de Turing.
E N D
Informática Teórica Engenharia da Computação
Máquinas de Turing • Agora nos voltamos para um modelo muito mais poderoso, proposto por Alan Turing em 1936, chamado máquina de Turing. • Semelhante a um autômato finito, mas com uma memória ilimitada e irrestrita, uma máquina de Turing é um modelo muito mais acurado de um computador de propósito geral. • Uma máquina de Turing pode fazer tudo que um computador real pode fazer. • Entretanto, mesmo uma máquina de Turing nãopode resolver certos problemas.
Modelo de Máquina de Turing • Usa uma fita infinita como sua memóriailimitada. • A fita tem uma cabeça que pode ler e escrever símbolos e mover-sesobre a fita. • Inicialmente, a fita contem apenas a cadeia de entrada e estáem branco em todo o restante. • Se a máquina precisa armazenar informação, ela pode escrevê-la sobre a fita. • Para ler a informação que ela escreveu, a máquinapode mover sua cabeça de volta para a posição onde a informação foi escrita.
Modelo de Máquina de Turing • Amáquina continua a computar até que ela decida produzir uma saída. • As saídasaceite e rejeite são obtidas entrando em estados designados de aceitação e de rejeição. • Se não entrar num estado de aceitação ou de rejeição, ela continuarápara sempre, nunca parando.
MT AFs • Uma máquina de Turing pode tanto escrever sobre a fita quanto ler a partir dela. • A cabeça de leitura escrita pode mover-se tanto para a esquerda quanto para a direita. • A fita é infinita. • Os estados especiais para rejeitar e aceitar fazem efeito imediatamente.
MTExemplo • Seja B = {w#w | w f{0,1}*}. Queremos que M1 aceite se sua entrada é um membro de B e rejeite caso contrário.
MTExemplo • Faça um zigue-zague ao longo da fita para posições correspondentes sobre qualquer dos lados do símbolo # para verificar se elas contem o mesmo símbolo. • Se eles não contem, ou se nenhum # for encontrado, rejeite. • Marque os símbolos a medida que eles são verificados para manter registro de quais símbolostêm correspondência. • Quando todos os símbolos a esquerda do # tiverem sido marcados, verifique a existência de algum símbolo remanescente a direita do #. Se resta algum símbolo, rejeite, caso contrário, aceite..
MTDefinição Formal • O coração da definifiçãode uma máquina de Turing é a função de transição. • : QQ{E,D}. • Quando a MTestá em um certo estado q e a cabeça estásobre uma célula da fita contendo um símbolo a e se (q,a) = (r,b,E), a máquina escreve o símbolo b substituindo o ae vai para o estado r. O terceiro componente é E ou D e indica se a cabeça move para a esquerda ou direita após escrever.
MTDefinição Formal • Uma máquina de Turing éuma 7-upla, (Q,,,,q0,qaceita,qrejeita), onde Q,, são todos conjuntos finitos e • Q é o conjunto de estados, • é o alfabeto de entrada não contendo o símbolo em branco ᶸ • é o alfabeto da fita, onde ᶸ e , • : QQ{E,D}é a função de transição, • q0Q é o estado inicial, • qaceitaQ é o estado de aceitação, e • qrejeitaQ é o estado de rejeição, onde qrejeitaqaceita.
MTComputação • Inicialmente M recebe sua entrada w = w1w2...wn* sobre as n células mais a esquerda da fita, e o restante da fita está em branco (i.e., preenchido com símbolos em branco). • A cabeça começa sobre a célula mais àesquerda da fita. • Note que não contem o símbolo em branco, portanto o primeiro branco aparecendo sobre a fita marca o fim da entrada.
MTComputação • M se move de acordo com a função de transição. • Se M em algum momento tentar mover sua cabeça para a esquerda além da extremidade esquerda da fita, a cabeça permanece no mesmo lugar para aquele movimento, muito embora a função de transição indique E. • A computação continua atéque ela entra ou no estado de aceitação ou de rejeiçãoem cujo ponto ela pára. • Se nenhum desses ocorre, M continua para sempre.
MTConfiguração • A medida que uma máquina de Turing computa, mudanças ocorrem no estado atual, no conteúdo atual da fita e a posição atual da cabeça. • Um possível valor desses três itens édenominado configuração da máquina de Turing.
MTConfiguração • Para um estado q e duas cadeias ue v sobre o alfabeto da fita , escrevemos uqvpara a configuração na qual o estado atual é q, o conteúdo atual da fita é uv e a posição atual da cabeça é sobre o primeiro símbolo de v. • A fita contem apenas brancos após o último símbolo de v.
MTConfiguração: exemplo • 1011q01111 • Representa a configuração quando a fita é 101101111, o estado atual é q, e a cabeça está atualmente sobre o segundo 0. q 1 1 0 1 1 1 0 1 1 ᶸ ᶸ ...
MTComputação: definição formal • Dizemos que a configuração C1origina a configuração C2, se a máquina de Turing puder ir de C1para C2em um único passo. • Suponha que temos a, b e c em , ue v em *e os estados qie qj . • uaqibvorigina u qjacvse: • (qi,b) = (qj,c,E). • Isso cobre o caso em que a máquina de Turing move para a esquerda.
MTComputação: definição formal • Para um movimento para a direita, digamos que • uaqibvorigina uacqjv se: • (qi,b) = (qj,c,D).
MTComputação: definição formal • Casos especiais ocorrem quando a cabeça estiver em uma das extremidades da configuração. • Para a extremidade esquerda: • qibvorigina qjcv • Se a transição envolver um movimento para a esquerda (porque cuidamos para que a máquina não passe da extremidade esquerda da fita), • qibvorigina cqj v • para a transição que envolve um movimento para a direita.
MTComputação: definição formal • Para a extremidade direita: • uaqié equivalente a uaqiᶸ • porque assumimos que brancos vêm após a parte da fita representada na configuração.
MTComputação: definição formal • A configuração inicial de M sobre a entrada w é • qo w • A máquina está no estado inicial q0 com sua cabeça na posição mais à esquerda sobre a fita.
MTComputação: definição formal • Em uma configuração de aceitação, o estado da configuração éqaceita. • Em uma configuração de rejeição, o estado da configuração é qrejeita. • Configurações de aceitação e de rejeição são configurações de parada e portanto não originam configurações adicionais.
MTComputação: definição formal • Uma MTM aceita a entrada w se uma sequência de configurações C1, C2, ..., Ckexiste, onde • C1 é a configuração inicial de M sobre a entrada w, • cada Ci origina Ci+1 e • Ck é uma configuração de aceitação. • A coleção de cadeias que M aceita éa linguagem de M, ou a linguagem reconhecida por M, denotada L(M).
MTLinguagem Recursivamente Enumerável • Chame uma linguagem de Turing-reconhecível (ou recursivamente enumerável) se alguma máquinade Turing a reconhece.
MTDecisores • Quando iniciamos uma MT sobre uma entrada, três resultados são possíveis. A MT pode aceitar, rejeitar, ou entrar em loop. • As MTs que são chamadas de decisores, sempre tomam uma decisão de aceitar ou rejeitar. • Umdecisorque reconhece alguma linguagem também é dito decidir essa linguagem.
MTLinguagem Recursiva • Chame uma linguagem de Turing-decidívelou simplesmente decidívelse alguma máquina de Turing a decide.