42
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

Abro paréntesis, abro paréntesis, cierro parentesis,

Embed Size (px)

Citation preview

Page 1: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 2: Abro paréntesis, abro paréntesis, cierro parentesis,

Para los lenguajes regulares

AF, AFNDAFND-ɛ

L Verdadero

FalsoR

Page 3: Abro paréntesis, abro paréntesis, cierro parentesis,

Jerarquía de Chomsky

regular

independiente del contexto

dependiente del contexto

recursivamente enumerable

Page 4: Abro paréntesis, abro paréntesis, cierro parentesis,

Jerarquía de Chomsky

independiente del contexto

dependiente del contexto

recursivamente enumerable

regular

Page 5: Abro paréntesis, abro paréntesis, cierro parentesis,

Jerarquía de Chomsky

independiente del contexto

dependiente del contexto

recursivamente enumerable

regular

Page 6: Abro paréntesis, abro paréntesis, cierro parentesis,

Jerarquía de Chomsky

independiente del contexto

dependiente del contexto

recursivamente enumerable

regular

Page 7: Abro paréntesis, abro paréntesis, cierro parentesis,

Lenguajes no regulares

Page 8: Abro paréntesis, abro paréntesis, cierro parentesis,

Tipos de lenguajesFinitos: siempre son regularesInfinitos no siempre son regulares

Page 9: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 10: Abro paréntesis, abro paréntesis, cierro parentesis,

q₀ q₁b

a a

b

Page 11: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 12: Abro paréntesis, abro paréntesis, cierro parentesis,

El cicloPara , y w ∈ LR |w| ≥ n w = xyz

Entonces x z ∈yk LR

Page 13: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 14: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 15: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 16: Abro paréntesis, abro paréntesis, cierro parentesis,

Un nuevo lenguaje con el mismoalfabetoEl lenguaje de as seguidas del mismo número de bes

aibi

Ejemplos , , , ϵ ab aabb aaabbb

Page 17: Abro paréntesis, abro paréntesis, cierro parentesis,

aibi

¿De qué tamaño es el lenguaje?

Page 18: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 19: Abro paréntesis, abro paréntesis, cierro parentesis,

Otra forma de verlo

¿Qué necesita recordar mi autómata?

Page 20: Abro paréntesis, abro paréntesis, cierro parentesis,

q₀ q₁b

a a

b

Page 21: Abro paréntesis, abro paréntesis, cierro parentesis,

Si tiene número par o impar de bes

Page 22: Abro paréntesis, abro paréntesis, cierro parentesis,

¿Qué necesito recordar para ?aibi

Page 23: Abro paréntesis, abro paréntesis, cierro parentesis,

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

...

...

...

...

...

...

Page 24: Abro paréntesis, abro paréntesis, cierro parentesis,

Hay lenguajes que no sonregulares

Page 25: Abro paréntesis, abro paréntesis, cierro parentesis,

Vamos a presentar otradimensión

Gramáticas

Page 26: Abro paréntesis, abro paréntesis, cierro parentesis,

No confundir

Page 27: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 28: Abro paréntesis, abro paréntesis, cierro parentesis,

Producciones/ReglasPara , donde aibi G = ({S}, {a, b}, P , S) P

S → aSbS → ϵ

Page 29: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 30: Abro paréntesis, abro paréntesis, cierro parentesis,

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 → ∅

Page 31: Abro paréntesis, abro paréntesis, cierro parentesis,

R−⇒ R−

⇒ (R−)∗

⇒ ( RR− )∗

⇒ ( RRR− )∗

⇒ ( RRRR− )∗

⇒ ( RRRRR− )∗

⇒ ( R RRR∗ R− )∗

Page 32: Abro paréntesis, abro paréntesis, cierro parentesis,

⇒ ( 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∗)∗

Page 33: Abro paréntesis, abro paréntesis, cierro parentesis,

⇒ ( 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∗)∗

Page 34: Abro paréntesis, abro paréntesis, cierro parentesis,

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

Page 35: Abro paréntesis, abro paréntesis, cierro parentesis,

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⇒∗

Page 36: Abro paréntesis, abro paréntesis, cierro parentesis,

En lenguaje aceptado por unagramática L(G)Con G = (V , Σ, P , S)

L(G) = {w ∈ |S w}Σ∗ ⇒∗

Page 37: Abro paréntesis, abro paréntesis, cierro parentesis,

ÁrbolesOtra forma de representar las derivaciones

Page 38: Abro paréntesis, abro paréntesis, cierro parentesis,

ɛ

a S b

a S b

a S b

S

aaabbb

Page 39: Abro paréntesis, abro paréntesis, cierro parentesis,

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∗)∗

Page 40: Abro paréntesis, abro paréntesis, cierro parentesis,

a a

a B B

a B R

a B R

B R

R

R

aaaaa

Page 41: Abro paréntesis, abro paréntesis, cierro parentesis,

Lema de bombeo: Lenguajes que no son regularesGramáticas Libres de ContextoDerivaciónÁrboles

Page 42: Abro paréntesis, abro paréntesis, cierro parentesis,

[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