Está en la página 1de 11

Trabajo de investigación

Autómatas y lenguajes formales


Eylin Camila Dávila Hernández

Universidad libre seccional Cúcuta


Facultad de ingenierias
Ing. en tic
Cúcuta, Colombia
2019
Trabajo Investigación

1. Modelado de sistemas discretos


2. Máquina de Estados Finitos
3. Autómatas Finitos Determinísticos AFD
4. Diagrama de transiciones de un autómata
5. Diseño de autómatas
6. Autómatas Finitos No Determinísticos AFN
Desarrollo

1. Modelado de sistemas discretos


Llamamos eventos discretos a aquellos en los que se considera su estado solo en ciertos momentos,
separados por intervalos de tiempo, sin importar lo que ocurre en el sistema entre estos momentos.
Es como si la evolución del sistema fuera descrita por una secuencia de fotografías, en vez de un flujo
continuo y se pasa bruscamente de una fotografía a otra.
El modelado de fenómenos y procesos es una actividad que permite:
• Hacer simulaciones (eventualmente computarizadas)
• Verificar hipótesis sobre dichos procesos
• Efectuar predicciones sobre el comportamiento futuro
Por ejemplo, en un motor de gasolina se dice que tiene cuatro tiempos: Admisión, Compresión,
Ignición y Escape. Sin embargo, el pistón en realidad no se limita a pasar por cuatro posiciones, sino
que pasa por todo un rango de posiciones continuas. Así, los «cuatro tiempos» son una abstracción
de la realidad. La noción más básica de los modelos de eventos discretos es la de estado. Un estado
es una situación en la que se permanece un cierto lapso de tiempo.
Es sumamente práctico expresar los modelos de estados y eventos de manera gráfica. Los estados se
representan por óvalos y los eventos por flechas entre los óvalos, llamados transiciones. Dentro de
cada estado se escribe su nombre, mientras que al lado de las transiciones se escribe el nombre del
evento asociado. El estado donde se inicia tiene una marca « > «.

2. máquina de estados finitos


Es un modelo de computación basado en una maquina hipotética hecha de uno o más estados. Solo
un estado individual puede estar activo al mismo tiempo, por lo que la maquina debe pasar de un
estado a otro para realizar diferentes acciones.
Estos se usan comúnmente para organizar y representar un flujo de ejecución, que es útil para
implementar AI en juegos, el “cerebro” de un enemigo puede implementarse usando un FSM: cada
estado representa una acción, como atacar “attack” o evadir “evade”
Estas se utilizan también ampliamente en el diseño de circuitos digitales (además de en otro ámbitos
de la ingeniería, como la programación), para describir el comportamiento de un sistema según el
valor de sus entradas y de cómo van cambiando con el tiempo.
Un sistema está compuesto de estados por los que va pasando el sistema, de señales de entrada que
modifican esos estados y de señales de salida que pueden utilizarse para conocer el estado del sistema
y actuar en consecuencia. Un ejemplo muy visual podría ser un semáforo, el cuál dispone de tres
estados diferentes, uno para cada color. Las entradas del sistema las podría generar un temporizador
que activa una señal cada cierto tiempo, indicando que hay que pasar al siguiente estado. Por último,
las salidas del sistema podrían ser tres señales que indiquen qué lámpara, de las tres disponibles, tiene
que encenderse. Para representar una máquina de estados se utilizan diagramas de estados como el
siguiente.

Figura 1: figura máquina de estados finitos


En este caso cada círculo representa un estado, el estado S1 tiene una flecha que indica que es el
estado el inicial, al que se entra tras un reset del sistema. El S4 tiene un doble círculo, que indica que
es un estado final. Los estados están unidos por unas flechas llamadas transiciones, que indican cómo
evoluciona el sistema de un estado a otro según se activan las señales de entrada. En este caso concreto
hay tres señales de entrada (a, b, c y d). Si estando en el estado S1 se activa la señal a, el sistema
evolucionará al estado S2. Del mismo modo, si estando en el estado S2 se activa la señal b, el sistema
evolucionará de nuevo al estado S1. En este caso no hay señales de salida. Si las hay pueden ponerse
dentro del círculo o, para no sobrecargar el diagrama, se pueden definir fuera de éste, por ejemplo en
una tabla. Vamos a crear una FSM muy básica y a implementarla en VHDL, para poder llevarla a una
FPGA. La máquina que vamos a implementar es la mostrada en el siguiente diagrama de estados.
Ejemplo
Supongamos que se quiere modelar el comportamiento de una puerta. La puerta, inicialmente cerrada,
puede pasar a estar abierta tras el evento “abrir puerta”. Una vez abierta, puede pasar al estado cerrado,
tras el evento “cerrar puerta”.

Figura 1.5: Ejemplo máquina de estados finitos


3. Autómatas finitos determinísticos AFD
Un autómata finito es un modelo matemático de una máquina que acepta cadenas de un lenguaje
definido sobre un alfabeto. Consiste en un conjunto finito de estados y un conjunto de transiciones
entre esos estados que dependen de los símbolos de la cadena de entrada. El autómata finito acepta
una cadena x si la secuencia de transiciones correspondiente a los símbolos de c conduce desde el
estado inicial hasta un esta final.
Ejemplo: durante la actividad cotidiana, hay que interactuar con muchos dispositivos que pueden
familiarizarse como autómatas finitos. El funcionamiento de una máquina expendedora de billetes o
bebidas refrescantes suele utilizar un dialogo con el usuario que puede resumirse así:
a. La pantalla de la maquina ofrece información, como la fecha y la hora o algún mensaje
publicitario.
b. Cuando el usuario pulsa el botón de alguno de los productos, si el dinero introducido hasta el
momento es inferior al precio del producto, en la pantalla aparece su precio.
c. Si se pulsa el botón después de haber introducido una cantidad mayor o igual al precio
correspondiente, aparece un mensaje que indica que la venta se ha realizado y el usuario
recibe el producto, junto con el cambio, en el lugar habilitado por ello.
d. En cualquier instante, el usuario puede pulsar al botón de devolución de monedas, cancelando
la operación.
e. Tras cualquiera de las dos circunstancias anteriores (fin o cancelación de la venta) la maquina
vuelve a su comportamiento inicial.

Formalmente un autómata finito se define como una 5-upla


M = <E, A, δ, e0, F> donde
E: conjunto finito de estados
A: alfabeto o conjunto finito de símbolos de entrada
δ: función de transición de estados, que se define como
- δ: E x A → E si el autómata es determinístico
- δ: E x A → P (E) si el autómata es no determinístico (P (E) es el conjunto potencia
De E, es decir el conjunto de todos los subconjuntos de E)
e0: estado inicial; e0 ∈ E
F: conjunto de estados finales o estados de aceptación; F ⊆ E
Generalmente se asocia con cada autómata un grafo dirigido, llamado diagrama de transición
de estados. Cada nodo del grafo corresponde a un estado. El estado inicial se indica mediante
una flecha que no tiene nodo origen. Los estados finales se representan con un círculo doble.

Construcción de un autómata finito:


Sea L(r) un lenguaje regular reconocido por algún autómata finito.
Estados: Los estados del autómata son representados por círculo. Los nombres de los estados están
escritos dentro de esos círculos.
Estado inicial: Estado en el cual el autómata inicia. El estado inicial tiene una flecha apuntando hacia
él.
Estados Intermedios: Todos los estados intermedios tienen al menos 2 flechas; una apuntando hacia
el estado y otra apuntando hacia otro estado.
Estado Final: Si una cadena es parseada exitosamente, se espera que el autómata quede en este estado.
Se representa con un círculo doble. Puede tener una cantidad impar de flechas apuntando hacia él y
una cantidad par de flechas apuntando hacia otros estados. El número de flechas impares es siempre
uno más que el de flechas pares.
Transición: La transición de un estado a otro ocurre cuando un símbolo deseado es encontrado en la
cadena de entrada. Después de una transición, un autómata se puede mover al siguiente estado, o
quedarse en el mismo estado. El movimiento de un estado a otro es representado por una flecha
dirigida, esta flecha apunta al estado de destino. Si el autómata se queda en el mismo estado se dibuja
una flecha que apuntara hacia el mismo.
Ejemplo: Asumimos un autómata finito que acepta un valor tres dígitos binarios que termina en 1.
FA = {Q(q0, qf), ? (0,1), q0, qf, ?}

Figura 2: Ejemplo autómata finito

Un Autómata finito es similar a una máquina de estado finito sin embargo lo que Caracteriza
a una de la otra es que los autómatas finitos solo tienen dos estados, un estado interno y uno
de rechazo.
Los usos de los autómatas en la actualidad son:
 En el control de ascensores.
 En la industria automotriz.
 También pueden realizar operaciones aritméticas.
 Control de operaciones de semáforos.
 Control de nivel de líquidos de un tanque.
 Control de sistemas de envasado.
 Control de una maquina taladora.
4. Diagrama de transición de un autómata finito

Figura 3: diagrama de transición de un autómata finito


Los autómatas se pueden representar por medio de un grafo dirigido conocido como diagrama de
transición. Recuérdese que un grafo es un conjunto de vértices o nodos unidos por arcos o conectores;
si los arcos tienen tanto dirección como etiquetas, el grafo se denomina grafo dirigido y etiquetado o
dígrafo etiquetado.
Dicho grafo se denomina diagrama de transiciones del autómata y es muy útil para hacer el
seguimiento completo del procesamiento de una cadena de entrada. Una cadena u es aceptada si existe
una trayectoria etiquetada con los símbolos de u, que comienza en el estado q0 y termina en un estado
de aceptación.
• Nodos (estados)
Estado inicial
Estado de aceptación
• Aristas (transiciones)
Figura 3.1: grafo diagrama de transición

Ejemplo:
Diseñe un autómata finito que acepte a*b

Expresión regular: a*b


Lenguaje: (ab, aab, aaab,...)

Figura 3.2: ejemplo diagrama de transición.


Todo diagrama de estados tiene una tabla de transiciones asociada, la cual se lee por renglones y
define para cada estado presente y todo símbolo de entrada el estado siguiente.

5. Diseño de autómatas
Para autómatas deterministas se adopta la siguiente convención adicional con respecto a los
diagramas de transiciones: se supone que los arcos no dibujados explícitamente conducen a un estado
"limbo" de no-aceptación. Es decir, en el diagrama de transiciones se indican únicamente los arcos
que intervengan en trayectorias de aceptación. Esto permite simplificar considerablemente los
diagramas.
Poniéndose en los zapatos del autómata a diseñar.
 Por cada símbolo leído, saber si la cadena es aceptada o no, por si la cadena termina ahí.
 Decida qué información es crucial “recordar”, es decir, cuáles serían los estados del autómata.
 Asignar transiciones, estado inicial y estado (s) final (es).
Figura 4: ejemplo de diseño de autómata.

6. Autómatas finitos no determinísticas


Si se permite que desde algún estado se realicen cero, dos o más transiciones mediante el mismo
símbolo de entrada, se dice que el autómata finito es no determinista.
Los AFN se utilizan porque pueden ser más simples que los AFD, • En un AFN se puede suponer que
si existe un recorrido en el diagrama de transición que termine en un estado de aceptación, el autómata
lo encuentra.

Un AFN es una colección de cinco elementos:


• Un alfabeto ∑
• Una colección finita de estados Q
• Un estado inicial q0
• Una colección finita de estados de aceptación T
• Una relación ∑ sobre (Qx∑) ->2"q" denominada relación de Transición. 2Q es el conjunto potencia
de Q (subconjuntos de Q).
Aparentemente es muy similar a un Autómata Finito Determinista, pero se perciben algunas
diferencias. Puede existir más de un Estado inicial [] y la función de transición δ ahora nos entrega
un conjunto, tal vez vacío, de posibles estados. Precisamente esta es la diferencia entre un Autómata
Determinista y uno No Determinista. Cuando todas las transiciones están determinadas en un
Autómata, es decir para cada par de (estado, símbolo) existe uno y sólo un estado correspondiente, se
tiene un Autómata Determinista. Si se tiene al menos una transición no definida o indeterminada
entonces tenemos un Autómata No Determinista.
En la función de transición extendida también hay algunos cambios, se puede comenzar en cualquiera
de los estados iniciales qI (donde qI ∈ I) y suma todas las posibles transiciones t que inicien en el
mismo estado pero que lleven a estados diferentes a pesar que el símbolo leído a es el mismo.
Definimos cualquier transición como t = δ (q,a) donde q ∈ Q es un estado y a ∈ Σ es un símbolo.
Entonces podemos definir:
δ∗ (qI, aw) = P n i=0 δ∗ (ti,w)
 la transicion desde un estado puede tener multilples desrtinos. Por eso se le llama no
determimista.
 Permite transiciones con cadenas vacias
 No siempre se permite el uso de backtracking.
 Requiere menos espacio.
 Una caena es aceptada si solo una de todas sus posibles transiciones son hacia un estado final

Figura 5: autómata finito no determinístico


Bibliografía

https://ebookcentral.proquest.com/lib/unilibrebaqsp/reader.action?docID=3195129&query=automat
as
http://www.exa.unicen.edu.ar/catedras/ccomp1/ApunteAutomatasFinitos.pdf
https://ricardogeek.com/automatas-finitos-deterministas-y-no-deterministas/
http://ciencias.uis.edu.co/lenguajes/doc/Campos.pdf
http://bdigital.unal.edu.co/48060/2/Notasdeclaseteoriadelacomputacion.PDF
https://www.uaeh.edu.mx/docencia/P_Presentaciones/huejutla/sistemas/lenguajes_automatas/evento
s.pdf

También podría gustarte