Lenguajes Regulares y Autómatas Finitos - Clase 9

Page 1

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 Q0Q 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 AFGR N=Q , T= , S=q0 f(q,w)=p

P

N1wN2  f(N1,w)=N2

qwp

f(q,w)F 

qw

q0F

q0

ALGORITMO GRAF Q=N{E} , =T , q0=S , F={E}

f

N1w

 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={ SA|D|F , AaA|bB , BaC|bE|aD , CaC| , DbA|bE , EbE| , FaG|bF| , GB|aG|bG}

AFND2  GR N={S, A} , T={a, b} P={ SaA , AaA|bA|b } AF-Lazy1  GR N={S, A, B, C} , T={a, b, c} P={ ScA|C , AaA|B| , BbB|b , CcacB|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 = 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 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  Q3Q1xQ2 , q30=[q10 , q20] , F3F1xF2

AF3 = AF1AF2 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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.