U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EQUIVALENCIA DE DOS AFD: Dados los AFD A1 y A2 se dice que son equivalentes si y solo si los lenguajes que aceptan son iguales: A1 ≡ A2 ⇔ L(A1) = L(A2) MINIMIZACIÓN DE UN AFD: De todos los equivalentes de un AFD A, el AFD MÍNIMO correspondiente a A es aquel que tiene la menor cantidad de estados. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EXTENSIÓN DE LA FUNCIÓN DE TRANSICIÓN: Vamos a generalizar la función f de un AFD, para que sea capaz de transicionar con la lectura de una palabra perteneciente al universo del alfabeto de entrada, incluida la vacía. Llamaremos f’ a dicha función extendida y la definimos recursivamente de la siguiente forma: Función de Transición Extendida
f’(q, xw) = f’(f(q,x),w) f’(q, λ) = q con x∈Σ ∈Σ , w∈Σ ∈Σ* ∈Q ∈Σ y q∈ De tal modo que:
f’: QxΣ Σ* ⇒ Q ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EJEMPLOS DE TRANSICIONES: Recordemos el AFD4 visto anteriormente: En este caso tenemos las siguientes transiciones:
f’(2,ab)=f’(f(2,a),b)=f’(3,b) =f’(f(3,b),λ λ)=f’(6,λ λ)=6 f’(1,bba)=f’(f(1,b),ba)=f’(2,ba) =f’(f(2,b),a)=f’(2,a) =f’(f(2,a),λ λ)=f’(3,λ λ)=3
b 2
b 1
b,a
a a
a 4
a
a 3
b 6
b 5
b
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: REDEFINICIÓN DE LENGUAJE ACEPTADO POR UN AFD: En base al concepto de Función de Transición Extendida de un AFD, podemos decir que el lenguaje de todas las palabras aceptadas por el autómata es:
L(AFD) = {w / w∈Σ ∈Σ* ∈F} ∈Σ y f’(q0, w)∈ Es decir el conjunto de todas las palabras del universo del alfabeto de entrada que hagan transicionar al AFD desde su estado inicial a algún estado final. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EQUIVALENCIA ENTRE DOS ESTADOS DE UN AFD: Dos estados q1 y q2 ∈ Q de un AFD, se dicen equivalentes:
q1≡q2 si y solo si ∀ w∈Σ ∈Σ*, ∈F ⇔ f’(q2,w)∈ ∈F ∈Σ f’(q1,w)∈ Esto quiere decir que si las transiciones desde q1 con w llegan a un estado final, también deben llegar a algún estado final desde q2 con la misma w. Y si desde q1 con w no se llega a un estado final, tampoco desde q2 con w se debe llegar a un estado final. Se dice que q1 y q2 tienen el mismo “comportamiento” para todas las palabras w. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EJEMPLOS DE EQUIVALENCIA ENTRE ESTADOS DE UN AFD:
Dado el siguiente AFD, se puede verificar que: q0 , q1 y q2 son equivalentes q4 , q5 y q6 son equivalentes q3 y q4 no son equivalentes q1 y q5 no son equivalentes
AFD9
a
b
c
→ q0
q2
q4
q1
q1
q1
q6
q0
q2
q0
q5
q2
*q3
q1
q4
q5
*q4
q4
q6
q5
*q5
q4
q4
q6
*q6
q5
q5
q4
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EQUIVALENCIA ENTRE ESTADOS DE DOS AFD: Dos estados q1∈Q1 y q2∈Q2 de dos AFD distintos, pero con igual alfabeto de entrada, se dicen equivalentes:
q1≡q2 si y solo si ∀ w∈Σ ∈Σ*, ∈F1 ⇔ f2’(q2,w)∈ ∈F2 ∈Σ f1’(q1,w)∈ Esto quiere decir que si las transiciones desde q1 con w llegan a un estado final del primer AFD, también desde q2 deben llegar a algún estado final del segundo AFD con la misma w. Y si desde q1 con w no se llega a un estado final del primer AFD, tampoco desde q2 con w se debe llegar a un estado final del segundo AFD. Se dice que q1 y q2 tienen el mismo “comportamiento” para todas las palabras w. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EJEMPLOS DE EQUIVALENCIA ENTRE ESTADOS DE DOS AFD:
Dado los siguientes AFD, se puede verificar que: q0 , p0 son equivalentes q2 , p5 son equivalentes q3 y p4 no son equivalentes q4 y p1 no son equivalentes
AFD10
a
b
AFD11
a
b
→ q0
q1
q2
→ p0
p1
p5
q1
q1
q4
p1
p2
p4
*q2
q3
q1
p2
p3
p4
*q3
q2
q1
p3
p2
p4
q4
q2
q1
p4
p5
p3
*p5
p5
p1
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: REDEFINICIÓN DE EQUIVALENCIA ENTRE AFD: Partiendo de que los AFD A1 y A2 son equivalentes, podemos decir que: L(A1)=L(A2) De la definición de lenguaje aceptado por un AFD, tenemos: {w / w∈Σ ∈Σ* ∈F1 } = {w / w∈Σ ∈Σ* ∈ F2 } ∈Σ y f1’(q10, w)∈ ∈Σ y f2’(q20, w)∈ Es decir que todas las palabras w que producen una transición desde q10 a algún estado final de A1, también provocan una transición desde q20 a algún estado final de A2. Por lo tanto se puede afirmar que ambos estados iniciales son equivalentes. En conclusión:
A1≡A2 ⇔ q10≡q20 ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EQUIVALENCIA DE ORDEN N: Con el objetivo de definir un algoritmo para obtener los subconjuntos de estados equivalentes de un conjunto de estados dado, vamos a definir el concepto de Equivalencia de Orden N entre dos estados: De un mismo AFD:
q1 ≡N q2 si y solo si ∀ w∈Σ ∈Σ* ∈F ⇔ f’(q2,w)∈ ∈F ∈Σ ∧ |w| ≤ N, f’(q1,w)∈ De dos AFD distintos:
q1≡N q2 si y solo si ∀ w∈Σ ∈Σ* ∈F1 ⇔ f2’(q2,w)∈ ∈ F2 ∈Σ ∧ |w| ≤ N, f1’(q1,w)∈ Podemos decir que los estados N-equivalentes se comportan como “equivalentes” para todas las secuencias de longitud menor o igual que N. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EJEMPLOS DE EQUIVALENCIA DE ORDEN N: 1) Todos los estados finales son 0-equivalentes, es decir que se comportan como equivalentes para la palabra vacía. 2) También todos los estados no-finales son 0-equivalentes. 3) Si consideramos el AFD12 tenemos AFD12 a las siguientes N-equivalencias: 1 y 2 son 1-equivalentes →1 2 pero no son 2-equivalentes 2 3 2 y 3 son 1-equivalentes 3 2 y también son 2-equivalentes *4 3 5 y 6 son 2-equivalentes *5 5 y también son 3-equivalentes *6 6 4 y 5 no son 1-equivalentes
b 4 6 5 5 6 6
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: RELACIÓN ENTRE EQUIVALENCIA Y N-EQUIVALENCIA: Dado un AFD con K estados, podemos afirmar que dos estados son equivalentes si se verifica que son N-equivalentes para N=K-2. En el caso de dos AFD A1 y A2, con K1 y K2 estados respectivamente, podemos decir que un estado de A1 es equivalente a otro estado de A2 si se verifica que son N-equivalentes para N=K1+K2-2. Estas afirmaciones se pueden demostrar realizando divisiones sucesivas del conjunto de todos los estados en cuestión, separando los estados Nequivalentes, desde N=0 y mientras se pueda seguir dividiendo. Obviamente que el límite será la cantidad K de estados menos uno y por ende se podrá llegar a lo sumo hasta N=K-2. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: CLASES DE EQUIVALENCIA DE UN CONJUNTO DE ESTADOS: Dado un conjunto de estados de un AFD o la unión de los conjuntos de estados de dos o más AFD, se llama Clases de Equivalencia a los subconjuntos de estados equivalentes. También se hace extensible al concepto de N-equivalencia.
CONJUNTO COCIENTE DE UN CONJUNTO DE ESTADOS: Dado un conjunto de estados de un AFD o la unión de los conjuntos de estados de dos o más AFD, se llama Conjunto Cociente al conjunto de todas las Clases de Equivalencia del conjunto de estados en cuestión.
PARTICIÓN N DE UN CONJUNTO DE ESTADOS: Dado un conjunto de estados de un AFD o la unión de los conjuntos de estados de dos o más AFD, se llama Partición N al conjunto de todas las Clases de Nequivalencia del conjunto de estados en cuestión. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: ALGORITMO PARA OBTENER EL CONJUNTO COCIENTE: Entrada: AFD A=〈〈 Q, Σ, q0, F, f 〉
Salida: Conjunto Cociente QE
Obtener la partición de 0-equivalencia: P0={ F , ~F } Asignar i=-1 Repetir Asignar i=i+1 Para cada p,q∈ ∈Ck {Ck=Clases de Equivalencia de Pi o sea Ck ⊆Pi} Si p ≡i q ∧ ∀ x∈Σ ∈Σ , ( f(p,x)∈ ∈Ck ∧ f(q,x)∈ ∈Ck ) entonces p ≡i+1 q {o sea que siguen juntos en Pi+1} sino p ≡/i+1 q {o sea que se separan en Pi+1} Hasta que Pi+1=Pi Asignar QE=Pi ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: VERIFICACIÓN DE EQUIVALENCIA DE AFD: De acuerdo a la última definición de equivalencia entre AFD, podemos decir que el problema de verificar la equivalencia entre AFD se reduce a comprobar la equivalencia entre sus estados iniciales:
1) Obtener la “suma directa” A de los AFD en cuestión A1 y A2 completos y conexos, esto es tomar a ambos como si fueran un solo AFD. 2) Realizar el proceso de obtención del Conjunto Cociente de A. 2.1) Si en algún momento de este proceso los estados iniciales se separan, entonces se concluye que los mismos no son equivalentes y por ende los AFD no son equivalentes. 2.2) Si se llega hasta el final del proceso y se obtiene las Clases de Equivalencia, quiere decir que en alguna de esas clases están los los estados iniciales y concluimos que los AFD son equivalentes. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EJEMPLO DE VERIFICACIÓN DE EQUIVALENCIA: Dados los autómatas AFD10 y AFD11 vistos anteriormente, ambos están completos y son conexos. Obtengamos el conjunto cociente de la suma directa de ambos: C1
C2
P0 = { [q2 , q3 , p5] , [q0 , q1 , q4 , p0 , p1 , p2 , p3 , p4] } C1 C2
C1 C2
C1 C2
C2 C1
C1
C2 C2
C1 C2
C2 C2
C2 C1
C2
C2 C2
C2 C2
C1 C2
C4
C3
P1 = { [q2 , q3 , p5] , [q0 , p0] , [q1 , p1 , p2 , p3] , [q4 , p4] } C1 C3
P2 = P1
C1 C3
⇒
C1 C3
C3 C1
C3 C1
C3 C4
C3 C4
C3 C4
C3 C4
C1 C3
C1 C3
q0 ≡ p0 ⇒ AFD10 ≡ AFD11 ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: Sustituyamos a AFD10 por un AFD13 idéntico a excepción de: C1
q4
C2
a b q2 q4
P0 = { [q2 , q3 , p5] , [q0 , q1 , q4 , p0 , p1 , p2 , p3 , p4] } C1 C2
C1 C2
C1 C2
C2 C2
C2 C1
C1
C1 C2
C2 C2
C2 C1
C2
C2 C2
C2 C2
C1 C2
C3
C4
P1 = { [q2 , q3 , p5] , [q0 , p0] , [q1 , p1 , p2 , p3] , [q4 , p4] } C1 C3
C1 C3
C1 C3
C1
C3 C1
C3 C1
C3 C4
C2
C3 C4
C3 C4
C3 C4
C1 C3
C1 C4
C3
C4
C5
C1 C4
C1 C3
P2 = { [q2 , q3 , p5] , [q0 , p0] , [q1 , p1 , p2 , p3] , [q4] , [p4] } C1 C3
C1 C3
C1 C3
C1
C3 C1
C3 C1
C2
C3 C4
C3 C5
C3 C5
C3 C5
C5
C4
C3
q0 ≡/ p0 ⇒ AFD13 ≡/ AFD11
C6
P3 = { [q2 , q3 , p5] , [q0 , p0] , [q1] , [p1 , p2 , p3] , [q4] , [p4] } C1 C3
C1 C3
C1 C4
C3 C1
C4 C1
C3 C5
C4 C6
C4 C6
C4 C6
C1 C5
C1 C4
P4 = { [q2 , q3] , [p5] , [q0] , [p0] , [q1] , [p1 , p2 , p3] , [q4] , [p4] } ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: MINIMIZACIÓN DE UN AFD: Para obtener el Mínimo de un AFD A dado, se debe obtener el conjunto cociente del mismo y luego tomar como estados a las clases de equivalencias. Formalmente debemos seguir los siguientes pasos:
1) Encontrar el AFD completo y conexo de A = 〈 Q , Σ , q0 , F, f 〉 2) Construir el conjunto cociente QE correspondiente. 3) El AFD Mínimo AMIN = 〈 QMIN , Σ , qMIN0 , FMIN , fMIN 〉 queda definido de la siguiente forma: QMIN = QE qMIN0 = Ck tal que Ck∈QE ∧ q0∈Ck FMIN = {Ck / Ck∈QE ∧ Ck∩F ≠ Φ} fMIN(Cn , x) = Cm tal que f(q,x)=p con q∈ ∈Cn ∧ p∈ ∈Cm ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
EQUIVALENCIA Y MINIMIZACIÓN: EJEMPLO DE OBTENCIÓN DE AFD MÍNIMO: Consideremos el AFD9 y apliquemos el algoritmo de minimización: 1) Lo convertimos en conexo, eliminando el estado q3 y sus transiciones. 2) Obtenemos el Conjunto Cociente:
P0 = {
C1 [q4 , q5 C1 C1 C1
P1 = P0
C1 C1 C1
3) Planteamos el AFMín.
AFD MÍNIMO
a
b
c
→
C2 C2
C1
C2
*C1 C1
C1
C1
C2
, q6] , [q0 , q1 , q2] } C1 C1 C1
C2 C1 C2
C2 C1 C2
C2 C1 C2
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
PROPIEDADES DE LOS LENGUAJES REGULARES: Con el objetivo de responder a la pregunta ¿ es L un lenguaje regular ? podemos tener en cuenta: Las cláusulas de definición de un LR. Una de esas cláusulas decía que todo lenguaje finito es un LR. Todo LR tiene asociado un AF que lo acepta y una GR que lo genera. Siempre es posible obtener un AF al realizar las operaciones: Unión, Concatenación, Estrella de Kleene, Estrella positiva, Inversa, Complemento e Intersección; con Autómatas Finitos. Es decir que los LR son cerrados con respecto esas operaciones. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
PROPIEDADES DE LOS LENGUAJES REGULARES: El problema se presenta cuando tenemos un lenguaje infinito y no encontramos fácilmente una ER o GR o AF que lo describa. En este caso podemos recurrir a la siguiente propiedad que solo tienen los lenguajes regulares y cuyo enunciado se conoce como “Lema de bombeo” (Pumping Lemma):
Supongamos que L es un lenguaje regular, aceptado por un AFD con “n” estados. Entonces, si L contiene una palabra de largo mayor o igual que “n”, L es necesariamente infinito. Más aún: para toda w∈ ∈L, |w| ≥ n, existen x, y, z ∈ Σ* tales que w = xyz, |y| > 0 , |xy| ≤ n y, para todo i≥ ≥0 , xyiz ∈ L. Se dice que la subsecuencia “y” se puede “bombear” (borrar o repetir “i” veces) y la palabra “w” sigue perteneciendo a L. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
PROPIEDADES DE LOS LENGUAJES REGULARES: Este enunciado se justifica con el hecho de que en un AFD se deben realizar |w| transiciones para aceptar la secuencia “w”. Y esto implica que si |w| ≥ n, entonces necesariamente se debe transicionar por algún estado más de una vez. O sea que hay circuitos que comienzan y terminan en un mismo estado: AFD
qj+1 q1
qi
qj=qk
qk+1
qn
La secuencia “x” recorre desde q1 hasta qk , la cadena “y” recorre el circuito sobre qk y “z” termina el trayecto hasta el estado final qn. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
PROPIEDADES DE LOS LENGUAJES REGULARES: Veamos un par de ejemplos de aplicación del Lema de Bombeo: 1) ¿Es el lenguaje L = { ai / i=k2 , k=1,2,3,.... } un LR? Supongamos que L es regular y sea “n” la cantidad de estados del AFD que lo acepta. Obsérvese que ai con i=n2 pertenece a L y según el Lema de Bombeo debe existir una secuencia xyz, con |xyz|=n2, tal que 1≤ ≤ |y| ≤ n y las secuencias xyiz pertenecen a L para todo i ≥ 0, entonces se tiene que: n2 = |xyz| < |xy2z| ≤ n2+n < (n+1)2 o sea que la longitud de xy2z se encuentra, estrictamente, entre dos cuadrados perfectos y, por lo tanto, no es un cuadrado perfecto. Luego esta secuencia no pertenece a L y por ende L no es regular. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
PROPIEDADES DE LOS LENGUAJES REGULARES: 2) ¿Es el lenguaje L = { ak bk / k=1,2,3,.... } un LR? Supongamos que L es regular y sea “n” la cantidad de estados del AFD que lo reconoce. Por el Lema de Bombeo, si tomamos w=anbn, deben existir x, y, z ∈ {a, b}*, tales que w=xyz, |y| > 0 y xyiz ∈ L para todo i=0,1,2,3....; en particular, debe cumplirse que xy2z ∈ L. Pero: si “y” está formado solamente por “a”, xy2z tiene más “a” que “b”, por lo que xy2z ∉ L análogamente, si “y” está formado solamente por “b”, xy2z tiene más “b” que “a”, por lo que xy2z ∉ L finalmente, si “y” está formado por “a” y “b”, entonces y=ajbk con j,k > 0, por lo que xy2z = xajbkajbkz = anbkajbn, que no pertenece a L ya que tiene “b” que preceden a las “a”. ING. JORGE BUABUD