You are on page 1of 41

MAESTRÍA EN

SISTEMAS
COMPUTACIONALES

Matemáticas Avanzadas para


Computación
Tema 4 Autómatas de estado finito
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Modelos de Computación

▪ AFD y AFN
Lenguajes Regulares
▪ APN
Lenguajes Libres de Contexto
▪ Maquina de Turing Acotada
Lenguajes Sensibles al Contexto
▪ Maquinas de Turing
Lenguajes E numerables Recurrentemente
▪ Cada nivel de Lenguajes en la llamada Jerarquía de Chomsky tiene asociado un
modelo de computación
▪ Mientras mas complejos son los lenguajes , mas poderosos son sus modelos de
computación asociados.

2
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Comparación de Modelos de Computo

Autómatas Finitos control de estados finito


cadena de entrada
no hay memoria
Autómatas de Pila control de estados finitos
cadena de entrada
pila de memoria
Maquinas de Turing control de estados finito
entrada sobre la cinta
cinta de memoria (infinita)

Una MT es equivalente a un APN con dos pilas

3
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Autómatas Finitos Deterministas

• Un AF con función de transición 𝛿: 𝑄 × Σ →


𝑄, tal que a cada par 𝑄 × Σ , le corresponda
un único estado 𝑄 , i.e., “determina de
manera única el siguiente estado”, es un AF
Determinista.
MAESTRÍA EN
SISTEMAS

Ejemplo COMPUTACIONALES
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFD
• El siguiente AF es determinista?

• Bajar JFLAP de Moodle y crear el autómata.


• Validar:
• babbbbaaaaabaa… lo acepta? Cuáles estados visita?
• aaaaabaabaaaba… lo acepta? Cuáles estados visita?
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Ejercicio en JFLAP

• Realizar el AFD que acepta todas las cadenas


que contienen la subcadena 01.
• Validarlo.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Ejercicio en JFLAP

• Realizar el AFD que acepta todas las cadenas


que contienen la subcadena 01.
• Validarlo.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Lenguaje aceptado por un AFD


MAESTRÍA EN
SISTEMAS

Consideraciones en el diseño de COMPUTACIONALES

AFD
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Ejemplo
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Ejercicios
MAESTRÍA EN
SISTEMAS

Operaciones regulares entre COMPUTACIONALES

lenguajes
• Unión
A  B = {w | w  A ó w  B} = palabras que están
en A ó en B ó en ambos.
• Concatenación
A ◦ B = {w | w = xy donde x  A y y  B} =
palabras formadas yuxtaponiendo (una junto a otra)
una palabra de A seguida de una palabra de B.
• Estrella
A* = {w | w = x1x2…xk, k0 y cada xi  A} =
palabras formadas yuxtaponiendo 0 ó 1 ó varias
palabras de A.

15
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

¿Porqué “operaciones regulares”?

• El conjunto de lenguajes regulares es cerrado bajo uniones,


concatenaciones y operaciones estrella de lenguajes
regulares, es decir,
• La unión de dos lenguajes regulares es un lenguaje regular.

• La concatenación de dos lenguajes regulares es un lenguaje regular.

• La operación estrella de un lenguaje regular es un lenguaje regular.

16
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Otras operaciones
• Intersección
A  B = {w | w  A y w  B} = palabras que están tanto
en A como en B.
• Diferencia
A  B = {w | w  A y w  B} = palabras que están en A
pero no en B.
• Complemento
AC = {w | w  A} = palabras que no están en A.
Nota: aunque estas operaciones no son llamadas operaciones
regulares, también se cumple que el conjunto de lenguajes
regulares es cerrado bajo ellas.

17
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Operaciones entre autómatas


• Sean
• M1 = (Q1, , 1, s1, F1) y
M2 = (Q2, , 2, s2, F2) dos AFDs que aceptan los
lenguajes A y B, respectivamente.
• Cómo obtener autómatas que reconozcan
• AB
• AB
• AB
• AC

18
Para unión, intersección y MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

diferencia
• Definamos el autómata M = (Q, , , s0, F) donde
• Q = Q1 × Q2
• s0 = (s1, s2)
• ((p, q), a) = (1(p, a), 2(q, a)) para pQ1, qQ2 y a

• Si F = {(p, q) | pF1 o qF2}, entonces M acepta al


lenguaje A  B.
• Si F = {(p, q) | pF1 y qF2}, entonces M acepta al
lenguaje A  B.
• Si F = {(p, q) | pF1 y qF2}, entonces M acepta al
lenguaje A  B.

19
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Ejemplo
• Consideremos los lenguajes sobre el alfabeto ={0, 1}:
• L1 = {x | 00 no es una subcadena de x}
• L2 = {x | x termina con 01}
1 0,1

0
0 1 0
A 1 B C
1
L1 P 0 Q R
0

L2
20
MAESTRÍA EN
SISTEMAS

Q1 × 1Q2
COMPUTACIONALES

AP BP CP
0
0
0
0
1 AQ BQ CQ 1

0
0 1
1

AR BR CR
21
MAESTRÍA EN
SISTEMAS

L1  L1 2
COMPUTACIONALES

AP CP
0
0
0
0
1 BQ CQ 1

0
0 1
1

AR CR
22
MAESTRÍA EN

L1  1L2
SISTEMAS
COMPUTACIONALES

AP CP
0
0
0
0
1 BQ CQ 1

0
0 1
1

AR CR
23
MAESTRÍA EN

L1  L
SISTEMAS
COMPUTACIONALES

1 2 1

AP CP
0
0
0
0
1 BQ CQ 1

0
0 1
1

AR CR
24
MAESTRÍA EN

Ejercicio SISTEMAS
COMPUTACIONALES

• Ya que L1C = {todas las palabras formadas con


símbolos del alfabeto Σ}  L1,
el AFD que acepta L1C se obtiene:
• Cambiando los estados finales a no-finales y los no-
finales a finales.
1 0,1

0
B 0 C 1 0,1
A 1

0
L1 0
A 1 B C

L1C
25
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Ejercicios

Considere los siguientes lenguajes regulares


basados en el alfabeto Σ= {a,b}
A={w| w comienza con a y termina con b}, B={
w| |w|2}
L1= AB, L2=AB, L3=A-B, L4=AC
• Construye los AFDs para los lenguajes A, B,
L1, L2, L3 y L4
MAESTRÍA EN
SISTEMAS

Autómata De Estado Finito No COMPUTACIONALES

Determinista - AFN
• Un AFN es una 5-tupla 𝑀 =
(𝑄, Σ, 𝑞0 , 𝛿, 𝐹), siendo:
• 𝑄 = {𝑞𝑖 }, el conjunto finito de estados posibles
del autómata;
• Σ, su alfabeto finito de entrada;
• 𝑞0 ∈ 𝑄, su estado inicial;
• 𝛿: 𝑄 × Σ ∪ 𝜖 → 𝒫(𝑄), una función de transición
entre estados que dicta el comportamiento del
autómata;
• 𝐹 ⊆ 𝑄, el subconjunto de estados de aceptación.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFN

• AFN 𝑀 = 𝑄, Σ, 𝛿, 𝑞0 , 𝐹 , donde:
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFN

Cuál L acepta?

• AFN 𝑀 = 𝑄, Σ, 𝛿, 𝑞0 , 𝐹 , donde:
• 𝑄 = 𝜎, 𝐴, 𝐹 , Σ = 𝑎, 𝑏 , 𝑞0 = 𝜎, 𝐹 = 𝐹,
𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑖𝑐𝑖ó𝑛 𝛿 𝑠𝑒 𝑑𝑒𝑓𝑖𝑛𝑒 𝑒𝑛 𝑙𝑎 𝑡𝑎𝑏𝑙𝑎.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFN

Cuál L acepta?
𝐿(𝑀) = {𝑎𝑛 𝑏|𝑛 ≥ 1}.

• AFN 𝑀 = 𝑄, Σ, 𝛿, 𝑞0 , 𝐹 , donde:
• 𝑄 = 𝜎, 𝐴, 𝐹 , Σ = 𝑎, 𝑏 , 𝑞0 = 𝜎, 𝐹 = 𝐹,
𝑙𝑎 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑖𝑐𝑖ó𝑛 𝛿 𝑠𝑒 𝑑𝑒𝑓𝑖𝑛𝑒 𝑒𝑛 𝑙𝑎 𝑡𝑎𝑏𝑙𝑎.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFN

• La tabla de transiciones a cuál AFN


pertenece?
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFN

• La tabla de transiciones a cuál AFN


pertenece?

Cuál L acepta?
.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

AFN

• La tabla de transiciones a cuál AFN


pertenece?

Cuál L acepta?
𝐿(𝑀) = {𝑎𝑛 𝑏, 𝑎𝑛 𝑏 𝑚 𝑎|𝑚, 𝑛 ≥ 1}.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

Convertir un AFN a AFD


MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES
• Se puede ampliar la definición de AFN para incluir transiciones de un estado
al otro que no dependan de ninguna entrada.
• Tales transiciones se llaman ε transiciones por que no consumen ningún
carácter
• Dado que la decisión de elegir una ε-transición se realiza de la misma forma
que la de cualquier otra transición con elección múltiple, esto es
consistente con el matiz no determinista de las versiones previas de AFN
• Ejemplo:

a
ε
q0 q1

• En este caso, el AFN puede moverse del estado q0 al estado q1 sin


consumir nada en la entrada
35
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES

• Si un AFN tiene ε-transiciones, la relación de transición ∆ asocia


pares de Q X (Σ U {ԑ}) X Q con subconjuntos de Q
q0 a q1

a, ε b
q2

∆ a b ԑ
q0 {q1} Ф Ф
q1 Ф {q2} Ф
q2 {q0} Ф {q0}

36
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES
• Para tratar de calcular el conjunto de los estados siguientes de un AFN que
contiene ε-transiciones debemos tomar en cuenta las ε transiciones
“anteriores” y “posteriores” a la transición etiquetada con σ

q0 a q1 q2 a q3
* b
a b ε b
b
q5 q4
• En este caso, el conjunto de estados siguientes al estado q0 mediante la
entrada “a” es el conjunto {q1,q4}
• Cual seria el conjunto de estados siguientes siendo q1 el estado actual y b la
entrada?

37
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES
• Para todo estado q ϵ Q definimos la ε-cerradura de q como:
• ε-c (q) = {p Ι p es accesible desde q sin consumir nada de entrada}

q0 ε q1 q2
ε *
a b ε
b
q3 q4
• Así en este AFN ε-c (q3) = {q3} y ε-c (q0) = {q0, q1, q2}
• Cuales serian las ε-c para q1 y q4?
• Para q ϵ Q y σ que pertenece a Σ tenemos que:
• d (q, σ) = {p Ι hay una transición de q a p etiquetada con σ}
• Donde d (q, σ) es la colección de estados que siguen directamente a q por la transición
etiquetada con σ

38
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES
• Para el mismo AFN tendremos:
q0 ε q1 q2
ε *
a b ε
b
q3 q4
• d(q0, a) = {q3}
• d(q0, b) = { }
• d({q3, q4 }, b) = {q0 ,q4}
• Combinando ambos conceptos se tiene que:
• ε-c (d(q, σ)) es el conjunto de todos los estados accesibles desde q primero mediante
una transición con σ y después mediante una o mas ε transiciones.
• d(ε-c(q), σ) es el conjunto de todos los estados accesibles desde q tomando primero una
o mas ε transiciones y después una transición con σ

39
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES

• Para el siguiente AFN obtener:


• ε-c (q0) =
• d(ε-c (q0), a) =
• ε-c ({q3, q4}) =
• Δ (q0, a) =

q0 ε q1
b q*2
a ε a
b ε
q3 q4 q5

40
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES

ε TRANSICIONES

• Se puede obtener un AFN sin ε transiciones a partir de uno que


si las tiene. Tomando como ejemplo el AFN anterior, el AFN sin
ε transiciones seria:

b
q0 ε q1 b q2 q0
* a q1 b *
q2
a ε a a a a a
b ε a a,b
q3 q4 q5 q3 q4 q5
a,
b
b

41

You might also like