Vous êtes sur la page 1sur 4

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

FACULTAD DE INGENIERIA
INGENIERIA EN CIENCIAS Y SITEMAS
LENGUAJES FORMALES Y DE PROGRAMACIÓN SECCION A+
M.Sc. Otto A. Rodriguez A.
Ingeniero en ciencias y sistemas

AUTOMATAS FINITOS

Un autómata finito (AF) es un modelo computacional que realiza cómputos en forma automática.
Este modelo está conformado por un alfabeto (símbolos terminales), un conjunto de estados, una
función de transición, un estado inicial y un conjunto de estados finales.
Su funcionamiento se basa en una transición mediante un símbolo de entrada, para pasar de un
estado a otro estado, empezando en el estado inicial, para finalmente detenerse en un estado final
o de aceptación, que representa la salida. La finalidad de los autómatas finitos es la de reconocer
lenguajes regulares.

1. Diagramas de estado Finito

Los autómatas finitos se representan mediante grafos, también llamados diagramas de estado finito
en el cual cada estado es representado por una arista en el grafo y cada transición es una arista del
grafo que tiene un símbolo del lenguaje. El estado inicial Io se caracteriza por tener una arista que
llega a él, proveniente de ningún otro vértice. El o los estados de aceptación se representan
mediante vértices que están encerrados a su vez por otra circunferencia (puede habar mas de un
estado de aceptación e incluso todos los estados pueden ser estados de aceptación)

Por ejemplo:

El siguiente autómata finito reconoce todas las palabras que tengan ab una o mas veces. Por
ejemplo ab, abab, ababab, abababab…

Se tienen tres estados {q0, q1, q2}


El estado inicial es q0
Solo existe un estado de aceptación que es q2
Los símbolos de transición son {a, b}

¿Cómo funciona ?

1. Se tiene como entrada los siguientes símbolos: ab


1.1 Esta en el estado q0 ( estado inicial) con a (primer símbolo)
1.2 ¿Puede moverse a otro estado con a? Si. Puede ir a q1.
1.3 Segundo símbolo b. ¿Puede ir del estado q1 con una b a otro estado? Si. Puede ir a q2
1.4 No hay mas símbolos de entrada. ¿está en un estado de aceptación? Si. q2 es de
aceptación. Por consiguiente, ab pertenece al lenguaje.
2. Se tiene como entrada los siguientes símbolos: aba
2.1 Esta en el estado q0 (estado inicial) con a (primer símbolo)
2.2 ¿Puede moverse a otro estado con a? Si. Puede ir a q1.
2.3 Segundo símbolo b. ¿Puede ir del estado q1 con una b a otro estado? Si. Puede ir a q2
2.4 ¿Puede ir del estado q2 con a a otro estado? Si. puede ir a q1.
2.5 No hay más símbolos de entrada. ¿está en un estado de aceptación? No. Entonces aba
no pertenece al lenguaje.
3. Se tiene como entrada los siguientes símbolos: b
3.1 Esta en el estado q0 ( estado inicial) con b (primer símbolo)
3.2 ¿Puede moverse a otro estado con b? No. ¿Esta en un estado de aceptación? No.
Entonces b no pertenece al lenguaje.

2. Autómata finito no determinista (DFA por siglas en ingles)

Un autómata finito determinista (DFA) es un autómata finito que para cada estado q ∈ Q en que se
encuentre el autómata, y con cualquier símbolo a, existe siempre a lo más una transición posible
δ(q,a).

En un DFA no se pueden dar estos casos:

a. No puede haber una transición de un estado qi a un estado qj con ε


b. No puede existir dos o más transiciones de un estado qi a un qj con el mismo símbolo.

Por ejemplo, Ninguno de estos autómatas finitos son DFA. El primero tiene una transición
ε con y el segundo tiene dos transiciones con a al mismo estado (q2)

3. Autómata finito no determinista (NFA por sus siglas en ingles)

Un Autómata finito no determinista es aquel que puede tener transiciones con y dos o mas
transiciones de un estado a otro con el mismo símbolo.

Los autómatas del ejemplo anterior son NFAs.


4. Expresiones regulares

Una expresión regular es un medio para declarar patrones que definen un lenguaje dado.
Las expresiones regulares se definen de la siguiente manera:

Sean R y S dos símbolos cualesquiera de un lenguaje entonces:

1. R y S son expresiones regulares. Es decir, todo símbolo del lenguaje es una expresión
regular.
2. R|S es una expresión regular. El carácter | (pipe) representa un ó lógico. La expresión
regular se lee R ó S.
3. RS ó R.S es una expresión regular. Dos expresiones regulares seguida una de otra
representa la concatenación de las expresiones el resultado también es una expresión
regular. El . también tiene la misma función.
4. (S) es una expresión regular. Una expresión regular entre paréntesis es también una
expresión regular. Los paréntesis se usan como agrupamiento de expresiones
regulares.
5. R* es una expresión regular. Implica que R se repite 0 o mas veces. Esta operación
también se le conoce como cerradura de Kleene.
6. ε es una expresión regular.

Ejemplos de patrones con expresiones regulares

Sea el conjunto L = {a, b, c, ..z, A, B, C, …Z} letras del alfabeto


D= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} dígitos.

Expresión regular Descripción


DD* Número entero: Un digito seguido de cero o mas dígitos.
Ejemplos; 223, 33, 2,
DD*.DD* Número decimal: Un digito seguido de cero o más dígitos,
seguido de un punto decimal, seguido de un digito seguido
de cero o más dígitos (parte decimal). Eje,mplos: 23.12,
3345.2, 1.1
L(L|D) * Identificador: inicia con una letra seguido de cero o más
letras o dígitos. Los paréntesis agrupan letras o dígitos
para aplicar *. Ejemplos: A1, ABCD3DS, A234, A
(+|-|ε) DD* Numero entero que puede iniciar con un signo más, con un
signo menos o sin signo. ε Implica que no hay ningún valor.
Ejemplos: +23, -23, 23
= Signo de igualdad. Un símbolo cuya expresión regular el el
mismo símbolo. No hay otro símbolo que cumpla con ese
patrón. Ejemplo: =
5. Teorema fundamental de la teoría de autómatas

Toda gramática de tipo 3 tiene una expresión regular equivalente y toda expresión regular
tiene una gramática de tipo 3 equivalente.

Equivalente se refiere a que reconocen el mismo lenguaje.


Esto es válido solamente para gramáticas de tipo 3. Es decir, regulares.
Esto implica que a partir de una expresión regular se puede encontrar un DFA que reconozca
un lenguaje regular.

Vous aimerez peut-être aussi