Upload
ivan-vladimir-meza-ruiz
View
46
Download
2
Embed Size (px)
Citation preview
Abro paréntesis, abro paréntesis,cierro paréntesis, ...
No lata, no: la totalidad arada dilato talón a talón—Juan Filloy
Ivan Meza
Para los lenguajes regulares
AF, AFNDAFND-ɛ
L Verdadero
FalsoR
Jerarquía de Chomsky
regular
independiente del contexto
dependiente del contexto
recursivamente enumerable
Jerarquía de Chomsky
independiente del contexto
dependiente del contexto
recursivamente enumerable
regular
Jerarquía de Chomsky
independiente del contexto
dependiente del contexto
recursivamente enumerable
regular
Jerarquía de Chomsky
independiente del contexto
dependiente del contexto
recursivamente enumerable
regular
Lenguajes no regulares
Tipos de lenguajesFinitos: siempre son regularesInfinitos no siempre son regulares
AF en un lenguaje infinitoPara un y para Σ w ∈ LR
El trabajo del AF es circular por un conjunto �nito deestados ( )
wn
¿Qué podemos decir si es menor de ?¿Qué podemos decir si es mayor o igual ?
|w| n|w| n
q₀ q₁b
a a
b
El caso interesantePara y w ∈ LR |w| ≥ n
Por lo menos un estado se repiteLa cadena se puede particionar en: En donde
es un prefijo es un ciclo con es un sufijo
q₀ qix z
y
xyz|xy| ≤ k
xy |y| > 1z
El cicloPara , y w ∈ LR |w| ≥ n w = xyz
Entonces x z ∈yk LR
EjemploProponer lenguaje, qué tal número par de besEscoger , qué tal Proponer una cadena que dependa de , qué tal Particionar , qué tal , , Checar que se cumplan restricciones, , Checar si , sí pertenece
Σ = {a, b}n n
n bban
w x = a(n−1) y = a z = bb|xy| ≤ n y ≠ ϵ
x z ∈ Lyk bb ∈ La(n−1)ak
No tan rápido, faltan más formas de cadenas en el lenguaje
Ejemplo (cont.)Por ejemplo n (bb)n
Particionar , qué tal , , Checar que se cumplan restricciones, qué tal , Checar si , sí pertenece , ya que totalde bes es , que es par
w x = b(n−2) y = bb z = bn
|xy| ≤ n y ≠ ϵ
x z ∈ Lyk (bb b ∈ Lb(n−2) )k bn
2k + 2n − 2
No tan rápido todavía, faltan más formas de cadenas en ellenguaje
Probar que un lenguaje es regular por este procedimiento esdemasiado trabajo, muchas veces con encontrar unaexpresión regular o un autómata �nito, es su�ciente
¡Es más fácil probar que no lo es!
A este procedimiento se le conoce como lema de bombeo
Un nuevo lenguaje con el mismoalfabetoEl lenguaje de as seguidas del mismo número de bes
aibi
Ejemplos , , , ϵ ab aabb aaabbb
aibi
¿De qué tamaño es el lenguaje?
Proponer lenguaje, qué tal con Escoger , qué tal Proponer una cadena que dependa de , qué tal Particionar , qué tal , , Checar que se cumplan restricciones, , Checar si , no pertenece para cualquier , ya que sólo se cumple para
Σ = {a, b} aibi
n n = in anbn
w x = a(n−1) y = a z = bn
|xy| ≤ n y ≠ ϵ
x z ∈ Lyk k ∉ La(n−1)akbn
k = 1
Otra forma de verlo
¿Qué necesita recordar mi autómata?
q₀ q₁b
a a
b
Si tiene número par o impar de bes
¿Qué necesito recordar para ?aibi
q₀ q₁ q₂ q₃ qi
q₁₁ q₂₁
q₂₂
q₃₁
q₃₂
q₃₃
qi₁
qi₂
qi₃
qii
a a a
b b
b
b
b
b
b
b
b
...
...
...
...
...
...
Hay lenguajes que no sonregulares
Vamos a presentar otradimensión
Gramáticas
No confundir
Son una tupla , donde:
Gramáticas libres de contextoG = (V , Σ, P , S)
es otro alfabeto que denominamos símbolos no terminales(generalmente en mayúsculas)
es un alfabeto que denominamos símbolos terminales es conjunto de reglas con la forma donde
y que denominamos símbolo inicial
V
ΣP A → α α ∈ (Σ ∪ V )∗
A ∈ VS ∈ V
Producciones/ReglasPara , donde aibi G = ({S}, {a, b}, P , S) P
S → aSbS → ϵ
Como proceso de reescritura
El subrayado sólo marca que elemento se está re-escribiendo
Una derivación
S−
⇒ a bS−⇒ a a b bS−⇒ a a a b b bS−⇒ a a a ϵ b b b⇒ aaabbb
Uno más bonito donde G = ({R, B}, {a, b, ϵ, ∅}, P , R, +, ∗, (, )) P
R → BR → R + RR → R∗
R → RRR → (R)B → aB → bB → ϵB → ∅
R−⇒ R−
∗
⇒ (R−)∗
⇒ ( RR− )∗
⇒ ( RRR− )∗
⇒ ( RRRR− )∗
⇒ ( RRRRR− )∗
⇒ ( R RRR∗ R− )∗
⇒ ( R RRR∗ R− )∗
⇒ ( R RR∗ R∗ R−)∗
⇒ ( R RR−∗ R∗ R∗)∗
⇒ ( RB∗R−R∗ R∗)∗
⇒ ( B RB∗ R−∗ R∗)∗
⇒ ( BB∗ B∗R−R∗)∗
⇒ ( B BB∗ B∗ R−∗)∗
⇒ ( B BB−∗ B∗ B∗)∗
⇒ ( B BB−∗ B∗ B∗)∗
⇒ ( Ba∗B−B∗ B∗)∗
⇒ ( b Ba∗ B−∗ B∗)∗
⇒ ( ba∗ a∗B−B∗)∗
\Rightarrow (a^* b a^* b \underline{B^*)^*⇒ ( b ba∗ a∗ a∗)∗
Un ejemplo más pequeño
R− ⇒ + RR− ⇒ + RB− ⇒ a + R− ⇒ a + B− ⇒ a + bR− ⇒ R + R− ⇒ R + B− ⇒ + bR− ⇒ + bB− ⇒ a + b
Derivaciones por la izquierda y por la derecha
Un ejemplo más largo
R− ⇒ RR− ⇒ RRR− ⇒ RRRR− ⇒ RRRRR− ⇒ RRRRB−⇒ a RRRR− ⇒ a RRRB− ⇒ aa RRR− ⇒ aa RRB− ⇒ aaa RR−⇒ aaa BB− ⇒ aaaaR− ⇒ aaaaB− ⇒ aaaaa
R RRRRR⇒∗ aaRRR⇒∗ aaaaa⇒∗
En lenguaje aceptado por unagramática L(G)Con G = (V , Σ, P , S)
L(G) = {w ∈ |S w}Σ∗ ⇒∗
ÁrbolesOtra forma de representar las derivaciones
ɛ
a S b
a S b
a S b
S
aaabbb
a
a b B
B B R *
a b R * R R
B B R R
R * R R
R R
( R )
R *
R
R
( b ba∗ a∗ a∗)∗
a a
a B B
a B R
a B R
B R
R
R
aaaaa
Lema de bombeo: Lenguajes que no son regularesGramáticas Libres de ContextoDerivaciónÁrboles
[email protected] ivanvladimir.github.io ivanvladimir
Abro paréntesis, abro paréntesis, cierro parentesis, ... by is licensed under a
. Creado a partir de la obra en
.
Ivan V.Meza Ruiz Creative Commons Reconocimiento
4.0 Internacional License
http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/glc.html