Q - Universidad de Huelva

Anuncio
Tema 4. Autómatas Finitos





4.1. Autómatas finitos.


4.1.1. Introducción.
4.1.2. Máquinas secuenciales.





4.2.1.
4.2.2.
4.2.3.
4.2.4.
4.2.5.


4.3.1. Minimización por el conjunto cociente.
4.3.2. Minimización por tablas.





4.4.1.
4.4.2.
4.4.3.
4.4.4.
4.4.5.
4.2. Autómatas finitos deterministas (A.F.D.).
Introducción.
Definición AFD. Representación.
Extensión a palabras.
Lenguaje aceptado por un AFD.
Simulación algorítmica de un AFD
4.3. Minimización de Autómatas finitos.
4.4. Autómatas finitos no deterministas (A.F.N.D.).
Introducción.
Definición AFND. Representación.
Extensión a palabras.
Lenguaje aceptado por un AFND.
Simulación algorítmica de un AFND
4.5. Equivalencia entre A.F.D. y A.F.N.D.
TALF. Tema 4
nº 1
4.1.1. Autómatas Finitos. Introducción.
 Autómatas con salidas:
 Máquina de Moore. Salida asociada al estado.
 Máquina de Mealy. Salida asociada a la transición.
 Autómatas reconocedores de lenguajes regulares:
 Autómata Finito Determinista (AFD)
 Autómata Finito No Determinista (AFND)
 salidas:
TALF. Tema 4

reconoce , no reconoce cadenas de un lenguaje regular;

0o1
nº 2
4.1.2. Máquinas secuenciales.
 Dado en prácticas.
TALF. Tema 4
nº 3
4.2. Autómatas Finitos Deterministas. Introducción
 Un autómata finito es un conjunto de estados y un
control que se mueve de un estado a otro en respuesta
a entradas externas.
 Los autómatas finitos se pueden clasificar en función
del tipo de control como:

Deterministas, el autómata únicamente puede estar en
un estado en un momento determinado.

No Deterministas, el autómata puede estar en varios
estados simultáneamente.
 Ambos definen los mismos lenguajes (regulares), sin
embargo los No deterministas permiten describir más
eficientemente determinados problemas.
TALF. Tema 4
nº 4
4.2. Autómatas finitos deterministas (AFD). Introducción
 ¿Cómo procesa entradas un AFD?

La entrada a un AF es un conjunto de símbolos tomados del
alfabeto de entrada ∑, no hay límite en tamaño de la cadena.

Existe un “puntero” que en cada momento apunta a una
posición de la cadena de entrada.

El autómata está siempre en un estado de Q, inicialmente se
encuentra en el estado q0.
a a a b a b a c c ... b
q0
TALF. Tema 4
nº 5
4.2. Autómatas finitos deterministas (AFD). Introducción
 ¿Cómo procesa entradas un AFD?
En cada paso el autómata lee un símbolo de la entrada y
según el estado en el que se encuentre, cambia de
estado y pasa a leer otro símbolo.

a a a b a b a c c ... b
qq03
2i


TALF. Tema 4
Así sucesivamente hasta que se terminen de leer todos
los símbolos de la cadena de entrada.
Si en ese momento el AF está en un estado qi de F, se
dice que acepta la cadena, en caso contrario la rechaza.
nº 6
4.2.2. Autómatas finitos deterministas(AFD). Definición.
 Un autómata finito es una quíntupla M=(Q,∑,f,q0,F) :
 Q es un conjunto finito llamado conjunto de estados.
 ∑ es un conjunto finito de símbolos, llamado alfabeto
de entrada.
 f es una aplicación llamada función de transición
f: Q  ∑ Q
 q0 es un elemento de Q, llamado estado inicial.
 F es un subconjunto de Q, llamado conjunto de estados
finales.
TALF. Tema 4
nº 7
4.2.2. Representación AFD.
 Tablas de transición.
 Es una representación clásica de una función con dos
argumentos.
 En las filas se colocarán los estados y en las columnas los
símbolos del alfabeto de entrada.
 Cada intersección fila (estado q) - columna (carácter a)
corresponde al estado f(q,a).
 El estado inicial se representa con 
 Los estados finales con un *
Ejemplo:
TALF. Tema 4
0
1
q2
q0
1
q1
q1
q2
q2
q1
q0
*q
nº 8
4.2.2. Representación AFD.
 Diagramas de transición.
 Es un grafo en el que los vértices representan los distintos
estados y los arcos las transiciones entre los estados.
 Cada arco va etiquetado con el símbolo que corresponde a dicha
transición.
 El estado inicial se representa con 
 Los estados finales con un con doble círculo.
1
 q0
TALF. Tema 4
0
0
0, 1
1
q2
q1
nº 9
4.2.2. Representación AFD.
 Determinismo porque:


No existen transiciones λ

 qQ , a∑  una única f(q,a) :

una sóla arista etiquetada con a para cada símbolo;

Para cada entrada en la tabla un solo estado
La indeterminación en el caso que falten transiciones para algunas
entradas se resuelve incluyendo un nuevo estado, llamado de absorción
o muerto, al cual llegan todas las transiciones no definidas.
Ejemplo:

q0
*q
1
q2
TALF. Tema 4
0
1
q1
q2
-
-
q1
-
1
 q0
q2
0
0
q1
0
1
q0
q1
q2
*q
1
M
M
q2
q1
M
M
M
M
1
0, 1
1
M
0, 1
nº 10
4.2.3. AFD. Extensión de f a palabras.

Si M=(Q,∑,f,q0,F) es un AFD se define la función de
transición asociada a palabras como la función
f´: Q  ∑*  Q
dada por:
 f´(q,λ)=q
 f´(q,a)=f(q,a)
 f´(q,ax)=f´(f(q,a),x)
donde x∑* y a∑
TALF. Tema 4
nº 11
4.2.4. Lenguaje aceptado por un AFD.

Una cadena x∑* es aceptada por un autómata M=(Q,∑,f,q0,F)
si y solo si f’(q0,x)F. En otro caso la cadena es rechazada por
el autómata.

El lenguaje aceptado o reconocido por un autómata es el
conjunto de las palabras de ∑* que acepta:
L(M)={x∑* / f’(q0,x)F}
TALF. Tema 4
nº 12
4.2.5. Simulación algorítmica de un AFD



Entrada: cadena de entrada x que termina con un carácter fin de cadena o fin
de archivo (FDC).
Salida: La respuesta ACEPTADA si el autómata reconoce x NO ACEPTADA
en caso contrario
Método: aplicar f al estado al cual hay una transición desde el estado q a un
carácter de entrada c
Función reconocer()
q=q0
c= leer_carácter()
Mientras c != FDC
q=f(q,c)
c= leer_carácter()
fmientras
Si q  F entonces
Devolver(ACEPTADA)
Sino
Devolver(NO ACEPTADA)
fsi
TALF. Tema 4
nº 13
4.2.5. Simulación algorítmica de un AFD. Ejemplo.

Ejemplo:AFD que reconozca el nombre de variables empezando
por letra y seguida de letras o dígitos.
q1
letra
 q0
letra|digito
letra|digito
letra
digito
q0
q1
q2
*q
1
q1
q1
q2
q2
q2
digito
q2
TALF. Tema 4
nº 14
4.2.5. Simulación algorítmica de un AFD. Ejemplo.
Función reconocer_id()
//Por el diagrama
estado=0
s= leer_simbolo()
Mientras s != FDC
Caso estado sea
0: Si s=letra entonces estado=1
sino
Si s=digito entonces estado=2
sino
Error()
//salir a la rutina de error léxico
fsi
fsi
1: Si s=letra or digito entonces estado=1
sino
Error()
//salir a la rutina de error léxico
fsi
2: Si s=letra or digito entonces estado=2
sino
Error()
//salir a la rutina de error léxico
fsi
fcaso
s= leer_simbolo()
fmientras
Si estado=1 entonces
Devolver(SI)
Sino
Devolver(NO)
fsi
TALF. Tema 4
nº 15
4.2.5. Simulación algorítmica de un AFD. Ejemplo.
Función reconocer_id() //por la tabla
estado=0
s= leer_simbolo()
Mientras s != FDC
Caso s sea
letra: entrada=letra
digito: entrada=digito
otro: Error() //salir a la rutina de error léxico
fcaso
estado= f(estado,entrada)
s= leer_simbolo()
fmientras
Si estado=1 entonces
Devolver(SI)
Sino
Devolver(NO)
fsi
TALF. Tema 4
nº 16
4.3.1. Minimización de Autómatas finitos por el conjunto cociente.
 Algoritmo para construir el conjunto cociente Q/En
1. Q/E1 = {c1 =qiF, c2 =qjQ-F}
2. Sea Q/Ei={c1, c2, ..., cj}. Q/Ei+1 se construye:
 p y q están en la misma clase si y solo si p,qck y a
se verifica que f (p,a) y f (q,a) están en la misma clase cm
de Q/Ei
3. Si Q/Ei=Q/Ei+1 entonces Q/Ei=Q/E , en caso contrario
aplicar el paso 2. partiendo de Q/Ei+1
TALF. Tema 4
nº 17
4.3.1. Minimización de Autómatas finitos por el conjunto cociente.
 Dado el AFD M=(Q,∑,f,q0,F)
existe un único AFD equivalente mínimo
(Autómata del conjunto cociente)
Mm=(Qm, , fm, q0m, Fm )
 Donde
Qm=Q/E
a, fm(ci,a)=cj si pcj, qci /f(q,a)=p
q0m=c0 si q0c0 y c0 Qm
Fm= {ci / pci y pF}
TALF. Tema 4
nº 18
4.3.1. Minimización de AFD por el conjunto cociente. Ejemplo
 Ejemplo: M=( {0,1},{q0,q1,q2,q3,q4}, f, q0,{q4})
0
f
0
1
q0
q1
q2
q1
q1
q3
q2
q1
q2
q3
q1
q4
*q4
q1
q2
TALF. Tema 4
q1
0
q0
0
1
1
0
0
1
q2
q3
1
q4
1
nº 19
4.3.1. Minimización de AFD por el conjunto cociente. Ejemplo
 Conjunto cociente
1. Conjunto inicial Q/E1=({q0,q1, q2,q3},{q4})
2. Q/Ei
2.1. Q/E2=({q0,q1,q2},{q3}, {q4})
3. Q/E2 Q/E1
paso 2
2.2. Q/E3=({q0,q2},{q1},{q3},{q4})
4. Q/E3 Q/E2
paso 2
f
0
1
q0
q1
q2
q1
q1
q3
q2
q1
q2
q3
q1
q4
*q4
q1
q2
2.3. Q/E4=({q0,q2},{q1},{q3},{q4})
5. Q/E4= Q/E3 = Q/E
TALF. Tema 4
nº 20
4.3.1. Minimización de AFD por el conjunto cociente. Ejemplo

Autómata mínimo equivalente: Mm=({0,1},{c0,c1,c2,c3},fm,qom)
Qm=(c0={q0,q2}, c1={q1}, c2={q3}, c3={q4})
f
0
1
q0 q1
q2
q1
q1
q3
q2
q1
q2
q3
q1
q4
*q4
q1
q2
fm
0
1
c0
c1
c0
c1
c1
c2
c2
c1
c3
*c3
c1
c0
1
c0
1
c3
0
0
1
c2
TALF. Tema 4
0
1
c1
nº 21
0
4.3.1. Minimización de Autómatas finitos por tablas.
 Dado en prácticas.
TALF. Tema 4
nº 22
4.4.1. Autómatas Finitos No Deterministas. Introducción

Un autómata finito es no determinista si:

No  f(q,a) para algún a∑ desde algún q Q
a

q2
b
 mas de una f(q,a) desde q Q con a∑
a

a
q1
∑={a,b}
q0
a

∑={a,b}
q0
b

a
q1
q2
b
 f(q,λ)
λ

q0
b
TALF. Tema 4
q1
q2
a
∑={a,b}
b
nº 23
4.4.2. Definición AFND.

Un autómata finito no determinista (AFND) es un modelo
matemático definido por la quíntupla M=(Q, ∑,f, q0, F) en el que:

Q es un conjunto finito llamado conjunto de estados.

∑ es un conjunto finito de símbolos, llamado alfabeto de
entrada.
f es una aplicación llamada función de transición definida como:

f: Q  (∑ λ)  P(Q)
donde P(Q) es el conjunto de las partes de Q, es decir, conjunto de
todos los subconjuntos que se pueden formar con elementos de Q

q0 es un elemento o estado de Q, llamado estado inicial.

F es un subconjunto de Q, llamado conjunto de estados finales.
TALF. Tema 4
nº 24
4.4.2. Representación.

Tablas de transición.
0
1
2
λ
q0
{q0,q1}
{q0}


q1
{q1}

{q1,q2}
{q0,q2}
*q

{q2}
{q2}

2

Diagramas de transición.
0,1
 q0
0,2
0
1,2
λ,2
q1
q2
λ
TALF. Tema 4
nº 25
4.4.3. función de transición. Extensión a palabras.

Definición λ-clausura:
 Se llama λ-clausura de un estado al conjunto de estados a los que
puede evolucionar sin consumir ninguna entrada, lo denotaremos
como CL(q) o λ-clausura(q).
 CL(q) se define recursivamente:
 El estado q pertenece a la λ-clausura de q, qCL(q).
 Si el estado pCL(q) y hay una transición del estado p al estado r
etiquetada con una transición nula (λ), entonces r también está en
CL(q).

Si PQ se llama λ-clausura de un conjunto de estados P a:
CL(P)=


qP
CL(q)
Algoritmo para el cálculo de λ-clausura(P)
Procedimiento λ-clausura(P)
Viejos=
Nuevos=P
Mientras viejosnuevos hacer
Nuevos=viejos  {q / f(pi,λ)=q, piviejos}
Fmientras
λ-clausura(P)=nuevos
Fin_procedimiento
TALF. Tema 4
nº 26
4.4.3. función de transición. Extensión a palabras.

Si M=(Q,∑,f,q0,F) es un AFND se define la función de
transición asociada a palabras como la función
f’: Q  ∑*  P(Q) dada por:

f’(q0,λ)=CL(q0)

f’(P,λ)=P

f’(P,ax)= f’( CL( f(q,a)),x)
qP
donde PQ, x∑* y a∑
TALF. Tema 4
nº 27
4.4.4. Lenguaje aceptado por un AFND.

Una cadena x∑* es aceptada por un AFND M=(Q,∑,f,q0,F)
si y solo si
f’(q0,x)  F
En otro caso se dice que la cadena es rechazada por el
autómata.

Dado un AFND M=(Q,∑,f,q0,F) se llama lenguaje aceptado o
reconocido por dicho autómata al conjunto de las palabras
de ∑* que acepta,
L(M)={x∑* / f’(q0,x)F}
TALF. Tema 4
nº 28
4.4.5. Simulación algorítmica de un AFND



Entrada: cadena de entrada x que termina con un carácter fin de cadena o fin
de archivo (FDC).
Salida: La respuesta ACEPTADA si el autómata reconoce x NO ACEPTADA en
caso contrario
Método: aplicar f al estado al cual hay una transición desde el estado q a un
carácter de entrada c
Función reconocer()
A=CL(q0)
c= leer_carácter()
Mientras c != FDC
A=CL ( f(q,c))
qP
c= leer_carácter()
fmientras
Si A  F entonces
Devolver(ACEPTADA)
Sino
Devolver(NO ACEPTADA)
fsi
TALF. Tema 4
nº 29
4.5. Equivalencia entre AFND y AFD

A partir de un AFND con estados q0,…qm , construiremos un AFD
equivalente (que acepta el mismo lenguaje) con estados Q0,…Qn donde
q0, Q0, son los estados iniciales.

Premisas:


Se definió inductivamente el conjunto de estados C = λ-clausura(s):

s  C.

si t  C y  una transición vacía de t a u entonces u  C.
Se define el conjunto de estados G = f(s , a) :


si  una transición etiquetada con a entre s y t entonces t  G.
Estas definiciones se generalizan para conjuntos de estados
S = { ... ti ... } :

Si u  λ-clausura(ti) entonces u  λ-clausura(S)

Si u  f(ti , a) entonces u  f(S , a).
(f(G,a) son los estados s alcanzables con a desde algún qG)
TALF. Tema 4
nº 30
4.5. Equivalencia entre AFND y AFD

Algoritmo de construcción de la tabla de transiciones del AFD:
1.
se crea una nueva tabla T[estado,símbolo], inicialmente vacía.
2.
se calcula Q0 = λ-clausura(q0)
3.
se crea una entrada en T para Q0.
4.
para cada casilla vacía T[Q,a] :
1. se asigna T[Q,a] = λ-clausura(f(Q,a))
2. si no existe una entrada en T para el estado T[Q,a], se crea
la entrada.
5.
se repite 4 mientras existan casillas vacías.
TALF. Tema 4
nº 31
4.5. Equivalencia entre AFND y AFD. Ejemplo.
 Ejemplo:
b
a,b
1
λ
a
TALF. Tema 4
λ
0
1
1
2
1
2
1
3
2
0
4

3
4
1

*4
4
4

a
a
λ
b
3
b
0
a
a, b
2
4
b
nº 32
4.5. Equivalencia entre AFND y AFD. Ejemplo.
1.
2.
3.
se crea una nueva tabla T[estado,símbolo], inicialmente vacía.
se calcula Q0 = λ-clausura(0) = {0,2}
se crea una entrada en T para Q0.
a
b
Q0
4.
para cada casilla vacía T[Q,a] :
1. se asigna T[Q,a] = λ-clausura(f(Q,a))
λ-clausura(f(Q0={0,2},a))=λ-clausura(0,1)={0,1,2,3}=Q1
2. si no existe una entrada en T para el estado T[Q,a], se crea
la entrada.
a
Q0
a
b
λ
0
1
1
2
1
2
1
3
2
0
4

3
4
1

*4
4
4

b
Q1
Q1
5.
se repite 4 mientras existan casillas vacías.
TALF. Tema 4
nº 33
4.5. Equivalencia entre AFND y AFD. Ejemplo
5.
6.
λ-clausura(f(Q0={0,2},b))=λ-clausura(1,4)={1,3,4}=Q2
λ-clausura (f(Q1= {0,1,2,3} , a)) =
a
b
λ-clausura(0,1,2,4)={0,1,2,3,4}=Q3
Q
Q
Q
Q
λ-clausura(f(Q1={0,1,2,3},b))=
Q
λ-clausura(1,4)={1,3,4}=Q2
λ-clausura(f(Q2={1,3,4},a))=λ-clausura(2,4)={2,4}=Q4
λ-clausura(f(Q2={1,3,4},b))=λ-clausura(1,4)={1,3,4}=Q2
λ-clausura(f(Q3={0,1,2,3,4},a))=λclausura(0,1,2,4)={0,1,2,3,4}=Q3
λ-clausura(f(Q3={0,1,2,3,4},b))=λ-clausura(1,4)={1,3,4}=Q2
λ-clausura(f(Q4={2,4},a))=λ-clausura(0,4)={0,2,4}=Q5
λ-clausura(f(Q4={2,4},b))=λ-clausura(4)={4}=Q6
λ-clausura(f(Q5={0,2,4},a))=λ-clausura(0,2,4)={0,2,4}=Q5
λ-clausura(f(Q5={0,2,4},b))=λ-clausura(1,4)={1,3,4}=Q2
λ-clausura(f(Q6={4},a))=λ-clausura(4)={4}=Q6
λ-clausura(f(Q6={4},b))=λ-clausura(4)={4}=Q6
0
7.
1
2
1
2
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
TALF. Tema 4
nº 34
4.5. Equivalencia entre AFND y AFD. Ejemplo
 El AFD equivalente es:
a
TALF. Tema 4
b
Q0
Q1
Q2
Q1
Q3
Q2
*Q2
Q4
Q2
*Q3
Q3
Q2
*Q4
Q5
Q6
*Q5
Q5
Q2
*Q6
Q6
Q6
nº 35
Descargar