Está en la página 1de 26

Universidad Tecnológica

de la Selva

Presenta:
Magnolia Noemí Hernández Gutiérrez
¿Quién fue Alan Turing?
 Alan Turing fue un científico
inglés que hizo grandes
aportaciones en: matemáticas,
filosofía, biología, ciencias de la
computación, etc.

 La máquina de Turing (MT) fue


descrita por Alan Turing en
1936.

2 Máquina de Turing utilizando Jflap


¿Qué es una MT?
 Dispositivo capaz de manipular símbolos
en una tira de cinta considerando ciertas
reglas.

pueden simular la
lógica de cualquier
algoritmo de una
computadora.

3 Máquina de Turing utilizando Jflap


¿Cómo está formada una MT?
Una MT está formado por:
 Cinta infinita dividida en celdas
 Cabezal de lectura/escritura capaz de
moverse sobre dicha cinta.

4 Máquina de Turing utilizando Jflap


¿Qué proceso sigue la MT?
 Lee el carácter de la cinta
Según el estado en que está:
 Pasa a un nuevo estado
Puede:
Escribir en la cinta
Moverse

5 Máquina de Turing utilizando Jflap


¿Cómo dibujo una MT?
 Grafo con nodos y transiciones de la
siguiente forma: a;b,c
p q

 Si leo a, escribo b y hago la acción c

 Acciones posibles:
 ►: mover cinta a la derecha (R, right)
 ◄: mover cinta a la izquierda (L, left)
 Dejar la cinta donde está (S, stay)

6 Máquina de Turing utilizando Jflap


¿Cómo dibujo una MT?
 Toda MT se representa por una tabla de
transición. Si la transición no es posible
la MT se detiene.

7 Máquina de Turing utilizando Jflap


¿Cómo dibujo una MT?

8 Máquina de Turing utilizando Jflap


¿Qué es JFlap?
 JFLAP (Java Formal Language and
Automata Package) es una herramienta
para la enseñanza y la visualización
interactiva de lenguajes formales.

 Permite crear y operar sobre autómatas


(finitos, máquinas de Moore y Mealy,
Turing…), gramáticas, expresiones
regulares y L-systems.

9 Máquina de Turing utilizando Jflap


¿Cómo creo una MT en JFlap
7.0?

Seleccionar la opción
Turing Machine

10 Máquina de Turing utilizando Jflap


Cont…

Crear transiciones
Crear estados
Eliminar elemento

11 Máquina de Turing utilizando Jflap


Cont…

Si lee 1; escribe
blanco y se mueve a
la derecha
Si lee blanco; escribe
blanco y se mantiene
en su lugar

12 Máquina de Turing utilizando Jflap


Cont…
clic derecho al nodo
q0 para indicarle
que es el inicio

clic derecho al nodo


q1 para indicarle
que es el final

13 Máquina de Turing utilizando Jflap


Cont…

MT que lee 1’s y


los convierte a
espacios en blanco.

14 Máquina de Turing utilizando Jflap


¿Cómo hago la simulación de
la MT en Jflap 7.0?

Seleccionar la
opción Step

15 Máquina de Turing utilizando Jflap


Escribir la Cont…
cadena y dar clic
en aceptar

Pestaña del
simulador

Simulación
de la MT

clic en el botón
step

16 Máquina de Turing utilizando Jflap


Cont…

Fin de la
simulación
Los 1’s se han
convertido en
espacios en blanco

17 Máquina de Turing utilizando Jflap


Ejercicios
 1. Diseñar una Máquina de Turing que calcule el complemento a 1 de
un número binario. (Es decir, que sustituya los 0‟s por 1‟s y los 1‟s por
0‟s). El cabezal debe terminar al inicio de la palabra.

 2. Diseñar una Máquina de Turing que obtenga el sucesor de un


número en codificación unaria. Considerar en la codificación unaria
que el 0 se representa por la cadena vacía, el 1 por 1, el 2 por 11, etc.

 3. Diseñar una Máquina de Turing que obtenga el predecesor de un


número en codificación unaria.

 4. Diseñar una Máquina de Turing que calcule la paridad de un número


binario. Es decir, si el número de 1‟s de la cadena es par, se añade un
0 al final, y si es impar, se añade un 1.

18 Máquina de Turing utilizando Jflap


Ejercicios
Diseñar una Máquina de Turing que sea un contador unario de
caracteres del lenguaje con alfabeto Σ= {a,b,c}. Es decir, se deben
devolver tantos 1‟s como caracteres haya en la palabra de entrada.
Considerar la codificación unaria del 0 igual que en el ejercicio 2.

 5. No se debe mantener la palabra.

 6. Mantener la posición de la palabra de entrada, pero sustituida por


marcas, y a continuación, el contador.

 7. Se debe mantener la palabra de entrada y después debe aparecer


el contador.

19 Máquina de Turing utilizando Jflap


Ejercicios
 8. Diseñar una Máquina de Turing que tome como entrada una cadena con
M 1‟s y N A‟s (M<=N), y cambia las M primeras A‟s por B‟s. Por ejemplo,
para la entrada “b11AAAAAb” devuelve en la cinta “b11BBAAAb”, donde „b‟
representa la celda de la cinta vacía.

 9. Diseñar una Máquina de Turing que obtenga el sucesor de un número


binario.

 10. Diseñar una Máquina de Turing que obtenga el antecesor de un


número binario.

20 Máquina de Turing utilizando Jflap


1

21 Máquina de Turing utilizando Jflap


3

22 Máquina de Turing utilizando Jflap


5

23 Máquina de Turing utilizando Jflap


7

24 Máquina de Turing utilizando Jflap


8

25 Máquina de Turing utilizando Jflap


9

10

26 Máquina de Turing utilizando Jflap

También podría gustarte