Вы находитесь на странице: 1из 9

Informe comparativo de simuladores de mquinas de Turing para la

asignatura Complejidad Computacional.

Simuladores de Mquinas de Turing.


(JFLAP, xTuringMachine, Uber Turing Machine. )

1. Objetivos del documento:


El presente documento trata de una descripcin comparativa entre
simuladores que permiten emular la construccin y comportamiento de
mquinas de Turing.
Adems de compararlos, se expondrn las ventajas e inconvenientes que
ambos aportan en cuanto a la usabilidad y a la eficiencia y eficacia que
presentan a la hora de realizar el cmputo.
Otras actividades que se realizarn son la descripcin de dos Mquinas de
Turing especficas y que son con las que se realizaron las pruebas de
evaluacin en los simuladores.

Al final del documento de redactar una breve conclusin que reflejar la


opinin personal del autor en cuanto a cul de los simuladores le parece
mejor.

2. Mquinas de Turing utilizadas como prueba:


Considerando una Mquina de Turing con = {1,2} y una
cadena de entrada en la cinta delimitada por smbolos blancos y
la cabeza de lectura/escritura situada sobre el smbolo de la
cadena ms a la derecha.

Mquina de Turing que encuentre el primer 2 en la cadena hacia


la izquierda de la cabeza lectura/escritura.
Imagen01

Mquina de Turing que encuentre dos 2 consecutivos en la cinta


hacia la izquierda de la cabeza lectura/escritura.
Imagen02

3. Simuladores:
3.1. Primer simulador: JFLAP
JFLAP es un simulador que permite la creacin de varios tipos de

artilugios de cmputo, por ejemplo permite la creacin de varios


autmatas finitos, de gramticas, y como no, de Mquinas de Turing.

3.1.1. Ventajas:
- La principal ventaja que ofrece esta aplicacin es la clara e intuitiva
navegacin ya que se produce de forma grfica y atractiva a travs de las
diversas opciones que ofrece, todas accesibles desde un men o ventana
principal.
- Otra ventaja inherente a JFLAP es la capacidad de integrar diferentes
simuladores en una misma aplicacin sin necesidad de instalar un
programa por cada tipo de simulador que necesitemos.
- Las mltiples opciones que ofrece para realizar las simulaciones de
cmputos son un plus aadido al programa.

3.1.2. Inconvenientes:
- A pesar de integrar un amplio conjunto de herramientas variadas, en lo
referente a la simulacin de Mquinas de Turing no ofrece grandes
capacidades en cuanto a definir caractersticas propias de la M.T. por
ejemplo, si queremos indicar que el cabezal de L/E est situado a la
derecha de la cadena y lee hacia la izquierda, cometera errores:
ERROR JFLAP
Imagen 03

Como podemos observar, ante las cadenas seleccionadas en la parte derecha de


la imagen, el resultado es rechazada, este resultado no coincide con lo que
debera ocurrir en la descripcin de la M.T. del ejemplo 1. Considero oportuno
nombrar que cambiando el tipo de movimiento hacia encontrar el primer 2 a la
derecha, la M.T. realiza el cmputo de forma correcta.

3.2. Segundo simulador: xTuringMachine


xTuringMachine es un simulador de Mquinas de Turing, cuya
descripcin se corresponde con la de un simulador para una mquina de
Turing fcil y accesible. Al igual que JFLAP, est desarrollado en el
lenguaje de programacin Java, pero no presenta las mismas
caractersticas de usabilidad que JFLAP.

3.2.1. Ventajas:
La principal ventaja que ofrece esta aplicacin es que realiza
cmputos de forma correcta, controlada y permite adems hacerlo de
forma grfica.
Como est especializado en el cmputo de Mquinas de Turing y no
en otro tipo de autmatas ni gramticas, presenta una mayor interfaz
dedicada a nicamente M.T.s y no nos distrae de dicho modelo de
cmputo.
La interfaz, a pesar de ser comprensible, no llega a ser del todo
intuitiva, pero no lo considero una desventaja mientras compute de forma
clara.

Permite la carga de la configuracin de la M.T. y de la cadena de


entrada para el cmputo desde un fichero externo con formato propio para
que la aplicacin pueda realizar el parseo.
Logr solventar el problema presente en la aplicacin JFLAP al
intentar simular una MT que comienza la lectura a la derecha y lee hacia la
izquierda.

3.2.2. Inconvenientes:
Antes de utilizar la aplicacin, al ser una aplicacin dedicada en su
totalidad a simular el cmputo de mquinas de Turing, se tiene la
sensacin de que va a poseer una mayor potencia y vamos a poder
realizar una mayor descripcin de la M.T, pero lo que sucede es que se
trata de una aplicacin mucho ms bsica que la analizada anteriormente
(JFLAP).
La definicin de la mquina, a pesar de estar accesible toda desde la
ventana principal, no es intuitiva y podra dar lugar a muchos fallos a
usuarios inexpertos.
Un ltimo inconveniente, y por ello no menos importante es que el
conjunto de smbolos que reconoce la mquina est predefinido y no
podemos usar otro, por ejemplo la siguiente imagen muestra.
Imagen04

3.3. Tercer simulador: Uber Turing Machine.


Uber Turing Machine es un programa simulador de mquinas de
Turing comercial de la empresa SuperUtils.com Software. Es una
aplicacin avanzada en el diseo de las mquinas, pero poco accesible al
usuario menos avanzado.

3.3.1. Ventajas:
Tiene un alto nivel de configuracin, creando una tabla en la que las
columnas son los smbolos definidos para la mquina y la filas son los
estados que contiene. El estado inicial es el estado 1 (primera fila de la
tabla de configuracin). El conjunto de smbolos posibles es muy alto y las
transiciones se definen como sigue: para la fila X(estado de origen) y la
columna Y(smbolo de lectura), la casilla contendr el smbolo de escritura,
el movimiento a realizar y el estado al que transitar (separados por un
espacio). La cinta de entrada/salida se le configura el tamao y los
caracteres de entrada que va a contener.

3.3.2. Inconvenientes:
Trabajar con tablas es poco visual y un usuario poco hecho a las
mquinas de Turing le resultara difcil y tedioso. La ejecucin por defecto
es muy rpida y casi no se puede apreciar qu ocurre en la cinta. Por
ltimo destacar el informe de ejecucin generado tras la misma, ofrece
gran cantidad de informacin pero oscurece averiguar con facilidad algo
tan bsico como saber si se ha terminado en un estado de aceptacin o
no.

Ventana principal del programa con el primer ejemplo de mquina creado.

Resultado de la ejecucin de la mquina anterior.

Ventana principal del programa con el segundor ejemplo de mquina creado.

Resultado de la ejecucin de la mquina anterior.

Вам также может понравиться