davalos perez - fibonacci factorial
Post on 03-Jan-2016
78 Views
Preview:
TRANSCRIPT
Má quinás de Turing. Factorial y Fibonacci.
Alumna: Jessica Merari Dávalos Pérez.
Materia: Lenguajes y Autómatas I.
Prof.: Ana Luisa Millán Castro.
16 de Mayo del 2013
1
Fibonacci.
Antes de empezar con la aplicación de las máquinas de Turing a la sucesión de los
números de Fibonacci, definiremos primero: ¿Qué es la Serie de Fibonacci?
Según Wikipedia: “En matemáticas, la Serie de Fibonacci es la
siguiente sucesión infinita de números naturales:
La cual es utilizada en infinidad de aplicaciones en las ciencias de la computación,
matemáticas y teoría de juegos. Así como también aparece en configuraciones
biológicas, como por ejemplo en las ramas de los árboles, en la disposición de las hojas
en el tallo, en la flor de la alcachofa y en el arreglo de un cono.”
Como podemos darnos cuenta, se comienza la sucesión con los números 0 y 1. Y cada
siguiente elemento de la serie corresponde a la suma de los dos números anteriores.
Ésta serie fue propuesta en Europa del siglo XIII por Leonardo de Pisa, también
conocido como Fibonacci.
Los números de Fibonacci están definidos por la ecuación: Partiendo
de los dos primeros valores predeterminados y , se obtienen los
siguientes valores: , , , , , para
Entonces para la aplicación de esta sucesión a la siguiente máquina de Turing
necesitaremos tener presente los siguientes datos:
1- La siguiente máquina representa los números por medio de unos, es decir:
n= 3 -» 1 1 1; n=5 -» 1 1 1 1 1.
2- Tiene como entrada un número n (cómo en el punto anterior) y como salida un
número de Fibonacci-n (Ejemplo: Fibonacci-6: 1 1 1 1 1 1 1 1).
3- Se compone de un estado inicial: q0, un estado final: qf y los siguientes estados
internos:
2
4- Se compone del siguiente alfabeto:
A continuación se muestra la tabla de transiciones, la cual se compone de 100 reglas, y
cabe mencionar como observación, esta máquina comienza la simulación de la serie de
Fibonacci a partir de los dos primeros unos. Lo primero que hace es, desde el estado q0
reconocer el primer 1, sustituir su valor por una x y mover el control finito a la derecha
para luego pasar al estado q101 donde se seguirán reconociendo n cantidad de 1’s que
como ya lo había mencionado, dicha máquina necesita que se introduzcan los números
representados por 1’s (n=5 => 1 1 1 1 1) para luego reconocer a que numero de la
serie de Fibonacci pertenece.
3
4
5
Factorial.
De la misma forma que explicamos la aplicación de máquina de Turing a la sucesión de
Fibonnaci, así mismo explicaremos de una manerá más practica el funcionamiento de
una máquina de Turing para resolver el factorial de un número.
Para eso primero debemos saber: ¿Qué es un número factorial? Y ¿Cómo se calcula?
De nueva cuenta recurrimos a Wikipedia, quien nos informa:
“El factorial para todo entero positivo n, el factorial de n o n factorial se define como el producto de todos los números enteros positivos desde 1 (es decir, los números naturales) hasta n.
La multiplicación anterior se puede simbolizar también como
La operación de factorial aparece en muchas áreas de las matemáticas, particularmente en combinatoria y análisis matemático. De manera fundamental, el factorial de n representa el número de formas distintas de ordenar n objetos distintos (elementos sin repetición). Este hecho ha sido conocido desde hace varios siglos, en el s. XII por los estudiosos indios. La notación actual n! fue usada por primera vez por Christian Krampen 1803.”
Entonces, para la explicación del funcionamiento de una máquina de Turing para el factorial de un número nos apoyaremos en la siguiente página web:
http://turingmaschine.klickagent.ch/mehrband/?lang=en#__ la cual nos proporciona una aplicación que permite ver detalladamente los movimientos del control finito en la cinta que pertenece a la máquina de Turing, no sólo calcula el factorial de un número sino que también calcula sumas, restas, divisiones y multiplicaciones de números naturales.
6
Primero vamos a describir el funcionamiento de la aplicación con la siguiente imagen:
Y como ejemplo vamos a simular el número 1! paso a paso y veremos su proceso en la tabla de transiciones que aparece bajo la cinta:
Primero introducimos el numero que simularemos y la operación que realizará la máquina.
Elige la operación que deseas
simular
Introduce los valores para la simulación.
Aquí aparecerán los
movimientos del
control finito. Elige “Reset” para realizar otra simulación. “Step”para ver la
simulación paso a paso. “Run” para obtener un resultado rápido.
Muestra el diagrama de los movimientos de estados y sus transiciones.
Muestra la tabla de transiciones.
7
Paso #1: Se sitúa el control finito en el primer carácter. Se pasa al estado 1.
Paso #2:Se lee el carácter, no se hacen cambios. Se mueve a la derecha al estado 2.
Paso #3: Con un blanco, se deja el blanco. Se mueve a la derecha al edo 12.
Paso #4: Se lee un . y se sustituye con “ ”. El control se mueve a la derecha al edo 13.
8
Paso #5: Se lee un “ ” y se deja intacto. El control se mueve a la derecha al edo 14.
Paso #6: Se lee un “ ” y se deja intacto. El control se mueve a la derecha al edo 15.
Paso #7: Se lee un “ ” y se deja intacto. El control se mueve a la derecha al edo 31.
9
Paso #8: Se lee un “ ” y se deja intacto. El control se mueve a la derecha al edo 98.
Paso #9: Se lee un “ ” y se sustitue con “ . ” y el control finito hace un “halt”en el estado #98, marcado con la flecha roja. Marcando así el final del procesamiento.
Como pudimos ver con la explicación anterior, el control finito de la maquina de turing para calcular el factorial, primero “lee” las casillas ocupadas por “ . “ para saber de qué número se desea calcular el factorial. Luego, se va moviendo el control finito a traves de los estados según se desee calcular el número factorial, la cantidad de pasos necesitados variará según lo grande de ese numero, por ejemplo para éste caso se necesitaron 8 movimientos del control finito antes de encontrarse con un “halt”, pero por ejemplo para 2! son 21 movimientos del control finito, para 3! = 210 movimientos y así respectivamente, se irá incrementando el número de movimientos.
10
Bibliografía.
http://turingmaschine.klickagent.ch/einband/?&lang=en#3_!_
http://es.wikipedia.org/wiki/Factorial
http://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci
http://arxiv.org/pdf/cs/0601050.pdf
top related