Você está na página 1de 5

Alunos: Pedro Sanches Junior e Thiago Augusto Lopes Genez Disciplina: Teoria da Computao Manual de Operao do Simulador de Mquinas

de Turing

Existem 2 maneiras de executar o programa simulador de Mquinas de Turing TuringMachine.exe. A primeira atravs da execuo direta do programa. Para tal, antes de executar o programa, devem-se seguir alguns passos. So eles: 1. Inserir em alfabeto.txt o alfabeto de smbolos de entrada separados por

espao simples como segue abaixo. ab 2. Inserir em fita.txt a palavra de entrada a ser analisada pela mquina,

separando cada smbolo por espao simples, como demonstrado abaixo. abaa 3. Inserir em programa.txt as funes de transio precedidas pelo conjunto

de estados finais que por sua vez precedido pelo estado inicial da mquina. O correto preenchimento do documento programa.txt deve obedecer aos seguintes passos: Preencher a primeira linha do documento com o estado inicial da mquina, conforme exemplo abaixo
q0

Preencher a segunda linha com o conjunto de estados finais da mquina separados por espao simples, como exemplificado a seguir
q0 q5 q6

As demais linhas devem ser preenchidas com as funes de transio, uma em cada linha, separando, em cada funo, por espao simples os seguintes itens: Estado Corrente, Smbolo Lido da Fita, Novo Estado, Smbolo a ser Gravado e Sentido de Movimento da Cabea (Onde Esquerda e Direita so representados por L e R respectivamente). Um smbolo branco representado pela letra maiscula B e o smbolo marcador de incio da fita , por conveno, dado pela letra maiscula S. O alfabeto auxiliar montado conforme as produes. Smbolos distintos daqueles encontrados em alfabeto.txt mas encontrados em programa.txt so considerados alfabeto auxiliar. O exemplo a seguir esquematiza o exemplo de duas funes de transio (uma em cada linha).
q1 B q3 B L q2 a q2 a R

A correta interpretao das linhas deve ser: o Tendo como estado corrente q1 e o Smbolo Lido na fita B, o novo estado determinado q3, o smbolo a ser gravado na fita B e o movimento da cabea para a Esquerda (L), para a primeira linha; o Tendo como estado corrente q1 e o Smbolo Lido na fita B, o novo estado determinado q3, o smbolo a ser gravado na fita B e o movimento da cabea para a Esquerda (L), para a segunda linha; O Quadro abaixo a parte de um arquivo programa.txt j preenchido.
q0 q0

q0 a q1 B R q0 b q2 B R q1 a q1 a R

Neste caso, o programa gera um arquivo sada.txt que retorna o passo a passo do processo, bem como a concluso final de aceitao ou rejeio da cadeia de entrada pela mquina. A segunda maneira de executar o programa TuringMachine.exe ocorre quando se deseja usar arquivos com nomes diferentes de alfabeto.txt, fita.txt e programa.txt para alfabeto, fita e funes de transio, respectivamente. Neste caso, no prompt de comando, com o destino na pasta onde se encontra o arquivo executvel TuringMachine.exe digita-se, separado por espao simples, os nomes dos arquivos, respectivamente, executvel, que contm as funes de transio, que contm a palavra de entrada a ser analisada, o alfabeto de smbolos de entrada, o nome do novo arquivo de sada desejado e um nmero que em caso de loop infinito, ser o nmero mximo de loops que a mquina ir executar. No primeiro caso esse nmero foi pr-estabelecido e fixado como 50. TuringMachine.exe programa2.txt fita4.txt alfabeto4.txt saida5.txt 50 No caso acima, executa-se o programa TuringMachine.exe com as funes transio localizadas em programa2.txt, palavra de entrada localizada em fita4.txt, alfabeto de smbolos de entrada localizado em alfabeto4.txt e novo arquivo de sada saida5.txt. Para casos de laos infinitos, o programa executa o loop 50 vezes. No primeiro caso, caso no exista um dos arquivos especificados, o programa exibe uma mensagem de erro e aponta o arquivo inexistente.

Relatrio de Casos de Teste

A seguir seguem alguns casos de teste realizados durante a execuo do programa. Como o arquivo de sada, dependendo do caso pode ser ligeiramente extenso, aqui s ser apresentado o arquivo programa.txt que contm as funes de transio, seu alfabeto, sua linguagem reconhecida, a cadeia de entrada e do arquivo de sada, somente a concluso. Demais detalhes sobre o processo podem ser observados no arquivo de sada escolhido. Programa Alfabeto Linguagem Reconhecida
q0 q0 ab A maquina de Turing parou e respondeu FALSE para palavra: ab

Cadeia de Entrada

Concluso

q0 a q1 B R q0 b q2 B R q1 a q1 a R q1 b q1 b R q1 B q3 B L q2 a q2 a R q2 b q2 b R q2 B q4 B L q3 a q5 B L q4 b q5 B L q5 a q5 a L q5 b q5 b L q5 B q0 B R aabbaa ab A mquina utilizada neste exemplo reconhece palavras de entrada que sejam palndromos pares. A maquina de Turing parou e respondeu TRUE para palavra: aabbaa abba A maquina de Turing parou e respondeu TRUE para palavra: abba

q0 qf ab A mquina q0 a q1 a R q0 b qf b R q0 c qf c R q0 B qf B R q1 b q2 b L q1 a qf a R q1 c qf c R q1 B qf B R abc utilizada neste exemplo reconhece palavras de entrada que no comecem com ab. ccabac A maquina de Turing parou e respondeu TRUE para palavra: ccabac ba A maquina de Turing parou e respondeu TRUE para palavra: ba A maquina de Turing parou e respondeu FALSE para palavra: ab

q0 q2

Programa Simples que reconhece

abb

A maquina de Turing parou e respondeu TRUE para palavra: abb A maquina de Turing parou e respondeu FALSE para palavra: bab A maquina de Turing parou e respondeu FALSO para palavra: baabb

q0 a q2 a R

ab

qualquer palavra que comece com a

bab

baabb

Você também pode gostar