24
Teoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

  • Upload
    vannhan

  • View
    250

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Teoría de Autómatas y Lenguajes Formales

Propiedades de los lenguajes regulares

José M. Sempere

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

Page 2: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Propiedades de los lenguajes regulares

1. Algunos conceptos previos de las propiedades sobre lenguajes.

2. Propiedades de cierre.

3. Propiedades de decisión.

Bibliografía

• John Hopcroft, Jeffrey D. Ullman, Rajeev Motwani.

Introducción a la teoría de autómatas, lenguajes y computación

Addison Wesley, 2002.

• P. García, E. Segarra, T. Pérez, J.M. Sempere, J. Ruiz, M. Vázquez de Parga.

Apuntes sobre la Teoría de Autómatas y Lenguajes Formales. Editorial UPV.

Servicio de Publicaciones SPUPV-96.846. 1996.

Page 3: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Conceptos previos sobre las operaciones sobre lenguajes

Una operación sobre lenguajes es n-aria si toma n elementos como argumentos.

Operaciones 1-arias: Clausura (estrella), Reverso, Clausura positiva,

Homomorfismos, etc.

Operaciones 2-arias (binarias): Unión, Intersección, Producto, etc.

etc.

Una operación n-aria es de cierre para una clase de lenguajes L si el resultado de

aplicar la operación sobre n lenguajes cualesquiera de la clase L proporciona como

resultado un lenguaje de la clase L.

Una operación n-aria de cierre para una clase de lenguajes L es constructiva si

existe un algoritmo que toma como entrada n lenguajes de la clase L en una

representación predefinida y proporciona como salida el lenguaje resultado de

aplicar la operación a los lenguajes de entrada en la representación predefinida.

Nota: En los lenguajes regulares las posibles representaciones serían los autómatas

finitos (no) deterministas, las expresiones regulares o las gramáticas lineales por

la derecha (o por la izquierda)

Page 4: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Previo a las operaciones constructivas:

Cómo obtener un AFD completo equivalente a un AFD arbitrario:

(1) Añadir un nuevo estado no final (estado de absorción o sumidero)

(2) Añadir las transiciones que faltaban en el AFD arbitrario de partida

hacia el nuevo estado

(3) Añadir las transiciones con todos los símbolos del alfabeto desde el

estado sumidero hacia él mismo

Ejemplo

q p

r

a

b a

a

q p

r

a

b a

a

b

b

a,b

s

AFD arbitrario AFD completo equivalente

Page 5: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Previo a las operaciones constructivas:

Cómo obtener un AF con un único estado final equivalente a un AF arbitrario:

(1) Añadir un nuevo estado final

(2) Añadir transiciones vacías desde los antiguos estados finales al nuevo

estado final

(3) Convertir los antiguos estados finales en estados no finales

Ejemplo

q p

r

a

b a

a

q p

r

a

b a

a

s

AF arbitrario AF con un único estado final equivalente

Page 6: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Unión de lenguajes: }:{ 21

*

21 LxLxxLL

Teorema: La unión de dos lenguajes regulares arbitrarios es un lenguaje regular

Sean L1 = L(A1) y L2 = L(A2) siendo A1 y A2 dos AFDs completos (mejor si

con mínimos) con A1 = (Q1,,d1,q1,F1) y A2 = (Q2,,d2,q2,F2)

Definición de un AFD A tal que L(A) = L(A1) L(A2)

A = (Q1Q2, , d, [q1,q2], F1Q2 Q1 F2) donde d([q,p],a)=[ d1(q,a), d2(p,a)]

Ejemplo

qb

b

r

a

sa

a,b

t

b

[q,s]b

a

a

[q,t]

[r,s]

[r,t]

a

ab

b

a

b

Page 7: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Intersección de lenguajes: }:{ 21

*

21 LxLxxLL

Teorema: La intersección de dos lenguajes regulares arbitrarios es un lenguaje regular

Sean L1 = L(A1) y L2 = L(A2) siendo A1 y A2 dos AFDs (mejor si son mínimos

y sin sumideros) con A1 = (Q1,,d1,q1,F1) y A2 = (Q2,,d2,q2,F2)

Definición de un AFD A tal que L(A) = L(A1) L(A2)

A = (Q1Q2, , d, [q1,q2], F1 F2) donde d([q,p],a)=[ d1(q,a), d2(p,a)]

Ejemplo

qb

r

a

sa

a,b

t

b

[q,s]b

a

a

[q,t]

[r,s]

[r,t]

a

a

b

a

Page 8: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Concatenación de lenguajes: }:{ 21

*

21 LyLxxyLL

Teorema: La concatenación de dos lenguajes regulares arbitrarios es

un lenguaje regular

Sean L1 = L(A1) y L2 = L(A2) siendo A1 y A2 dos AFs (no necesariamente

deterministas) con A1 = (Q1,,d1,q1,F1) y A2 = (Q2,,d2,q2,F2)

Definición de un AF A tal que L(A) = L(A1)·L(A2)

A = (Q1Q2, , d, q1,F2) donde d(q,a)=d1(q,a) ( q Q1-F1) (a {}

d(q,a)=d1(q,a) ( q F1) (a )

d(q,)=d1(q,) {q2} ( q F1)

d(q,a)=d2(q,a) ( q Q2) (a {}

qb

r

a

sa

a,b

t

b

a qb

r

aa

sa

a,b

t

b

Ejemplo

Page 9: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Clausura (estrella) de lenguajes: 0

*

i

iLL

Teorema: La clausura de un lenguaje regular arbitrario es un lenguaje regular

Sea L1 = L(A1) siendo A1 un AF (no necesariamente determinista) con

A1 = (Q1,,d1,q1,F1)

Definición de un AF A tal que L(A) = (L(A1))*

A = (Q1{q0}, , d, q0,F1 {q0}) donde d(q,a)=d1(q,a) ( q Q1-F1) (a {}

d(q,a)=d1(q,a) ( q F1) (a )

d(q,)=d1(q,) {q0} ( q F1)

d(q0,)= {q1}

Ejemplo

qb

r

aa q

br

aa

q0

Page 10: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Reverso (inverso) de lenguajes: }:{ * LxxL rr

Teorema: El reverso de un lenguaje regular arbitrario es un lenguaje regular

Sea L1 = L(A1) siendo A1 un AF con un único estado final con A1 = (Q1,,d1,q1,{f})

Definición de un AF A tal que L(A) = (L(A1))r

A = (Q1, , dr, f,{q1} ) donde q dr(p,a) p d1(q,a) ( q,p Q1)( a {})

Ejemplo

qb

r

aab

s

qb

r

aab

s

Page 11: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Complementario de lenguajes: LLxxL ** }:{

Teorema: El complementario de un lenguaje regular arbitrario es un lenguaje

regular

Sea L1 = L(A1) siendo A1 un AFD completo con A1 = (Q1,,d1,q1,F1)

Definición de un AFD A tal que L(A) = *- L(A1)

A = (Q1, , d1,q1,Q1-F1)

Ejemplo

qb

r

aab

s

a,b

qb

r

aab

s

a,b

Page 12: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Diferencia de lenguajes: }:{ 21

*

21 LxLxxLL

Teorema: La diferencia entre dos lenguajes regulares arbitrarios es un

lenguaje regular

2121 LLLL

Dado que la diferencia entre dos lenguajes se puede definir como la intersección

entre el primero y el complementario del segundo, podemos construir una

representación para la operación basándonos en construcciones ya conocidas.

Diferencia simétrica de lenguajes: )()( 122121 LLLLLL

Teorema: La diferencia simétrica entre dos lenguajes regulares arbitrarios es un

lenguaje regular

Dado que la diferencia simétrica entre dos lenguajes se puede definir como la

unión de las diferencias entre cada uno de ellos con el otro, podemos construir

una representación para la operación basándonos en construcciones ya

conocidas.

Page 13: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Homomorfismos:

}:)({)(

*

:

1

*

1

1

*

LwwhLh

L

h

Teorema: Dado un homomorfismo arbitrario y un lenguaje regular arbitrario, el

homomorfismo sobre el lenguaje regular produce un lenguaje regular

Sea el lenguaje L definido sobre el alfabeto y denotado por la expresión regular r.

Tomemos un homomorfismo arbitrario h: *

Podemos definir una expresión regular rh de forma que rh denota h(L). Basta con

sustituir en r cada símbolo a por la cadena h(a) conservando la prioridad de los

operadores.

Ejemplo Sea h(a)=011 y h(b)=

r = a*bb*(a+ab) + b

rh = (011)*(011 + 011) + = (011)*011 + = (011)*

Page 14: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Homomorfismos inversos:

*

:

1

*

L

h

Teorema: Dado un homomorfismo arbitrario y un lenguaje regular arbitrario, el

homomorfismo inverso sobre el lenguaje regular produce un lenguaje

regular

Sea L1 = L(A1) siendo A1 un AFD con A1 = (Q1,,d1,q1,F1)

Definición de un AF A tal que L(A) = h-1(L(A1))

A = (Q1, , dh,q1,F1) donde dh(q,a) = d1(q,h(a)) ( q Q1)( a )

Ejemplo

q1

r

0

0

0

s

q

b

ra

a

b

s

})(:*{)( 11

1 LxhxLh

1

1

Sea h(a)=011 y h(b)=

a

b

Page 15: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Sustituciones:

1

)()(

*

)(:

1

1

*

Lx

xL

L

P

Teorema: Sea una sustitución arbitraria donde para cada símbolo del alfabeto el

resultado es un lenguaje regular y sea L un lenguaje regular arbitrario.

La sustitución sobre el lenguaje regular produce un lenguaje regular.

Sea el lenguaje L definido sobre el alfabeto y denotado por la expresión regular r.

Tomemos una sustitución arbitraria : * de forma que cada lenguaje (a) queda

denotado por una expresión regular ra. Podemos definir una expresión regular r de

forma que r denota (L). Basta con sustituir en r cada símbolo a por la expresión

regular ra conservando la prioridad de los operadores.

Ejemplo Sea ra=(011)* y rb=(10 +1)* +

r = a*b + b

rσ = ((011)*)* [(10 + 1)* + ] + (10 +1)* + = (011)* [(10 + 1)* + ] + (10 +1)* + =

= [(011)* + ] [(10 + 1)* + ] = [(011)*] [(10 + 1)* + ]

Page 16: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Algunas operaciones de cierre no constructivas

Teorema: El cociente por la derecha de un lenguaje regular L2 con un lenguaje

arbitrario L1 da siempre como resultado un lenguaje regular.

Teorema: El cociente por la izquierda de un lenguaje regular L2 con un lenguaje

arbitrario L1 da siempre como resultado un lenguaje regular.

}:{\ 12

*

122

1

1 LuLuvvLLLL

}:{/ 12

*

12

1

12 LuLvuvLLLL

Nota: Si L1 fuera regular entonces la propiedad sería constructiva en ambos casos

Page 17: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Aplicaciones de las operaciones de cierre:

Demostración de no regularidad

Para demostrar que un lenguaje arbitrario L no es regular basta con aplicar sobre

L propiedades de cierre para la clase de los lenguajes regulares y obtener como

resultado un lenguaje NO regular L’. De esta forma, si el lenguaje L fuera regular

no se habría obtenido uno no regular dado el cierre de las operaciones aplicadas.

Ejemplo Demuestre que el lenguaje L={wwr : w {a,b }* } no es regular

Tomemos la intersección L a*bba* = {anbban : n 0 } = L1. A continuación definimos

el homomorfismo h(0) = a, h(1) = a y h(2)=b. Aplicando el homomorfismo inverso sobre

L1 obtenemos h-1(L1) = { {0,1}n22{0,1}n : n 0 } = L2. Aplicamos la intersección

L2 0*221* = { 0n221n : n 0 } = L3. Definimos ahora el homomorfismo g(0) = a, g(1) = b

y g(2) = . Aplicando g sobre L3 obtenemos g(L3) = {anbn : n 0 } = L4.

Dado que el último lenguaje obtenido L4 no es regular, podemos concluir que L tampoco

lo es ya que, si lo fuera, el resultado de aplicar sobre L propiedades de cierre garantiza

que los lenguajes obtenidos serían regulares.

Page 18: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Aplicaciones de las operaciones de cierre:

Demostración de regularidad

Para demostrar que un lenguaje arbitrario L es regular basta con aplicar sobre

lenguaje regulares conocidos propiedades de cierre para la clase de los lenguajes

regulares y obtener como resultado el lenguaje L. De esta forma, si el lenguaje L

no fuera regular no se podría obtener a partir de lenguajes regulares y

operaciones de cierre.

Ejemplo Demuestre que el lenguaje L={wx : w,x {a,b }*, w,x tienen longitud

par} es regular

Tomemos el lenguaje regular denotado por la expresión regular aa. A continuación

definimos la sustitución σ(a) = ((a+b)(a+b))* que denota todas las cadenas de longitud

par sobre el alfabeto {a,b}. Si aplicamos la sustitución sobre la expresión regular

obtenemos σ(aa)=σ(a)σ(a) = L.

Dado que hemos obtenido L como el resultado de aplicar operaciones de cierre sobre

un lenguaje regular, podemos concluir que L también lo es.

Page 19: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Aplicaciones de las operaciones de cierre:

Cierre de nuevas operaciones

Para demostrar que una nueva operación P es de cierre para la clase de los

lenguajes regulares basta con definir P en función de una aplicación finita de

operaciones de cierre para la clase de los lenguajes regulares.

Ejemplo Se define la operación P sobre cadenas del alfabeto {a,b} de la siguiente

forma: “Si la cadena es de longitud par, P cambia los símbolos a por b. Si la

cadena es de longitud impar, P cambia los símbolos b por a”. La operación se

extiende a lenguajes de la forma habitual (P(L) = { P(w) : w L}). Demuestre que P

es una operación de cierre para la clase de los lenguajes regulares.

Definamos el homomorfismo h de forma que h(a) = b y h(b) = b.

Definamos el homomorfismo g de forma que g(a) = a y g(b) = a.

Podemos comprobar que P se puede definir como

P(L) = h(L ((a+b)(a+b))*) g(L ((a+b)(a+b))*(a+b))

Dado que hemos definido P a partir de un número finito de operaciones de cierre para

la clase de los lenguajes regulares (intersección, homomorfismos y unión), podemos

concluir que P es de cierre para la clase de los lenguajes regulares.

Page 20: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Propiedades de decisión

Diremos que una cuestión de decisión es decidible para una clase de lenguajes Lsi existe un algoritmo que la resuelve. En caso contrario diremos que la cuestión

es indecidible.

Algunas cuestiones de decisión relacionadas con los autómatas finitos

1. La cuestión de la vacuidad: ¿ L(A1) ?

2. La cuestión de la (in)finitud: ¿ card(L(A1)) = ?

3. La cuestión de la pertenencia: ¿ w L(A1) ?

4. La cuestión de la equivalencia: ¿ L(A1) = L(A2) ?

Consideraremos que A1 y A2 son dos autómatas finitos deterministas arbitrarios. En

caso de que no lo fueran, obtendríamos sus correspondientes AFDs equivalentes. A

continuación consideraremos que w es una cadena arbitraria y que card denota la

cardinalidad de un conjunto (en este caso un lenguaje).

Teorema: Las siguientes cuestiones son decidibles:

Page 21: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Un algoritmo de decisión para la cuestión de la vacuidad

La cuestión de la vacuidad: ¿ L(A1) ?

Entrada: A1, un autómata finito determinista.

Salida: SI o NO

Método:

(1) Eliminar de A1 los estados no alcanzables desde el estado

inicial.

(2) Si en el autómata resultante existen estados finales

output(SI)

sino

output(NO)

Page 22: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Un algoritmo de decisión para la cuestión de la (in)finitud

Entrada: A1, un autómata finito determinista.

Salida: SI o NO

Método:

(1) Eliminar de A1 los estados no alcanzables desde el estado

inicial.

(2) Minimizar el anterior AFD resultante.

(3) Eliminar del AFD mínimo el estado sumidero (si lo hubiera)

(4) Si en el AFD resultante existen ciclos o bucles*

output(SI)

sino

output(NO)

La cuestión de la (in)finitud: ¿ card(L(A1)) = ?

*El establecimiento de la existencia de bucles o ciclos se puede resolver

mediante algoritmos conocidos de la teoría de grafos aplicados sobre el

diagrama de transiciones del autómata

Page 23: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Un algoritmo de decisión para la cuestión de la pertenencia

Entrada: A1, un autómata finito determinista y w una cadena arbitraria.

Salida: SI o NO

Método:

(1) Comenzando desde el estado inicial aplicar las transiciones

existentes en el AFD de acuerdo con los símbolos de la cadena w.

(2) Si no se puede completar las transiciones (el AFD es incompleto)

output(NO)

sino

Si el último estado de llegada es final o de aceptación

output(SI)

sino

output(NO)

La cuestión de la pertenencia: ¿ w L(A1) ?

Page 24: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/~jsempere/temas/propreg.pdfTeoría de Autómatas y Lenguajes Formales Propiedades de los lenguajes regulares José M

Un algoritmo de decisión para la cuestión de la equivalencia

La cuestión de la equivalencia se puede reducir a la cuestión de la

vacuidad aplicando operaciones de cierre ya conocidas.

La cuestión de la equivalencia: ¿ L(A1) = L(A2) ?

])))()(())()([(()]()([ 212121 ALALALALALAL