Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
https://codingornot.com/que-es-un-automata 1/14
5/4/2019 ¿Qué es un autómata?
¿Qué es un autómata?
Publicado por Miriam García
Un autómata es un modelo matemático para una máquina de estado finito, en el que dada una entrada de símbolos,
“salta” mediante una serie de estados de acuerdo a una función de transición (que puede ser expresada como una tabla).
Esta función de transición indica a qué estado cambiar dados el estado actual y el símbolo leído.
https://codingornot.com/que-es-un-automata 2/14
5/4/2019 ¿Qué es un autómata?
Ejemplo
Autómata finito que podría formar parte de un analizador léxico. El trabajo de este autómata consiste en reconocer la
palabra coding, por lo que necesita siete estados, representando cada uno de ellos la posición que dentro de dicha palabra
se haya leído hasta el momento.
https://codingornot.com/que-es-un-automata 3/14
5/4/2019 ¿Qué es un autómata?
Estas posiciones corresponden con los prefijos de la palabra, desde la cadena de caracteres vacía (es decir, cuando no
contiene ningún carácter) hasta la palabra completa.
T la función de transición que está dada por: T: E x A -> P(E) donde P(E) es el conjunto de subconjuntos de E.
https://codingornot.com/que-es-un-automata 4/14
5/4/2019 ¿Qué es un autómata?
T(e,a) = R significa que si se está en un estado e y se lee un símbolo a puede cambiar a cualquiera de los estados e’ que
pertenecen a R.
Dado un autómata finito no determinista (AFnD) M, existe un autómata finito determinista (AFD) M’ tal que L(M) =
L(M’).
https://codingornot.com/que-es-un-automata 5/14
5/4/2019 ¿Qué es un autómata?
Aplicaciones
1. Software para diseñar y probar el comportamiento de circuitos digitales.
2. El “analizador léxico” de un compilador típico, es decir, el componente del compilador que separa el texto de entrada en unidades
lógicas, tal como identificadores, palabras clave y signos de puntuación.
3. Software para explorar cuerpos de texto largos, como colecciones de páginas web, o para determinar el número de apariciones de
palabras, frases u otros patrones comúnmente conocidos como expresiones regulares.
4. Software para verificar sistemas de todo tipo que tengan un número finito de estados diferentes, tales como protocolos de
comunicaciones o protocolos para el intercambio seguro de información.
Resolución de problema
Determinar si un texto de entrada es una dirección de correo válida.
Posibles entradas:
¿Cómo se decide?
https://codingornot.com/que-es-un-automata 6/14
5/4/2019 ¿Qué es un autómata?
codigornot@gmail.com es un correo válido, pues contiene un usuario , seguido de un @ , y finaliza con un servidor .
Definamos estas reglas formalmente.
Definiendo el alfabeto
El alfabeto puede modelarse con clases de caracteres, en lugar de los símbolos como tal. Dados los caracteres que puede
representar una computadora, encontramos las siguientes clases:
Alfanuméricos : { a,b, …, z, A, B, …, Z, 0, 1, …, 9, _ }
Arroba: { @ }
Punto: { . }
Otros: { todos los demás }
Alfanuméricos: w
Arroba: a
Punto: p
Otros: o
Criterios de aceptación
1. El usuario debe ser una cadena de caracteres alfanuméricos solamente.
2. Seguido de una y solo una arroba.
3. El servidor debe ser también una cadena de caracteres alfa numéricos.
https://codingornot.com/que-es-un-automata 7/14
5/4/2019 ¿Qué es un autómata?
Los estados
Estado inicial:
Estados de transición:
Estado final:
Estado de rechazo:
https://codingornot.com/que-es-un-automata 8/14
5/4/2019 ¿Qué es un autómata?
Formalmente
A = {w, a, p, o}
E = {e0, e1, e2 ,e3, e4, f, r0, r1}
F = {f}, F está contenido en E
T: E x A -> E
https://codingornot.com/que-es-un-automata 9/14
5/4/2019 ¿Qué es un autómata?
T e0 e1 e2 e3 e4 f
w e1 e1 e3 e3 f f
a r0 e2 r0 r1 r1 r1
p r0 r0 r0 e4 r1 e4
o r0 r0 r0 r0 r1 r1
Gramática regular
CORREO: USUARIO SERVIDOR DOMINIO
USUARIO: w+
SERVIDOR: aw+
DOMINIO: (pw+)+
CORREO: C
USUARIO: U
SERVIDOR: S
DOMINIO: D
Con:
w: caracter alfanumérico
a: arroba (@)
p: punto (.)
Sea
G={
https://codingornot.com/que-es-un-automata 10/14
5/4/2019 ¿Qué es un autómata?
N = { C, U, S, D }
T = { w, a, p }
P = { C -> USD, U -> w+, S -> aw+, D -> (pw+)+}
f0 = { C }
}
Referencias
Autómatas finitos no deterministas (AFnD).
Introducción a la teoría de autómatas y lenguajes formales. Gómez, Meza, Argote, Ibarra. ISBN: 978-607-8104-60-4
Matemáticas discretas. Richard Johnsonbaug. Sexta edición.
Teoría de autómatas, lenguajes y computación. John E. Hopcroft, 2007.
AFD AFND AUTÓMATA CONCEPTOS EXPRESIONES REGULARES GRAMÁTICA REGULAR TEOREMAS TEORÍA DE LA COMPUTACIÓN
4 comments
https://codingornot.com/que-es-un-automata 11/14
5/4/2019 ¿Qué es un autómata?
Responder
Responder
Excelente articulo, muy gradecido por tan valioso aporte a la teoria de autómata. Saludos desde Venezuela – Caracas
Responder
Responder
https://codingornot.com/que-es-un-automata 12/14
5/4/2019 ¿Qué es un autómata?
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *
Comentario
Nombre *
Correo electrónico *
Web
Publicar comentario
https://codingornot.com/que-es-un-automata 13/14
5/4/2019 ¿Qué es un autómata?
https://codingornot.com/que-es-un-automata 14/14