• No se han encontrado resultados

AUTÓMATA FINITO Y NO FINITO

N/A
N/A
Protected

Academic year: 2021

Share "AUTÓMATA FINITO Y NO FINITO"

Copied!
5
0
0

Texto completo

(1)

AUTÓMATA FINITO Y NO FINITO

Finitos determinísticos

El termino maquina evoca algo hecho en metal, usualmente ruidoso y grasoso, que ejecuta tareas repetitivas que requieren de mucha fuerza o velocidad o precisión. Ejemplos de estas máquinas son las embotelladoras automáticas de refrescos. Su diseño requiere de conocimientos en mecánica, resistencia de materiales, y hasta dinámica de fluidos. Al diseñar tal máquina, el plano en que se le dibuja hace abstracción de algunos detalles presentes en la maquina real, tales como el color con que se pinta, o las imperfecciones en la soldadura.

El plano de diseño mecánico de una maquina es una abstracción de esta, que es útil para representar su forma física. Sin embargo, hay otro enfoque con que se puede modelar la maquina embotelladora: cómo funciona, en el sentido de saber que secuencia de operaciones ejecuta. Así, la parte que introduce el líquido pasa por un ciclo repetitivo en que primero introduce un tubo en la botella, luego descarga el líquido, y finalmente sale el tubo para permitir la colocación de la capsula (“corcholata”). El orden en que se efectúa este ciclo es crucial, pues si se descarga el líquido antes de haber introducido el tubo en la botella, el resultado no será satisfactorio.

El modelado de una maquina en lo relacionado con secuencias o ciclos de acciones se aproxima más al enfoque que adoptaremos en este curso. Las maquinas que estudiaremos son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren, sin tomar en cuenta ni la forma de la maquina ni sus dimensiones, ni tampoco si efectúa movimientos rectos o curvos, etc.

En esta parte estudiaremos las maquinas abstractas más simples, los autómatas finitos, las cuales están en relación con los lenguajes regulares, como veremos a continuación.

Funcionamiento de los autómatas finitos

Como se había comentado antes, el funcionamiento de los autómatas finitos consiste en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de la palabra de entrada. Este proceso puede ser seguido fácilmente en los diagramas de estados. Simplemente hay que pasar de estado a estado siguiendo las fechas de las transiciones, para cada carácter de la palabra de entrada, empezando por el estado inicial. Por ejemplo, supóngase que tenemos el

(2)

autómata y la palabra de entrada “bb”. El autómata inicia su operación en el estado q0 –que es el estado inicial–, y al recibir la primera b pasa al estado q2, pues en el diagrama hay una flecha de q0 a q2 con la letra b. Luego, al recibir la segunda b de la palabra de entrada, pasara del estado q2 a el mismo, pues en la figura se puede ver una flecha que de q2 regresa al mismo estado, con la letra b.

Podemos visualizar el camino recorrido en el diagrama de estados como una

“trayectoria”

recorrida de estado en estado. Por ejemplo, para el autómata finito la trayectoria seguida para la palabra ab consiste en la secuencia de estados: q

Los estados son el único medio de que disponen los AF para recordar los eventos que ocurren (por ejemplo, que caracteres se han leído hasta el momento); esto quiere decir que son máquinas de memoria limitada. En última instancia, las computadoras digitales son máquinas de memoria limitada, aunque la cantidad de estados posibles de su memoria podría ser enorme.

Diseño de AFN

Como sugerimos al inicio de esta sección, en los AFN es posible aplicar métodos modulares de diseño, que permiten manejar mejor la complejidad de los problemas. Son estos métodos modulares los que describiremos en esta sección.

AFN para la unión de lenguajes

Si ya contamos con dos AFN, sean M1 y M2, es posible combinarlos para hacer un nuevo AFN que acepte la unión de los lenguajes que ambos autómatas aceptaban.

(3)

Finitos no deterministas

Una extensión a los autómatas finitos deterministas es la de permitir que de cada nodo del diagrama de estados salga un numero de flechas mayor o menor que |∑|.

Así, se puede permitir que falte la flecha correspondiente a alguno de los símbolos del alfabeto, o bien que haya varias flechas que salgan de un solo nodo con la misma etiqueta. Inclusive se permite que las transiciones tengan como etiqueta palabras de varias letras o hasta la palabra vacía. A estos autómatas finitos se les llama no determinísticos o no deterministas (abreviado AFN), por razones que luego veremos.

Al retirar algunas de las restricciones que tienen los autómatas finitos determinísticos, su diseño para un lenguaje dado puede volverse más simple. Por ejemplo, un AFN que acepte las palabras en {a, b} que contienen la subcadena abbab se ilustra.

Definición. - Un autómata finito no determinista es un quíntuplo (K, _, _, s, F) donde K, _, s y F tienen el mismo significado que para el caso de los autómatas determinísticos, y _, llamado la relación de transición, es un subconjunto finito de K × __ × K.

Por ejemplo, el AFN quedaría representado matemáticamente por el siguiente quíntuplo:

({1, 2}, {a, b}, {(1, a, 1), (1, b, 1), (1, abbab, 2), (2, a, 2), (2, b, 2)}, 1, {2})

El punto esencial es que _ es una relación, no una función. Obsérvese también que el segundo elemento de la relación de transición es una palabra, no un carácter del alfabeto. Esto significa que cada tripleta (q1, w, q2) 2 _, que es una transición representada como una flecha de etiqueta w en el diagrama de estados, permite pasar de q1 a q2 “gastando” en la entrada una subcadena w.

Vamos a definir la noción de palabra aceptada en términos de la representación grafica de los autómatas no determinísticos.

Definición. - Una palabra w es aceptada por un autómata no determinístico ssi existe una trayectoria en su diagrama de estados, que parte del estado inicial y llega a un estado final, tal que la concatenación de las etiquetas de las flechas es igual a w.

Ejemplo. - Verificar si la palabra baabbaba es aceptada por el AFN.

(4)

Solución: La palabra baabbaba puede ser dividida en cuatro pedazos, p1 = b, p2 = a, p3 = abbab, y p4 = a, cuya concatenación produce la palabra original. Ahora bien, podemos seguir la siguiente secuencia de estados (trayectoria) en el AFN dado:

Estado Cadena que consume Produce estado

1 b 1

1 a 1

1 abbab 2

2 a 2

Así probamos que la cadena baabbaba si es aceptada por el autómata. Probar que una cadena no es aceptada por un autómata no determinístico es más difícil, pues hay que mostrar que no existe ninguna trayectoria que satisfaga los requisitos; la cantidad de trayectorias posibles puede ser muy grande como para examinar una por una. En este ejemplo en particular es posible ver que la cadena ababab no es aceptada por el autómata, pues la transición que liga el estado inicial 1 con el final 2 incluye dos bs seguidas, que no hay en la palabra dada, por lo que no es posible llegar al estado final y la palabra no podrá ser aceptada.

AFN para la unión de dos lenguajes

Sean M1 = (K1, ∑1, ∆1, s1, F1) y M2 = (K2, ∑2, ∆2, s2, F2) dos autómatas que aceptan los lenguajes L1, L2. Podemos entonces construir un AFN M3 que acepte L1ᴗL2 de la siguiente manera: Sea q un nuevo estado que no está en K1 ni en K2. Entonces hacemos un autómata M3 cuyo estado inicial es q, y que tiene transiciones vacías de q a s1 y a s2. Esta simple idea le permite escoger en forma no determinista entre irse al autómata M1 o a M2, según el que convenga: si la palabra de entrada w está en L1, entonces escogemos irnos a M1,,,,, y similarmente a M2 para L2. Formalmente M3 = (K1 ᴗK2 ᴗ{q}, ∑1 ᴗ∑2, ∑1 ᴗ∑2 [ {(q, ɛ, s1), (q, ɛ, s2)}, q, F1 ᴗF2).

Se representa gráficamente M3.

Ejemplo. - Diseñar un autómata no determinista que acepte las palabras sobre {a,

(5)

Solución. - se presenta un AFN que acepta las palabras que contienen un número par de a’s, y en otro que acepta las palabras que terminan en bb. Finalmente, en está el AFN que acepta el lenguaje dado.

Referencias

Documento similar

Estas opiniones, a menudo poco claras y contradictorias, revelan varios elementos que se entrelazan: falta estudio y comprensión de las teorías de género y de los mecanismos de

Si E X es un conjunto finito, la suma que define E[X] consta de un n´ umero finito de sumandos y es, por tanto, absolutamente convergente. As´ı, toda variable con un n´ umero finito

Las aguas grises como tratamiento casero para cuidar el agua potable está tomando relevancia para seguir concientizando sobre lo finito que suelen ser los recursos

o esperar la resolución expresa" (artículo 94 de la Ley de procedimiento administrativo). Luego si opta por esperar la resolución expresa, todo queda supeditado a que se

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Cuando Spengler advierte que la figura de Fausto representa un “finito abierto al infinito”, que es el significado del anhelo, lo que está sugiriendo es, a nuestro juicio, que

Demostraci´ on: Si G es metac´ıclico entonces existe un subgrupo normal c´ıclico C contenido en G tal que el grupo cociente G/C es c´ clico, y entonces tenemos que 1/C /G una

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados