Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alejandro Final 200xw8
Alejandro Final 200xw8
Breve Introduccion
Jorge Alejandro Gutierrez Orozco
Escuela Superior de Computo
22 de agosto de 2008
Resumen
Hablaremos de algunas de las m
as comunes M
aquinas de Estados Fintos, una breve descripci
on sobre ellas, su definici
on formal y sus relaciones entre ellas. En la u
ltima secci
on se da una sencilla definici
on de una
M
aquina de Turing. Existen varios temas que se deben de conocer antes de
abordar M
aquina de Turing, pero dado que la explicaci
on que se propone
no es del todo profunda, no es necesario tener amplias bases te
oricas. El
presente va dirigido a alumnos de Nivel Superior como material de apoyo
en el estudio de M
aquinas de estados finitos. Se ofrece un enfoque diferente
con explicaciones sumamente sencillas.
1.
Introducci
on
Las M
aquinas de estados Finitos conocidas como Finite State Machines por
su traducci
on al Ingles, nos sirven para realizar procesos bien definidos en un
tiempo discreto. Reciben una entrada, hacen un proceso y nos entregan una
salida. Notemos que estas maquinas hacen una computaci
on.
En otras palabras, imaginemos una maquina capaz de seguir una secuencia
finita de pasos al introducir un conjunto de datos en ella, solo se puede leer un
dato en cada paso que se realize, por tanto el n
umero de pasos a seguir est
a dado
por el n
umero de datos a introducir. Cada entrada diferente genera una salida
diferente, pero siempre el mismo resultado con los mismos datos de entrada.
Por lo tanto una computacion es capaz de resolver un problema, s y solo
s tiene una solucion algortmica, es decir, puede ser descrito mediante una secuencia finita de pasos bien definidos.
Mediante una computacion podemos encontrar soluciones a problemas que
teoricamente tienen una representacion algortmica, pero que pueden necesitar
tal cantidad de recursos (factores como el tiempo y el espacio de almacenamiento) que desde el punto de vista practico no se puede llegar a la solucion.
2.
M
aquinas de Estados Finitos
Los Aut
omatas se clasifican en 2 tipos:
Aut
omata Finito Determinsta.
Aut
omata Finito no Determinsta.
Siempre llamamos un Aut
omata como Aut
omata Finito, esto nos puede llevar a pensar que existe algun tipo de Aut
omata Infinito, lo cual no tiene mucho
sentido pensar en un tipo de M
aquina que tiene un conjunto infinito de estados,
pero a
un se discute su utilidad para prop
ositos practicos. Un Aut
omata Infinito tiene cintas infinitas o registros de almacenamiento de capacidad ilimitada,
esto le da el car
acter de infinito [5].
Aut
omatas Finitos Determinstas. Un Automata recibe secuencialmente
una cadena de smbolos y cambia de estado por cada smbolo ledo o tambien puede permanecer en el mismo estado. Al final de la lectura el estado del
Aut
omata nos indica si la cadena es aceptada o mejor dicho pertenece al Lenguaje que describe nuestra maquina. Si al final de leer todos los smbolos de
entrada la maquina est
a en alguno de los estados Finales entonces esa cadena
es aceptada, si el estado no es final entonces la cadena no pertenece al lenguaje.
Las partes que componen una Automata son 5 y se pueden definir:
A = {Q, q0 , F, , }
donde:
Q: Conjunto finito de estados.
q0 : Estado inicial donde q0 Q. Debe haber uno y s
olo un estado incial.
F : Conjunto de estados finales F Q. El estado q0 tambien puede ser final.
: Alfabeto finito de entrada.
: Funci
on de Transici
on Q Q.
Supongamos que el Aut
omata se encuentra en el estado qi donde qi Q,
tambien tenemos el smbolo a donde a . Una entrada a causa que el Automata cambie del estado qi al estado qk . La funci
on , llamada funci
on de transici
on,
describe este cambio de la forma (qi , a) qk de esta forma obtenemos un nuevo estado. Se entiende por transici
on como el proceso que hace un Automata al
cambiar de estado.
La forma mas f
acil de imaginarnos un Automata es mediante un diagrama de
transici
on. Un diagrama de transicion es un digrafo etiquetado con los elementos
de un Aut
omata para este caso, pero de hecho se puede representar cualquier
M
aquina de Etados Finitos por medio de un diagrama de transicion, es la forma
mas com
un de hacerlo por ejemplo (ver figura 1):
a1
q1
q0
q1
a2
q2
q2
q2
El estado incial tiene una flecha que apunta a el, los estados finales tienen
una flecha que sale de ellos y los estados que no son finales y no son el inicial
no tienen flecha. En caso de que nuestro estado inicial tambien sea un estado
final, se apuntar
a con una flecha doble .
Una tabla de transicion representa una funci
on la cual recibe un smbolo y
un estado, si queremos introducir una cadena donde , donde es la
La u
ltima propiedad de nos define como evaluar cadenas en una forma
recursiva. Se toma el primer smbolo de la cadena y se eval
ua con , el estado
resultante es evaluado con el segundo smbolo para obtener un nuevo estado que
a su vez ser
a usado con el tercer smbolo y as sucesivamente. De esta forma
pasamos por los estados (q0 , a0 ), ((q0 , a0 ), a1 )... hasta terminar de evaluar
la cadena, si el Aut
omata se encuentra en un estado final f se entiende que
(q0 , ) = f y la cadena es aceptada.
No importa si en alg
un momento de la lectura de smbolos llegamos a un
estado final, si no se ha terminado de leer la cadena, el automata contin
ua recibiendo smbolos y cambiando de estado.
1 Tambi
en
conocido como lenguaje universal, consta de todas las posibles cadenas que se
puedan formar con los smbolos de [6]
El n
umero maximo de transiciones para ese par (estado,smbolo) est
a dado por
n, es decir todas las flechas que salen de cualquier estado q y que est
an etiquetadas por el mismo smbolo a. Para comenzar a evaluar la cadena, donde
w , partimos de cualquier estado inicial qI , evaluamos el primer smbolo a
y sumamos todas las transiciones posibles, notese que ahora nos entrega un
conjunto de posibles estados, es decir (qI , aw) S donde S Q se pueden
dar los siguientes casos:
Si se evalua un solo smbolo (q, a) = (q, a) el conjunto S que obetenemos tiene un solo elemento que es el estado siguiente.
Si el smbolo a evaluar es el vaco (qi , ) = qi entonces no existe transici
on alguna para ese par (q, a), es decir se comporta como un valor
neutro para el operador .
Si existen n transiciones para los mismos valores ( (q, a) = q1 )+( (q, a) =
q2 ) + ... + ( (q, a) = qn ) entonces el conjunto S contiene los valores
q1 , q2 , ..., qn .
Se dice que una cadena es aceptada si (qI , aw) = qf donde qf F .
Un ejemplo de un Aut
omata Finito No Determinsta es la figura 3:
q0
q1
q2
q3
q4
a1
q1
q4
q1
q2
a2
q3
q0
q2
q3
ht
q0
q1
q2
a1
q1
q2
a2
q2
{q0 , q2}
q2
10
ht
Notamos que el estado incial sigue siendo uno. Todos los estados tienen determinadas todas las transiciones, las transiciones etiquetadas con dos smbolos
son equivalentes a tener dos transiciones con una etiqueta. Tenemos dos estados
mas, el vaco y el estado q4 el cual es un estado final porque se obtuvo a
partir de otros estados de los cuales uno ya era final. Los estados q3 , q5 y q6 no
aparecen en el diagrama porque no existe transicion alguna que permita llegar
a ellos. Cualquier cadena que pertenezca al Automata de la figura 4 tambien
pertenecera al Aut
omata de la figura 5.
2.1.
M
aquinas de Estados Finitos Transductoras
Una derivaci
on de los Aut
omatas son la M
aquinas de Estados Finitos Transductoras, la diferencia es que las Transductoras nos entregan como resultado un
conjunto de smbolos que pertenecen al lenguaje, las aceptadoras nos indican
si un conjunto de smbolos pertenece o no al lenguaje. La diferencia radica en
cambiar el conjunto de estados finales por alg
un tipo de funci
on que nos arroje
valores.
Por su funcionamiento podemos definir a las M
aquinas de Estados Finitos
en dos tipos:
1. M
aquinas de Estados Finitos Transductoras.
2. M
aquinas de Estados Finitos Aceptadoras.
Ambos tipos de maquinas siguen siendo Automatas, las transductoras son
una variaci
on de las Aceptadoras.
En estas maquinas existe una funci
on (la llameremos funci
on de salida) que
puede tomar como par
ametro el estado actual o la transicion de nuestra maquina
y arroja un elemento del conjunto de smbolos de salida. Existe otra funci
on (la
llamermos funci
on estado) que nos indicara el estado siguiente que debera adoptar nuestra maquina seg
un el caracter ledo de la cadena de entrada y el estado
11
q0 : Estado inicial.
Aparentemente es muy similar a la M
aquina de Moore, notemos que solo
cambia en la funci
on de salida , ahora es una funci
on donde necesitamos saber un elemento de la cadena de entrada. Ahora nos entregara un resultado
en cada transicion o y no al llegar a cada estado como en las M
aquinas Moore. Supongamos que existe una M
aquina de Mealy y una M
aquina de Moore,
ambas con el mismo conjunto de estados, el mismo estado incial, el mismo alfabeto de entrada y la misma funci
on de transicion. La M
aquina de Moore nos
arroja un smbolo desde que entramos al estado inicial, mientras la M
aquina de
Mealy hasta que realizamos la primera transicion. Esto da como resultado que
la M
aquina de Moore tenga un elemento mas en la salida que la M
aquina de
Mealy, siempre y cuando se tengan los mismos componentes en ambas maquinas.
Un ejemplo de una M
aquina de Mealy es:
Figura 7: M
aquina de Mealy
A diferencia de la M
aquina de Moore se excluye el primer elemento en todas las cadenas de salida, es decir, si introducimos la misma cadena que en el
ejemplo anterior 11001 obtenemos como resultado aabba y podemos observar la
equivalencia de ambas maquinas.
3.
M
aquina de Turing
La idea de una M
aquina que pudiera seguir un conjunto de pasos que describen cualquier sentencia matematica, es decir que puede ser descrita por un
algoritmo fue introducida por primera vez por Alan Turing en 1936 en su trabajo on computable numbers, with an application to the entscheidungsproblem.
Una M
aquina de Turing es solamente un concepto abstracto y no realmente
una maquina como posiblemente la imaginemos (engranes, circuitos, etc.), pero
s podemos darnos una idea seg
un sus propiedades b
asicas.
13
14
A simple vista parece un modelo sencillo, pero su poder es tal que cualquier modelo computacional o algoritmo existente puede ser modelado por una
M
aquina de Turing.
Podemos decir que cualquier solucion a un problema que pueda ser representada por una M
aquina de Turing est
a haciendo una computacion. Si una
maquina imprime dos tipos tipos de smbolos, donde el primer tipo (llamadas
figuras) consiste integramante en 1 y 0 y el segundo tipo ser
an llamados smbolos de la segunda especie entonces podemos llamar a esa maquina computadora
[7].
15
Referencias
[1] TRAKHTENBROT B.A. Algortmos y Computadoras. Limusa, 1973.
[2] HOPCROFT and ULLMAN. Formal Languages and their Relation to Automata. Addison-Wesley, 1969.
[3] MOTWANI HOPCROFT and ULLMAN. Introduction to Automata Theory,
Languages and Computation. Pearson Education, 2001.
[4] RICHARD JHONSONBAUGH. Matem
aticas Discretas. Iberoamerica, 1988.
[5] MINSKY Marvin L. Computation: Finite and Infinite Machines. PrenticeHall, 1967.
[6] PABLO G. PADILLA. Lenguajes y a
lgebra de eventos regulares. Escuela
Superior de C
omputo, 2006.
[7] A.M. TURING. on computable numbers, with an application to the entscheidungsproblem. London Math, Soc., 1936.
[8] LAWSON Mark V. Finite Automata. Chapman and Hall-CRC, 2004.
16