90 likes | 182 Views
Informática Teórica Engenharia da Computação. Máquinas de Turing Exemplos. D escrevemos uma MT M 1 bem simples que faz a soma de dois inteiros positivos, representados por * e separados por um branco na fita. ᶸ. *. *. *. *. *. *. *. ᶸ. *. ᶸ. Exemplo.
E N D
Informática Teórica Engenharia da Computação
Máquinas de TuringExemplos • Descrevemos uma MT M1 bem simples que faz a soma de dois inteiros positivos, representados por * e separados por um branco na fita. ᶸ ... * * * * * * * ᶸ * ᶸ
Exemplo • q0 Ler os * movendo a fita para a direita, ao encontrar o branco escrever *, move para a direita, vai para estado q1 • q1Ler os * ,move para a direita, continuar no estado 1 até encontrar um branco (fim da fita), mover para esquerda, ir para estado 2 • q2Apagar * e ir para um estado de aceitação. * D * D ᶸ ... q0 q1 qa q2 ᶸ E ᶸ * , D * ᶸ , D * * * * * * * ᶸ * ᶸ
Exemplo • Uma MT para aceitar {anbn | n 0} B D qoaabb B D q0 q3 Aq1abb A D Aaq1bb ᶸ D a A , D ᶸ D Aq2aBb b B,E qa q1 q2 ᶸ ... q2AaBb a,B D a,B E Aq0aBb a AABBqa a a b b b ᶸ AAq1Bb AABq3B AABBq3 AAq0BB AAq2BB Aq2ABB AABq1b
Exemplos • Uma MT para aceitar {anbncn| n 0} C,b,B,a E B D B D A D q0 q4 q3 C D a A ,D c C,E ᶸ D b B,D q5 q2 q1 C D a,B D ᶸ D b,C D qa
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..
MT- Exemplo • Seja C = {aibjck| i j = k e i, j, k 1}. • Faça uma varredura na entrada da esquerda para a direita para determinar se ela é um membro de a+b+c+e rejeite se ela não o é. • Retorne a cabeça para a extremidade esquerda da fita. • Marque um a e faça uma varredura para a direita até que um b ocorra. Váe volte entre os b's e os c's, marcando um de cada até que todos os b's tenham terminado. Se todos os c's tiverem sido marcados e alguns b's permanecem, rejeite. • Restaure os b's marcados e repita o estágio 3 se existe um outro a para marcar. Se todos os a's tiverem sido marcados, determine se todos os c'stambém foram marcados. Se sim, aceite; caso contrário, rejeite ..
Exemplo C = {aibjck| i j = k e i, j, k 1} a D b D c D a A,D b D c D 1 4 2 3 ᶸ D b,CD B b,E 5 A D ᶸ D Aceita 11 10 a,b,c E aA,D A D C E 6 a D 9 b B,D b B,D BD cC,E 7 8 b,CD C,bE