Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción a autómatas
FORMAR TRANSFORMAR
Contenidos
1 Conceptos fundamentales
2 Lenguajes
Definición de lenguajes mediante descripciones de conjuntos
3 Autómatas finitos
FORMAR TRANSFORMAR
Conceptos fundamentales
• Es un conjunto de sı́mbolos finito y no vacı́o. • Comúnmente conocido como palabra o string en len-
guajes de programación definidos.
• Se utilizará el sı́mbolo Σ
• Es una secuencia finita de sı́mbolos.
Ejemplo:
• σ = {0, 1}, un alfabeto binario. • Estos sı́mbolos deben estar previamente definidos en un
alfabeto
• σ = {a, b, c, . . . , z}, un alfabeto de letras minúsculas.
Ejemplo:
• 01101 es una cadena de caracteres válida para el alfabeto
Σ{0, 1}
FORMAR TRANSFORMAR
Conceptos fundamentales
Cadena vacı́a
FORMAR TRANSFORMAR
Conceptos fundamentales
Potencia de un alfabeto
• El conjunto de todas cadenas de un alfabeto y que no considera el conjunto vacı́o () se denota como Σ+ .
Ejemplo:
• Un alfabeto Σ0 = {} es independiente del alfabeto.
• Se asume que Σ = Σ1 .
• Sea Σ = {0, 1} el alfabeto, entonces Σ∗ = {, 0, 1, 00, 01, 10, 11, 000, . . . }
FORMAR TRANSFORMAR
Conceptos fundamentales
Concatenación de cadenas
• Sean x e y cadenas tal que xy es concatenación de x e y, es decir, una copia de x con una de y.
• Si x = a0 a1 a2 a3 . . . ai y y = b0 b1 b2 b3 · · ·j , entonces xy = a0 a1 a2 . . . ai b0 b1 b2 · · ·j
FORMAR TRANSFORMAR
Lenguajes
• Un lenguaje que está compuesto de todas las cadenas que constan de n ceros y n unos para n ≥ 0
FORMAR TRANSFORMAR
Lenguajes
Definición de lenguajes mediante descripciones de conjuntos
• Es habitual describir un lenguaje utilizando una descripción de conjuntos
L = {w | algo acerca de w}
• La expresión se lee como: El conjunto de palabras w tal que (lo que dice acerca de w a la derecha de la barra vertical).
• Algunos ejemplos:
L = {w | w consta de un número igual de ceros que d e unos}
L = {w | w es un entero binario que es primo}
L = {w | w es un programa en C sintácticamente correcto}
• También es habitual reemplazar w por alguna expresión con parámetros y describir las cadenas del lenguaje estableiendo
condiciones sobre los parámetros.
• He aquı́ algunos ejemplos, el primero con el parámetro n y el segundo con los parámetros i y j:
1. {0n 1n | n ≥ 1} Esta expresión se lee: El conjunto de 0 a la n y 1 a la n, tal que n es mayor o igual que 1. Observe que
podemos elevar un solo sı́mbolo a una potencia n para representar n copias de dicho sı́mbolo.
2. {0i 1j |0 ≤ i ≤ j} Este lenguaje consta de cadenas formadas por ceros (puede ser ninguno) seguidos de, al menos, el mismo
número de unos.
FORMAR TRANSFORMAR
Autómatas finitos
• Como se ha mencionado con anterioridad, aun autómata finito titne un conjunto de estados y pasa de un estado a
otro en respuesta a las entradas externas.
FORMAR TRANSFORMAR
Autómatas finitos
• Para comprender mejor su definición (autómata finito), vamos a investigar un protocolo que ayudan a gestionar el
dinero electrónico.
• Es necesario asegurar y demostrar que las únicas cosas que pueden ocurrir en un sistema son las cosas que
queremos que ocurran.
FORMAR TRANSFORMAR
Autómatas finitos
2. El cliente decide cancelar el pago (el dinero se envı́a al banco afirmando que se ha añadido a la cuenta bancaria del
cliente).
4. La tienda libra el dinero (el dinero se envı́a al banco para que se añada a la cuenta de la tienda).
FORMAR TRANSFORMAR
Autómatas finitos
• El banco es responsable.
FORMAR TRANSFORMAR
Autómatas finitos
FORMAR TRANSFORMAR
Autómatas finitos
• ¿Podemos permitir que el autómata ignore acciones?.
FORMAR TRANSFORMAR
Autómatas finitos
• ¿Podemos permitir que el autómata ignore acciones?.
FORMAR TRANSFORMAR
Autómatas finitos
FORMAR TRANSFORMAR
Autómatas finitos
FORMAR TRANSFORMAR
Autómatas finitos deterministas
• δ es una función de transición que toma como argumentos un estado y un sı́mbolo de entrada y devuelve un
estado. En nuestra representación gráfica informal del autómata, δ se representa mediante arcos entre los estados y
las etiquetas sobre los arcos. Si q es un estado y a es un sı́mbolo de entrada, entonces δ(q, a) es el estado p tal que
existe un arco etiquetado a que va desde q hasta p.
• q0 es el estado inicial y q0 ∈ Q, .
FORMAR TRANSFORMAR
Autómatas finitos deterministas
• Observemos el siguiente diagrama que acepta todas las cadenas que contengan 01.
FORMAR TRANSFORMAR
Autómatas finitos deterministas
Q = {q0 , q1 , q2 }
Σ = {0.1}
0 1
q0 q2 q0
δ =
∗q1 q1 q1
q2 q2 q1
q0 = q0
F = {q1 }
FORMAR TRANSFORMAR
Teorı́a de autómatas y lenguajes formales
Ingenierı́a en Computación e Informática
Introducción a autómatas
FORMAR TRANSFORMAR