51593986 JFLAP Guia Minima de Uso

9
Uso del Simulador JFLAP Guía de instrucciones mínimas T omás García iz JoLuis F er ndez Vi ndel 30 de Noviembre de 2006 Esta herramienta permite la edición y la ejecución de autómatas, entre ellos, las diversas variantes de máquinas de Turing que se exponen en la asignatura. Su utilización básica es muy sencilla. Este documento solo considera el con-  junto mínimo de acciones necesarias. El lector puede investigar adicionalmente el resto de funcionalidades de la aplicación. 1. An tes de ejecutar la apli cación 1.1. Descar ga y a cti v aci ón La apli cació n es desca rgabl e de ap.org de forma gratuita. Lo único que se nos solicita a cambio es cumplimentar un sencillo formulario con nes estadís- ticos. Esta aplicación está escrita en Java, por lo tanto lo único que necesitamos es tener instalada la máquina Java (1.4 o superior). Las intrucciones de ejecución (en inglés) se encuentran en http://www.jap.org/getjap.html Mac OS X: hacer un doble click sobre el archivo jflap.jar descargado. Unix/Linux: abra una ventana de comandos (shell), sitúese en el directorio del chero Jflap.jar y ejecute java -jar jflap.ja r Windows: hacer un doble click sobre el archivo jflap.jar descargado. 1.2. Uno s min uto s de re exión previa Como siempre que estamos programando una aplicación, y construir una maquina de Turing no es ni más ni menos que una forma diferente de programar, es muy aconsejable haber realizado un trabajo previo: ármese de paciencia, lápiz y papel y dibuje un primer esquema. 1

Transcript of 51593986 JFLAP Guia Minima de Uso

Page 1: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 1/9

Uso del Simulador JFLAP

Guía de instrucciones mínimas

Tomás García Sáiz José Luis Fernández Vindel

30 de Noviembre de 2006

Esta herramienta permite la edición y la ejecución de autómatas, entre ellos,las diversas variantes de máquinas de Turing que se exponen en la asignatura.

Su utilización básica es muy sencilla. Este documento solo considera el con- junto mínimo de acciones necesarias. El lector puede investigar adicionalmenteel resto de funcionalidades de la aplicación.

1. Antes de ejecutar la aplicación

1.1. Descarga y activación

La aplicación es descargable de flap.org de forma gratuita. Lo único que senos solicita a cambio es cumplimentar un sencillo formulario con fines estadís-ticos.

Esta aplicación está escrita en Java, por lo tanto lo único que necesitamos es

tener instalada la máquina Java (1.4 o superior). Las intrucciones de ejecución(en inglés) se encuentran en http://www.jflap.org/getjflap.html

Mac OS X: hacer un doble click sobre el archivo jflap.jar descargado.

Unix/Linux: abra una ventana de comandos (shell), sitúese en el directoriodel fichero Jflap.jar y ejecute java -jar jflap.jar

Windows: hacer un doble click sobre el archivo jflap.jar descargado.

1.2. Unos minutos de reflexión previa

Como siempre que estamos programando una aplicación, y construir unamaquina de Turing no es ni más ni menos que una forma diferente de programar,

es muy aconsejable haber realizado un trabajo previo: ármese de paciencia, lápizy papel y dibuje un primer esquema.

1

Page 2: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 2/9

2. Uso de la herramienta.

2.1. Ventana inicial.

Cuando se ejecuta la aplicación se nos presenta una primera ventana con unmenú, tal y como se muestra en la figura 1. En la asignatura de Autómatas IInos interesa especialmente la generación de maquinas de Turing, tanto de unacinta como de múltiples cintas. Así, nos centraremos, respectivamente, en lasopciones “Turing Machine” y “Multiple-Tape Turing Machine”.

Figura 1: Menú inicial de JFlap: elección de tipo de autómata

Al pulsar sobre el botón (resaltado en azul) se abre una nueva ventanade edición para máquinas de Turing de una cinta (figura 2). Éstas resultarándeterministas o no, dependiendo de las transiciones que se fijen posteriormente

entre los estados.

2.2. Ventana de edición.

La ventana de edición facilita un espacio donde definir (mediante el interfazgráfico) nuestra máquina de Turing. Para ello utilizaremos los 6 botones que

2

Page 3: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 3/9

Figura 2: Ventana que facilita el diseño gráfico de autómatas

tenemos en la parte superior de la misma. Explicaremos el uso de los cuatro pri-meros mientras definimos una Maquina de Turing de ejemplo: aquélla que buscala primera aparición de la serie “xyxy” en la cadena de entrada, sustituyéndolapor “aaaa”, y que para cuando la encuentra o llega a un blanco.

2.3. Generación de los estados.

Del conjunto de iconos superiores (figura 3), utilizaremos el segundo botón,sombreado en la imagen.

Figura 3: Iconos superiores para edición

En este estado, cada pulsación en la ventana de edición nos crea un nuevo

nodo. En nuestro caso necesitamos 12, tal y cómo se aprecia en la figura 4.Cada nodo aparece ya con un nombre asignado mediante un patrón secuen-cial. Tanto el nombre como la posición se pueden corregir posteriormente. Demomento, para corregir la posición, pulse el icono situado más a la izquierda(editor de atributos), y arrastre los nodos donde desee.

3

Page 4: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 4/9

Figura 4: Doce pulsaciones: doce estados

2.4. Generación de las transiciones

Para generar las transiciones utilizaremos el tercer botón, marcado en grisen la figura 5. Una transición entre dos estados se define posicionándose sobre elprimer estado y manteniendo pulsado el ratón hasta el segundo. Si la transiciónes de un estado en sí mismo basta pulsar sobre ese estado.

Figura 5: Entrada al estado de edición de transiciones

En este punto aparece una terna de posiciones que rellenar. El primer espaciocorresponde al carácter que lee la máquina antes de la transición; el segundo,al carácter que escribe al ejecutar la transición; y el tercero, el movimiento queejecuta.

En toda máquina de Turing (de una o de varias cintas) se facilitan comomovimientos posibles L, R y S (respectivamente, izquierda, derecha y estacio-nario). El símbolo de espacio en blanco se obtiene borrando todo el contenidode la celda que se rellena (lo produce la aplicación).

En la figura 6 se muestra un ejemplo de edición de transiciones entre estados.La terna a;y,R desde el estado q 10 al q 11 corresponde a la transición (q 10, a) (q 11, y ,R).

4

Page 5: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 5/9

Figura 6: Estados y transiciones

Figura 7: Cambio de posición y atributos

2.5. Editor de Atributos

Ya hemos usado el primer botón, el situado a la izquierda en la figura 7.Se utilizó para reposicionar los estados. Si se hace sobre estados con tran-

siciones ya definidas, se mantiene la transición “elásticamente” hasta la nuevaubicación.

Pulsando el botón derecho del ratón sobre un estado pueden variarse (figura8) algunos de sus atributos: si es inicial o final, el nombre del estado, algunaetiqueta adicional que se le quiera añadir, ...

El resultado de marcar (figura 9) q 0 como estado inicial es que se le señalagráficamente con un triangulo de entrada. Los estados finales se marcan con undoble círculo.

2.6. Botón de borrado.

En el supuesto que nos equivoquemos al realizar alguna de las operacionesanteriores disponemos de un botón para borrar. Es el cuarto icono y se muestrasombreado en la imagen 10.

Tras pulsar ese cuarto icono, basta pulsar sobre una transición o estado para

5

Page 6: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 6/9

Figura 8: Cambio de atributos de un estado

Figura 9: El estado q 0 señalado como estado inicial

,

Figura 10: Eliminación de transiciones o estados

6

Page 7: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 7/9

,

Figura 11: Reeditando las dos transiciones de q 5 a q 6

eliminarlo. En el desarrollo de nuestro ejemplo, como nos habíamos confundido

en las transiciones entre q 5 y q 6, las borramos y las volvemos a generar (tercericono). El resultado se muestra en la figura 11.

2.7. Reutilización modular de máquinas

Falta mencionar, brevemente, la utilidad de los últimos 2 iconos, los situadosa la derecha del menú de edición. El quinto permite insertar una “subrutina”Turing (una máquina almacenada en un fichero) dentro del esquema de la má-quina que se está editando. Y el sexto facilita la definición de alguna transiciónespecial entre estos bloques.

Esta es una funcionalidad que se ha añadido recientemente y que puedeencontrarse en los manuales originales en el apartado “Building blocks”.

3. Ejecución de la máquina de Turing.

Una vez editada, se puede simular el funcionamiento de esa máquina para unaentrada dada. Hay varios modos distintos de ejecución (paso a paso, ejecuciónrápida sobre una o múltiples entradas, etc.). En esta guía esencial trataremossólo la ejecución “paso a paso”.

3.1. Input

Para ver la ejecución de la maquina debemos de dar a la maquina una cintasobre la que trabajar: entramos en el menú “Input” y pulsamos sobre el botón “Step ...”, tal y como se ve en la figura 12.

Tras realizar esta acción accedemos a una nueva ventana donde se introducela cadena de entrada con la que se quiere trabajar (figura 13).Si estuvieramos editando una máquina de tres cintas, serían 3 las pequeñas

ventanas de introducción de datos que se nos mostraría. En cualquier caso, elcarácter blanco no se escribe: si las cintas 2 y 3 sólo contienen espacios en blanco,se dejarían tal cual (sin rellenar).

7

Page 8: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 8/9

Figura 12: Ejecución paso a paso

,

Figura 13: Introducción de la cadena de entrada

8

Page 9: 51593986 JFLAP Guia Minima de Uso

7/22/2019 51593986 JFLAP Guia Minima de Uso

http://slidepdf.com/reader/full/51593986-jflap-guia-minima-de-uso 9/9