Está en la página 1de 100

fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos
Luis M. Estrada
luism@unam.mx

5 de marzo de 2019
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Agenda

• Autómatas finitos deterministas (AFD)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


2/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas finitos deterministas


En general un autómata será un modelo abstracto
que captura solamente las secuencias de estados
que ocurren en un sistema o máquina,
independientemente de los aspectos fı́sicos o la
implementación concreta del sistema o máquina.

Autómatas
En nuestro caso los autómatas serán modelos
abstractos para procesar (reconocer) cadenas de un
lenguaje.
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
3/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Componentes
• Una cinta infinita dividida en casillas en la cual se escribe
una cadena (un sı́mbolo por casilla).
• Una cabeza para leer o escribir la cinta.
• Una unidad de control que tiene un numero finito de
configuraciones internas llamadas estados.

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


4/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Funcionamiento de un autómata

• Intuitivamente un estado es como una


fotografı́a de la configuración de un sistema en
un momento determinado. Un estado contiene
la información necesaria para que el sistema
pueda seguir funcionando a partir de ese estado.
• Una transición es simplemente el cambio de un
estado a otro dada cierta entrada.

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


5/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Funcionamiento de un autómata
1 Lee el sı́mbolo escrito en la cinta donde
actualmente se encuentra la cabeza de lectura y
escritura.
2 Dependiendo del estado actual de la unidad de
control y del sı́mbolo leı́do, la unidad de control
cambia su configuración interna y mueve la
cabeza de lectura y escritura ya sea a la derecha
o a la izquierda según sea el caso
3 Repite el procedimiento desde el paso 1 hasta
que se alcanza un criterio de paro.
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
6/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Tipos de Autómatas
Los autómatas que estudiaremos en este curso son
(en orden de complejidad y poder de cómputo
creciente):
• Autómatas Finitos
• Autómatas de Pila
• Autómatas Linealmente Acotados
• Máquinas de Turing

Las máquinas de Turing es el modelo de


computadora más poderoso que existe (... hasta
ahora)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
7/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos
Comenzaremos estudiando los autómatas más sencillos, es
decir los Autómatas Finitos

Veremos también que la clase de lenguajes que pueden


reconocen los Autómatas Finitos es precisamente la clase de
Lenguajes Regulares.

Los Autómatas Finitos (los abreviaremos como AF) se pueden


dividir a su vez en:

• Deterministas (los abreviaremos AFD)


• No Deterministas (los abreviaremos AFND)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


8/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Aplicaciones

• Diseño de analizadores léxicos para compiladores


• Modelado y prueba de protocolos de
comunicación
• Reconocimiento de patrones en texto
• Diseño de circuitos digitales

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


9/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Definición: Un autómata finito determinista (AFD) M es una
quı́ntupla (Q, Σ, δ, q0 , F ), donde:

• Q es un conjunto finito de estados


• Σ es el alfabeto de entrada
• δ : Q × Σ → Q es una función de transición entre
estados, es decir: δ(q, σ) = q 0
• q0 es el estado inicial
• F es el conjunto de estados finales

Nota
Se llaman deterministas porque dado un estado y un sı́mbolo
de entrada existe una sola transición posible que puede realizar
el autómata
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
10/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Diagrama de transiciones
Es común representar un autómata finito por medio
de un grafo dirigido y etiquetado. Un
grafo dirigido es un conjunto de nodos unidos por
aristas dirigidas (flechas) que tienen una etiqueta.

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


11/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Diagrama de transiciones
• Los nodos son estados del autómata
q
• Un estado q cualquiera se representa como:
q0
• Un estado inicial q0 se representa como:
q
• Un estado final q se reprsenta como:
• Una transición δ(q, σ) = p se representa como:
q σ p
σ

q
Si q = p lo transición se representa como:
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
12/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Aceptación y rechazo de cadenas


Un autómata finito (como grafo dirigido)

acepta una cadena si:

Existe un camino del estado inicial a un estado final


etiquetado con los sı́mbolos de la cadena en el orden en el que
aparecen en esta.

rechaza una cadena si:

No existe un camino del estado inicial a un estado final


etiquetado con los sı́mbolos de la cadena en el orden en el que
aparecen en esta.

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


13/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 2
Autómata que acepta el lenguaje {λ}

q0

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


14/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 3
Autómata que acepta el lenguaje {a}

q0 a qf

cadena de prueba: a

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


15/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 3
Autómata que acepta el lenguaje {a}

q0 a qf

cadena de prueba: a

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


16/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 3
Autómata que acepta el lenguaje {a}

q0 a qf

cadena de prueba: a (aceptada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


17/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 4
Autómata que acepta el lenguaje {a}∗
a

q0

cadena de prueba: aaa

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


18/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 4
Autómata que acepta el lenguaje {a}∗
a

q0

cadena de prueba: aaa

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


19/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 4
Autómata que acepta el lenguaje {a}∗
a

q0

cadena de prueba: aaa

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


20/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 4
Autómata que acepta el lenguaje {a}∗
a

q0

cadena de prueba: aaa

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


21/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 4
Autómata que acepta el lenguaje {a}∗
a

q0

cadena de prueba: aaa (aceptada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


22/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 5
Autómata que acepta el lenguaje {a, b}
a
q0 qf
b

cadena de prueba: a

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


23/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 5
Autómata que acepta el lenguaje {a, b}

a, b
q0 qf

cadena de prueba: a

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


24/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 5
Autómata que acepta el lenguaje {a, b}

a, b
q0 qf

cadena de prueba: a

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


25/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 5
Autómata que acepta el lenguaje {a, b}

a, b
q0 qf

cadena de prueba: a (aceptada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


26/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

a, b

q0 qf
a, b

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


27/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

a, b

q0 qf
a, b

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


28/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

a, b

q0 qf
a, b

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


29/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

a, b

q0 qf
a, b

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


30/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

a, b

q0 qf
a, b

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


31/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

a, b

q0 qf
a, b

cadena de prueba: abba (aceptada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


32/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 6
Autómata que acepta el lenguaje {a, b}∗

Se puede simplificar como:

a, b

q0

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


33/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 7
Autómata que acepta el lenguaje {ab}.

q0 a q1 b qf

cadena de prueba: ab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


34/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 7
Autómata que acepta el lenguaje {ab}.

q0 a q1 b qf

cadena de prueba: ab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


35/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 7
Autómata que acepta el lenguaje {ab}.

q0 a q1 b qf

cadena de prueba: ab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


36/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 7
Autómata que acepta el lenguaje {ab}.

q0 a q1 b qf

cadena de prueba: ab (aceptada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


37/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


38/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


39/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


40/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


41/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abab

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


42/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abab (aceptada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


43/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


44/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


45/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abba

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


46/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas

Ejemplo 8
Autómata que acepta el lenguaje {ab}∗ .
a
q0 a q b qf
1

cadena de prueba: abba (rechazada)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


47/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba: aacb


48/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba: aacb


49/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba: aacb


50/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba: aacb


51/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba: aacb (aceptada)


52/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba 2: aacbab


53/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba 2: aacbab


54/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba 2: aacbab


55/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba 2: aacbab (aceptada)


56/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 9
Autómata que acepta el lenguaje formado por una o
más repeticiones de cadenas que empiezan con a,
terminan con b y en medio tienen cero o más
ocurrencias de c o a.
a, c

q0 a q1 b q2
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@

cadena de prueba: aac


57/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 10
b

q0 b q1 a q2 c q3

Formalmente:
Sea A = (Q, Σ, δ, q0 , F ) el autómata anterior con:
• Q = {q0 , q1 , q2 , q3 }
• Σ = {a, b, c}
• δ se define como:
δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3
• q0 es el estado inicial
• F = {q3 }
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
58/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 10
b

q0 b q1 a q2 c q3

O en formato de tabla (transiciones):

a b c
q0 - q1 -
q1 q2 - -
q2 - q2 q3
q3 - - -
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
59/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Función δ ∗
Para definir formalmente el lenguaje aceptado por un AFD,
definimos la función δ ∗ como la función que recibe una estado
p y una cadena, y devuelve el estado en el que se detiene el
autómata después de aplicar la función de transición δ
iterativamente para cada sı́mbolo de la cadena de entrada.

Formalmente se defino δ ∗ : Q × Σ∗ → Q de la siguiente


forma.

Sean q ∈ Q, σ ∈ Σ y w ∈ Σ∗ , entonces:

δ ∗ (q, λ) = q
δ ∗ (q, σw ) = δ ∗ (δ(q, σ), w )

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


60/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


61/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


62/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc)

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


63/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
64/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc) = δ ∗ (q2 , bc)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
65/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc) = δ ∗ (q2 , bc) = δ ∗ (δ(q2 , b), c)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
66/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc) = δ ∗ (q2 , bc) = δ ∗ (δ(q2 , b), c) = δ ∗ (q2 , c)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
67/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc) = δ ∗ (q2 , bc) = δ ∗ (δ(q2 , b), c) = δ ∗ (q2 , c) =
δ ∗ (δ(q2 , c), λ)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
68/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc) = δ ∗ (q2 , bc) = δ ∗ (δ(q2 , b), c) = δ ∗ (q2 , c) =
δ ∗ (δ(q2 , c), λ) = δ ∗ (q3 , λ)
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
69/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Autómatas Finitos Deterministas


Ejemplo 11

q0 b q1 a q2 c q3

Matemáticamente las transiciones del autómata son:


δ(q0 , b) = q1 , δ(q1 , a) = q2 , δ(q2 , b) = q2 , δ(q2 , c) = q3

El procesamiento de la cadena babc a partir del estado q0 es

δ ∗ (q0 , babc) = δ ∗ (δ(q0 , b), abc) = δ ∗ (q1 , abc) =


δ ∗ (δ(q1 , a), bc) = δ ∗ (q2 , bc) = δ ∗ (δ(q2 , b), c) = δ ∗ (q2 , c) =
δ ∗ (δ(q2 , c), λ) = δ ∗ (q3 , λ) = q3
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
70/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Aceptación y rechazo

Sea A = (Q, Σ, δ, q0 , F ) un AFD y w ∈ Σ∗ .

• Diremos que la cadena w es aceptada por A sii


δ ∗ (q0 , w ) ∈ F

• Diremos que la cadena w es rechazada por A sii


δ ∗ (q0 , w ) ∈
/F

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


71/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Lenguaje aceptado por un autómata

Considere el autómata A = (Q, Σ, q0 , F, δ).


Denotaremos como L(A) al lenguaje aceptado por A
y lo definiremos de la siguiente manera:

L(A) = {w ∈ Σ∗ | δ ∗ (q0 , w ) ∈ F }

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


72/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Ejercicios en clase

Dar un autómata finito que reconozca las cadenas


binarias con al menos un 0

Solución:
1 0, 1

q0 0 q1

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


73/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Ejercicios en clase

Dar un autómata finito que reconozca las cadenas


binarias que terminan en 1

Solución:
0 1
0

q0 q1
1

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


74/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Ejercicios en clase

Dar un autómata finito que reconozca las cadenas


binarias con al menos tres unos

Solución:
0 0 0 1, 0

q0 1 q1 1 q2 1 q3

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


75/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Ejercicios en clase

Considere el alfabeto Σ = {a, b}, dar un autómata


finito que reconozca las cadenas con número par de
as

Solución:
b b
a

q0 q1
a
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
76/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Lenguajes regulares

Sea lenguaje L ⊆ Σ∗ .

• Diremos que L es un lenguaje regular sii existe


un autómata finito A tal que L = L(A).

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


77/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Lenguajes regulares

Sea lenguaje L ⊆ Σ∗ .

• Diremos que L es un lenguaje regular sii existe


un autómata finito A tal que L = L(A).

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


78/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

• La única forma de memoria que tiene un AFD


es el estado en que se encuentra
• El diseño debe empezar con la propuesta del
conjunto de estados que ”recuerden”
condiciones importantes sobre el procesamiento
de cadenas.
• Posteriormente se proponen las transiciones que
permiten pasar de un estado a otro

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


79/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


80/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda?


P Número de unos leidos es par
I Número de unos leidos es impar

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


81/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda? Final


P Número de unos leidos es par No
I Número de unos leidos es impar Sı́

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


82/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda? Final


P Número de unos leidos es par No
I Número de unos leidos es impar Sı́

P I
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
83/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda? Final


P Número de unos leidos es par No
I Número de unos leidos es impar Sı́

P I
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
84/100
1
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda? Final


P Número de unos leidos es par No
I Número de unos leidos es impar Sı́

0 0

P I
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
85/100
1
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda? Final


P Número de unos leidos es par No
I Número de unos leidos es impar Sı́

0 0
1

P I
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
86/100
1
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es impar

Propuesta de estados:

Estado ¿Qué recuerda? Final


P Número de unos leidos es par No
I Número de unos leidos es impar Sı́
0 0
1

P I
1
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
87/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es múltiplo de 3

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


88/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es múltiplo de 3
Propuesta de estados:

Estado ¿Qué recuerda?


0 No se han leı́do unos
1 Se ha leı́do un uno
2 Se han leı́do dos unos
3 Se han leı́do tres unos

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


89/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es múltiplo de 3
Propuesta de estados:

Estado ¿Qué recuerda? Final


0 No se han leı́do unos Sı́
1 Se ha leı́do un uno No
2 Se han leı́do dos unos No
3 Se han leı́do tres unos Sı́

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


90/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Diseñar un AFD que acepte el lenguaje de cadenas con el
alfabeto {0, 1} tales que el número de unos es múltiplo de 3
Propuesta de estados:

Estado ¿Qué recuerda? Final


0 No se han leı́do unos Sı́
1 Se ha leı́do un uno No
2 Se han leı́do dos unos No
3 Se han leı́do tres unos Sı́
0 0 0 0

1 1 1
0 1 2 3
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
91/100 1
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Disenar un AFD que acepte exactamente el lenguaje en el
alfabeto{0, 1} en que las cadenas no comienzan con 00.

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


92/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Disenar un AFD que acepte exactamente el lenguaje en el
alfabeto{0, 1} en que las cadenas no comienzan con 00.
Propuesta de estados:

Estado ¿Qué recuerda?


q0 No se han leı́do nada
q1 Se ha leı́do un cero al inicio
q2 Se han leı́do dos ceros iniciales
q3 Se leyó algo que no son dos ceros iniciales

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


93/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño

Ejemplo
Disenar un AFD que acepte exactamente el lenguaje en el
alfabeto{0, 1} en que las cadenas no comienzan con 00.
Propuesta de estados:

Estado ¿Qué recuerda? Final


q0 No se han leı́do nada Sı́
q1 Se ha leı́do un cero al inicio Sı́
q2 Se han leı́do dos ceros iniciales No
q3 Se leyó algo que no son dos ceros iniciales Sı́

Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@


94/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Disenar un AFD que acepte exactamente el lenguaje en el
alfabeto{0, 1} en que las cadenas no comienzan con 00.
Propuesta de estados:

Estado ¿Qué recuerda? Final


q0 No se han leı́do nada Sı́
q1 Se ha leı́do un cero al inicio Sı́
q2 Se han leı́do dos ceros iniciales No
q3 Se leyó algo que no son dos ceros iniciales Sı́
0, 1 0, 1

q0 0 q1 0 q2 q3
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
95/100
1
1
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Diseño por conjunto de estados

Para problemas muy complejos una mejor estrategia es diseñar a


un nivel más alto de abstracción, es decir diseñar con base a un
grupo de estados (nube de estados) y no con estados individuales.

Este método consiste en:


• Identificar las nubes de estados (condiciones generales del
problema). Las condiciones que sean de aceptación de
cadenas serán nubes finales
• Posteriormente refinar cada nube de estados. En caso de que
la nube sea final todos los estados de la nube serán también
finales.
• Identificar las transiciones entre nubes de estados
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
96/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Disenar un AFD que acepte el lenguaje de cadenas que contienen
la subcadena 00 pero no la 11, usando el alfabeto binario .

00 pero no 11

Ni 11 ni 00
11
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
97/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Disenar un AFD que acepte el lenguaje de cadenas que contienen
la subcadena 00 pero no la 11, usando el alfabeto binario .

00 pero no 11

q2
0 1
0
q0 1 11
q1
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
98/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Disenar un AFD que acepte el lenguaje de cadenas que contienen
la subcadena 00 pero no la 11, usando el alfabeto binario .

0
1
q3 q4
0 0

q2
0 1
0
q0 1 11
q1
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
99/100
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Métodos de diseño
Ejemplo
Disenar un AFD que acepte el lenguaje de cadenas que contienen
la subcadena 00 pero no la 11, usando el alfabeto binario .

0
1
q3 q4
0 0

q2 1 0, 1
0 1
0
q0 1 1 q5
q1
Luis M. Estradaluism@unam.mx—Short title@—5 de marzo de 2019@
100/100

También podría gustarte