U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: Son aquellos AF cuyas relaciones de transición pueden tener varias reacciones para un mismo estímulo. Podemos distinguir 3 modelos que tienen esta característica, los mismos difieren en el dominio de la relación de transición y son totalmente equivalentes: 1) AFND = Q, , Q0 , F, f con f: Q x 2Q donde Q0Q es un subconjunto de estados iniciales. 2) AF- = Q, , q0 , F, f con f: Q x {} 2Q donde la entrada puede ser vacía o sea transicionar sin leer. 3) AF-Lazy = Q, , q0 , F, f con f: Q x * 2Q donde la entrada puede ser una palabra cualquiera sobre . ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: EJEMPLOS DE AUTÓMATAS NO DETERMINISTAS: ER = c.a*.b*+(c.b)*.c.a.c.b* 1
a
c
4
c
2 5
c a
7
ER = c.a*.b*+(c.b)*.c.a.c.b*
b
AFND1
4
AF-1
b c
a
c
1
5
6
c
a,b
a
7
b
2
3
AFND2 ER = c.a*.b*+(c.b)*.c.a.c.b*
a c
6
a
1
3
2
c
ER = a.(a+b)*.b
3
b
b
b
1
AF-Lazy1
c
2
b 3
cac 4
cb
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: REPRESENTACIÓN MATRICIAL: En esta forma de representar la relación de transición, se debe tener en cuenta que un elemento del
AFND2
a
b
1
{2}
2
{2}
{2,3}
*3
AF-1
a
b
c
1
{2}
{5}
2
{2}
{3}
*3
{3}
4
{4}
AF-Lazy1
a
b
c
cb
cac
5
{4,6}
1
{2}
{4}
6
{7}
2
{2}
{3}
*3
{3}
4
{4} {3}
7 {3} rango es en general un subconjunto. Por eso se los coloca entre llaves y cuando es vacío se usa el símbolo . ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: EQUIVALENCIA ENTRE LOS 3 MODELOS: Como dijimos anteriormente, los tres modelos no deterministas son equivalentes y se puede pasar de uno a otro fácilmente. Podemos afirmar que el formato del AF-Lazy incluye al AF-. Por otro lado el AFND puede considerarse como un caso particular del AF-, donde los distintos estados iniciales que se permite, pueden confluir en uno solo mediante transiciones . De igual modo, cuando trabajamos con AF- se puede unificar los estados finales con transiciones . Las transiciones permiten en general disminuir la cantidad de transiciones del AF y las transiciones con “palabras” contribuyen a la reducción de la cantidad de estados del AF. ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: EJEMPLO DE EQUIVALENCIA ENTRE AFND Y AF- : a 1
b 4
AFND3 b a b a
6
b
a
a
2
b 7
a,b
b
b
1
a
b 5
AF-2
a 3
a
b
b
4
a 0
a
a
2
3
b
5
b
8
6
b
a
7
a,b
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: EJEMPLO DE EQUIVALENCIA ENTRE AFND Y AF-Lazy:
AFND4
AF-Lazy2
a 1
a 4
c
2
a
a
b
b a
6
a
c
5
c 7
b
c 3
b
0
caa
1
ca 4
3
cab, bb, cacb
c
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: ASOCIACIÓN ENTRE AF Y GR: Existe una analogía entre los AF = Q , , q0 , F, f descriptos hasta ahora, ya sean deterministas o no, con las GR = N , T , P, S .
ALGORITMO AFGR N=Q , T= , S=q0 f(q,w)=p
P
N1wN2 f(N1,w)=N2
qwp
f(q,w)F
qw
q0F
q0
ALGORITMO GRAF Q=N{E} , =T , q0=S , F={E}
f
N1w
f(N1,w)=E
S
f(S,)=E ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: EJEMPLOS DE TRANSFORMACIÓN DE AF A GR: Para mayor claridad se ha realizado algunos cambios en los nombres de los estados y se ha eliminado no-terminales inútiles: AF-2 GR N={S, A, B, C, D, E, F, G} T={a, b} P={ SA|D|F , AaA|bB , BaC|bE|aD , CaC| , DbA|bE , EbE| , FaG|bF| , GB|aG|bG}
AFND2 GR N={S, A} , T={a, b} P={ SaA , AaA|bA|b } AF-Lazy1 GR N={S, A, B, C} , T={a, b, c} P={ ScA|C , AaA|B| , BbB|b , CcacB|cbC|cac } ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
AUTÓMATAS FINITOS NO DETERMINISTAS: EJEMPLOS DE TRANSFORMACIÓN DE GR A AF: GR={S, A, B} , {a, b} , P , S P
ba
S abaB | bb | | A A baS | a B aaA |
aba
P
a aa
B
F
bb ,
GR={S, A, B, C} , {a, b} , P , S
S aB A bC | bA | b B aC | bB | a C aA
A
S
AF-Lazy3
F
a
AFND5
b b
S
a
B
b
a
C
a
A
b ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: UNIÓN: La Unión de dos AF, ya sean deterministas o no, en general da como resultado un AF-Lazy tal que reconoce la unión de los lenguajes que aceptan los autómatas operandos. El mecanismo consiste en crear un estado inicial nuevo y definir transiciones- desde éste hacia los estados iniciales de los AF de partida.
AF3
AF1 AF2
AF3 = AF1AF2
L(AF3)=L(AF1)L(AF2)
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE UNIÓN: ER = ((a+b+c).(a+b+c))*+ c.a*.b*+(c.b)*.c.a.c.b*
a
b
c
cb
cac
0
{1,5}
1
{2}
{4}
2
{2}
{3}
*3
{3}
4
AF-Lazy4
{4} {3}
AF-Lazy4
a 1
6
{7} {7} {7}
*7
{6} {6} {6}
2
3
cac 4
cb
0
AFD7
{6} {6} {6}
c
*5
b
AF-Lazy1
5
a, b, c a, b, c
6
a, b, c
7
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: CONCATENACIÓN: La Concatenación o Producto de dos AF, ya sean deterministas o no, en general da como resultado un AF-Lazy tal que reconoce el producto de los lenguajes que aceptan los autómatas operandos. El mecanismo consiste en colocar transiciones- desde todos los finales del primero al inicial del segundo. Estos estados pasan a ser comunes.
AF3
AF1
AF2
AF3 = AF1.AF2
,
L(AF3)=L(AF1).L(AF2) ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE CONCATENACIÓN: ER = ((a+b+c).(a+b+c))*.(a.b.a.a.a.b.a+b.a)*.(a.b.a.a.a.a+a.b.a+b.b+a+)
AFD7
ba
a, b, c 1
a, b, c
2
a, b, c
3
4
5
a
aa
aba
AF-Lazy3 AF-Lazy5
6
7
bb ,
AFLazy5
a
b
c
aa
ba
bb
aba
a
b
c
aa
ba
bb
aba
1
{2}
{2}
{2}
{4}
5
{7}
{4}
2
{3}
{3}
{3}
6
{5}
{7}
3
{2}
{2}
{2}
{4}
*7
4
{7}
{6}
{5,7}
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: ESTRELLA DE KLEENE: La operación Estrella de Kleene de un AF, ya sea determinista o no, en general da como resultado un AF-Lazy tal que reconoce la estrella de Kleene del lenguaje que acepta el autómata base. El mecanismo consiste en colocar transiciones- desde todos los finales al inicial y crear un nuevo inicial/final con una transición- al inicial viejo.
AF3
AF1
AF3 = AF1* L(AF3)=L(AF1)* ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE ESTRELLA DE KLEENE: a
b
0
{1}
1
{4}
{2}
*2
{3}
{2}
{1}
AF-3
3
{4}
{6}
4
{4}
{4}
*5
{4}
{3}
{1}
*6
{6}
{5}
{1}
AF-3
0
b 1
b,a
b 2
a a
a 4
a
a 3
b 6
b 5
b AFD4
ER = (b.b*.(a.b.(a+b.b.b)*.(a+b.b.b+b)+a.b+b)+b)* ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: ESTRELLA POSITIVA: La operación Estrella Positiva de un AF, ya sea determinista o no, en general da como resultado un AF-Lazy tal que reconoce la estrella positiva del lenguaje que acepta el autómata base. El mecanismo consiste en colocar transiciones- desde todos los finales al inicial.
AF3
AF1
AF3 = AF1+
L(AF3)=L(AF1)+
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE ESTRELLA POSITIVA: AFD2 a
b
b a
b 1
2
b,a
a
b
1
{1}
{2}
*2
{3}
{2}
{1}
*3
{4}
{3}
{1}
4
{4}
{4}
AF-4
3 a 4
AF-5
a, b, c
AFD7
AF-4
1
a, b, c
2
a, b, c
3
X = a*.b.b*. (a.b.b*+a+b) + a*.b
a
b
c
*1
{2}
{2}
{2}
2
{3}
{3}
{3}
*3
{2}
{2}
{2}
{1}
AF-5
ER = X.X*
ER = ((a+b+c).(a+b+c))* ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: INVERSA: La Inversa de un AF, ya sea determinista o no, en general da como resultado un AF-Lazy tal que reconoce la inversa del lenguaje que acepta el autómata base. El mecanismo consiste en invertir todas las transiciones del AF, luego crear un nuevo estado inicial con transiciones- hacia todos los estados finales, éstos pierden tal condición y el estado inicial viejo pasa a ser el único final.
AF3
AF1
AF3 = AF1-1
L(AF3)=L(AF1)-1
ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE INVERSA:
a
b
0
{2,5,6}
*1
2
{2,1}
3
{2}
{5}
4
{1,3, 4,5}
{4}
1
5
{6}
b,a
6
{6}
{3}
AF-6
AF-6
b b
a
2
a
a 4
a
3
b
a
b b
6
0
5
AFD4
ER = (b+b.a+(a+b.b.b+b).(a+b.b.b)*.b.a).b.b*+b ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: COMPLEMENTO: Para obtener el Complemento de un AF, o sea el AF que reconozca el complemento del lenguaje que acepta el autómata base, se requiere que el modelo sea DETERMINISTA y completo. El mecanismo consiste en convertir en finales los estados no-finales y viceversa.
AF1 = Q1 , , q10 , F1 , f1 AF3 = Q3 , , q30 , F3 , f3
AF3 = AF1
Q3=Q1 , q30=q10 , f3=f1
L(AF3)= L(AF1)
F3=Q1-F1 ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE COMPLEMENTO: AFD14
a
b
*1
4
2
2
3
2
*3
4
6
*4
4
4
5
4
3
6
6
5
AFD14
b 2
b 1
a
a 4
b,a
a
3
a b 6
b
a
5
b AFD4
ER = b.b*.(a.(b.b.b)*.((a+b.a*.b.a).(a+b).(a+b)*+b.a.a+b.b.b+a)+a)+a.(a+b)*+ ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: INTERSECCIÓN: Para obtener la Intersección de dos AF, o sea el AF que reconozca la intersección de los lenguajes que aceptan los autómatas operandos, se requiere que los modelos sean DETERMINISTAS y completos. El mecanismo se representa formalmente a continuación:
AF1 = Q1 , , q10 , F1 , f1 AF2 = Q2 , , q20 , F2 , f2 AF3 = Q3 , , q30 , F3 , f3 Q3Q1xQ2 , q30=[q10 , q20] , F3F1xF2
AF3 = AF1AF2 L(AF3)=L(AF1)L(AF2)
f3([q1,q2],x)=[f1(q1,x) , f2(q2,x)] ING. JORGE BUABUD
U.T.N. – F.R.T. S. y S. de los L.
LENGUAJES REGULARES Y AUTÓMATAS FINITOS
OPERACIONES CON AUTÓMATAS FINITOS: EJEMPLO DE INTERSECCIÓN: Aplicando el mecanismo de minimización se determina que los nuevos estados 5 y 6 son equivalentes. Con lo que el AFD15 mínimo queda:
a, b, c 1
a, b, c
2
a, b, c
3
AFD7 a, b 4
AFD5
a, b, c
5
a c
6
a, b, c
7
AFD15
3
AFD15
a
b
c
0={1,4}
1
1
1
1={2,5}
3
3
2
*2={3,6}
4
5
5
3={3,5}
1
1
4
4={2,6}
2
6
6
5={2,7}
6
6
6
6={3,7}
5
5
5
c
0
a, b, c
b, c
a
a, b
b, c
4
1
c
5 2
a, b, c
b, c
ER = (a+b+c).((a+b).(a+b))*.(a.c.a+b.c.a+c).(a.a)* ING. JORGE BUABUD