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

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

Upload: ivan-vladimir-meza-ruiz

Post on 26-Jan-2017

222 views

Category:

Education


2 download

TRANSCRIPT

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 sonregulares

AF en un lenguaje infinitoPara un y para Σ w ∈ LR

El trabajo del AF es circular por un conjunto finito 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 = xyx

Entonces x z ∈yk LR

EjemploProponer lenguaje , que tal número par de besEscoger , qué tal Proponer una cadena que dependa de , que tal Particionar , que tal , , Checar que se cumplan restricciones , que tal ,

Checar si , que tal

Σ = {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 , que tal , , Checar que se cumplan restricciones, que tal , Checar si , que tal , total de 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 finito, es suficiente

¡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 mismoalfabeto

El lenguaje de as seguidas del mismo número de bes

aibi

Ejemplos , , , ϵ ab aabb aaabbb

aibi

¿De qué tamaño es ellenguaje?

Proponer lenguaje , que tal con Escoger , qué tal Proponer una cadena que dependa de , que tal Particionar , que tal , , Checar que se cumplan restricciones , que tal , Checar si , que tal , ya que sólo secumple para

Σ = {a, b} aibi

n n = in anbn

w x = a(n−1) y = a z = bn

|xy| ≤ n y ≠ ϵ

x z ∈ Lyk b ∈ La(n−1)ak bn

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 son regulares

Vamos a presentar otra dimensió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 → αalpha ∈ (Σ ∪ V )∗ A ∈ VS ∈ V

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

S → aSbS → ϵ

Como proceso de reescritura

Una derivación

S⇒ aSb⇒ a aSb b⇒ a a aSb b b⇒ a a a ϵ b b b⇒ aaabbb

Uno más bonito donde G = ({R, B}, {a, b, e, ∅}, P , R) P

R → B

R → R + RR → R ∗R → RRR → (R)B → aB → bB → eB → ∅

R⇒ R∗

⇒ (R)∗

⇒ (RR)∗

⇒ (RRR)∗

⇒ (RRRR)∗

⇒ (RRRRR)∗

⇒ ( RRRRR∗ )∗

⇒ ( RRRRR∗ )∗

⇒ ( R RRR∗ R∗ )∗

⇒ ( R RRR∗ R∗ )∗

⇒ ( R RB∗ R∗ R∗)∗

⇒ ( B RB∗ R∗ R∗)∗

⇒ ( B RB∗ B∗ R∗)∗

⇒ ( B BB∗ B∗ R∗)∗

⇒ ( B BB∗ B∗ B∗)∗

⇒ ( B RB∗ B∗ B∗)∗

⇒ ( B Ba∗ B∗ B∗)∗

⇒ ( b Ba∗ B∗ B∗)∗

⇒ ( b Ba∗ a∗ B∗)∗

⇒ ( b ba∗ a∗ B∗)∗

⇒ ( b ba∗ a∗ a∗)∗

Un ejemplo más pequeño

R ⇒ R + R ⇒ B + R ⇒ a + R ⇒ a + B⇒ a + bR ⇒ R + R ⇒ R + B ⇒ R + b ⇒ B + b ⇒ a + b

Derivaciones por la izquierda y por la derecha

Un ejemplo más largo

R ⇒ RR ⇒ RRR ⇒ RRRR ⇒ RRRRR ⇒ BRRRR⇒ BBRRR ⇒ BBBRR ⇒ BBBBR ⇒ BBBBB

⇒ aBBBB ⇒ aaBBB ⇒ aaaBB ⇒ aaaaB ⇒ aaaaa R RRRRR⇒∗ BBBBB⇒∗ 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

Ejemplo: aaabbb

ɛ

a S b

a S b

a S b

S

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 sonregularesGramáticas Libres de ContextoDerivaciónÁrboles

[email protected] ivanvladimir.github.io ivanvladimir

¿Qué es un computadora? by is licensed under a.

Creado a partir de la obra en.

Ivan V. Meza RuizCreative Commons Reconocimiento 4.0 Internacional License

http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/intro.html