33
Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6.

Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Embed Size (px)

Citation preview

Page 1: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas finitos

Tomado de Sudkamp:

Languages and Machines

Cap. 6.

Page 2: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Q q0

q1

q2

Autómatas Finitos (determinísticos)

M=(,Q,,q0,F)

Alfabeto

Conjunto de estados

Estado inicial

Estados finales

Función de transición : Q Q

a b

q0q2

q1a

a

ab

b

b

q1

q2

q0

q2

q2

q1

Page 3: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Funcionamiento del autómata

q0q2

q1a

a

ab

b

b

M=(,Q,,q0,F)

* ,i iq q

* , * , ,i iq u q u

*(aab,q1)= (*(aa,q1),b)= ( (*(a,q1),a),b)= (( (*(,q1),a),a),b)=

(( (q1,a),a),b)= (( q1,a),b)= ( q1,b)= q2

0( ) : * ,L M q F

Palabras que contienen a ab

QQ ** :

[q1,aab][q1,ab][q1,b][q2,]

Page 4: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Ejemplos

Palabras que contienen exactamente 2 a’s

Palabras que contienen exactamente 3k b’s

Lenguaje representado por la expresión aa*b

q0

ab

a

q1

b

q3

ab

a

q2

b

q1

q0q2

q1

q2

q3

q0

Page 5: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas finitos no determinísticos q1

q0q2

q1

q0q2

q1

q2

q3

q0

q1

q2

q0

Page 6: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas finitos no determinísticos

Palabras que empiezan por ab y terminan con ba

q1

q2

q0

q4q3q5

q6a(ba b(ab)*ba)

Page 7: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas finitos no determinísticos

M=(,Q,,q0,F) )(: QQ

q1

q2

q0

q4q3

q0 q1 q2 q3 q4

a q1 q2 q4

b q2 q2,q3

Page 8: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas finitos no determinísticos

)(: ** QQ

)(: QQ M=(,Q,,q0,F)

)),(),((),( ** uqqwqqqwuqq kjikkij

qi qk qjw u

Page 9: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas FND

)(: ** QQ

)(: QQ M=(,Q,,q0,F)

))},((|{)( ** wqqFqwML o

Page 10: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Ejemplos AFND

Page 11: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Ejemplos AFND (6.4.6)

}0|{ iba ii

}0|{ niba ii {, ab, aabb, aaabbb}

?¿

Page 12: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Autómatas con transiciones -AFN

)(}){(: QQ M=(,Q,,q0,F)q21

a

bq20

b

q12

a,b

q10

a,b

b bq11

q12

a,b

q10

a,b

b bq11

q21

a,b

a

bq20

b

q0

)()()( 21 MLMLML

Page 13: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Clausura con -AFN

)()()( 21 MLMLML )()()( 21 MLMLML

Si M1 y M2 son -AFN existen -AFN tales que:

*1)()( MLML

M1

M2

M1

M2

Page 14: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Clausura con -AFN

)()()( 21 MLMLML )()()( 21 MLMLML

q11

Si M1 y M2 son -AFN existen -AFN tales que:

*1)()( MLML

M1

M2

M1M2

M1

Page 15: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Concluimos….

• Toda expresión regular tiene al menos un correspondiente -AFND que acepta exactamente las palabras correspondientes a la expresión.

Page 16: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Eliminando el indeterminismo

)( ii qClq

)(

)),()((

ik

jkij

qClq

qqqClq

)(: QQt

La clausura Lambda, para cada estado qi, se construye recursivamente así:

BASE:

Paso recursivo

La función de transición de entradas t para un

-AFND se define así:

)(

)),((),(ij qClq

ji aqClaqt

Page 17: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Ejemplo 6.6.1

ba

q2q0a

a

q1

c

q0 q1 q2

a q0,q1,q2

b q2

c q1 q2 t q0 q1 q2

a q0,q1,q2

b q2 q2

c q1,q2

Page 18: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Algoritmo 6.6.3Construction of DM, a DFA Equivalent to NFA- M

Input: an NFA- M=(Q,,,q0,F). input transition fuction t of M

1. initialize Q’ to -Cl(q0)

2. repeat

until done

2.1 if there is a node XQ’ and a symbol a with no arc leaving X labeled a then

Xq

i

i

aqtY

),(2.1.1 let

}{':' YQQ 'QY 2.1.2 if then set

2.1.3 add an arc from X to Y labeled a

else done:=true

3. The set of accepting states of DM is F’={XQ’| X contiene algún elemento de F}

Page 19: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Ejemplo

ba

q2q0a

a

q1

c

t q0 q1 q2

a q0,q1,q2

b q2 q2

c q1,q2

q0

q0,q1,q2

a

b,ca,b,c

a

q2

b

q1,q2

c

a,c

b

b

a

c

Page 20: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Grafos de expresiones

q1

q0q2 q0

q2

a*ba*b

q0

a*ba*ba*ba*

(a*ba*ba*ba*)*

Page 21: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Eliminar el estado intermedio i

i kjwji wik wik

j kwji

ijwji kwik

wii

(wii)*wikj k

wji

i debe ser diferente de j y de k pero puede ser j=k

Page 22: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Situaciones finales

wW*

w1 w3

w4

w2w1* w2(w3 w4w1*w2)*

Page 23: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Grafos de expresiones

q1

q0q2 q0

q2

ba*b

(a*ba*b)(a* ba*ba*b)*

Page 24: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Expresión de un AFND

(ab)*bb (ab)* (ab)*aa (ab)*

Page 25: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Gramática regular para un AFND

q1

q0q2

S → aS| bB| S → aS| bB| B → aB| bCB → aB| bC

C → aC| bSC → aC| bS

Page 26: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Gramática para un AFND (cont)

q1

q2

q0

q4q3q5

q6

S → aBS → aB

B → bC| bDB → bC| bD

C → aC| bC | bEC → aC| bC | bE

D → aFD → aF

E → aGE → aG

F → F → G → G →

S → aBS → aB

B → bC| bDB → bC| bD

C → aC| bC | bEC → aC| bC | bED → aD → a

E → aE → a

S → aBS → aB

B → bC| baB → bC| ba

C → aC| bC | baC → aC| bC | ba

Page 27: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

AFND para un gramática regular

• Palabras sobre {a,b,c} que contiene al menos una c pero no contienen cc.

S → aS| bS |cAS → aS| bS |cA

A → aS| bS| A → aS| bS|

q1q0

a,b

a,b

c

Page 28: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Lenguajes regulares

AFD

AFND

Expresiones Regulares

Gramáticas Regulares

No son LR:

: *R

: * R : * primo

: 0i ia b i

: , 0i j ia b a i j

Page 29: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Pre-Lema de bombeo

• Sea w1,w2,w3,w4,…. y v1,v2,v3,v4,… sucesiones infinitas de palabras.

• Si L es un lenguajes tal que wivj pertenece a L si y sólo sí i=j.

• Entonces L no es regular.

Si existiera un autómata finito de k estados existen i<j tal que *(q0,wi)=*(q0,wj) y por tanto wivi y wjvj son acptadas, contradicientdo las hipótesis.

Page 30: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Aplicación

• No son regulares:

0| iba ii

0|2 iba ii

0,| jicba iji

Page 31: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Lema de Bombeo

q1q0 qiqk

Un autómata de k estados si acepta una palabra de longitud mayor que k acepta infinitas palabras

Un autómata de k estados acepta infinitas palabras si y solo si acepta alguna tal que k< || < 2k

Si |z|>k existen u,v y w tales que

|uv|<k+1 |v|>0 y

uvnw para todo n está en L

Page 32: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Aplicación

• Las palabras cuya longitud es un cuadrado perfecto no forman un lenguaje regular.

Supóngase que un autómata de k estados acepta tal lenguaje, tómese entonces una palabra z con longitud k2 , entonces

z=uvw

con |uv|k o sea |v|k y además uv2w es aceptada por el autómata,

Pero |uv2w| no puede ser cuadrado perfecto pues:

|uv2w|= |uvw|+|v|=k2+|v| k2+k<(k+1)2

Entre k2 y (k+1)2 no hay ningún cuadrado perfecto !

Page 33: Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6

Propiedades de clausura

...lenguajes regulares, es un lenguaje regular

Intersección de dos

Unión de dos

Concatenación de dos

Complemento de

* de

Conjuntos finitos de palabras forman lenguajes regulares