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
3
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
Ejemplo COMPUTACIONALES
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
AFD
• El siguiente AF es determinista?
Ejercicio en JFLAP
Ejercicio en JFLAP
AFD
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
Ejemplo
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
Ejercicios
MAESTRÍA EN
SISTEMAS
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, k0 y cada xi A} =
palabras formadas yuxtaponiendo 0 ó 1 ó varias
palabras de A.
15
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
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
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 pQ1, qQ2 y a
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
0
B 0 C 1 0,1
A 1
0
L1 0
A 1 B C
L1C
25
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
Ejercicios
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
AFN
Cuál L acepta?
.
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
AFN
Cuál L acepta?
𝐿(𝑀) = {𝑎𝑛 𝑏, 𝑎𝑛 𝑏 𝑚 𝑎|𝑚, 𝑛 ≥ 1}.
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
ε TRANSICIONES
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
q0 ε q1
b q*2
a ε a
b ε
q3 q4 q5
40
MAESTRÍA EN
SISTEMAS
COMPUTACIONALES
ε TRANSICIONES
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