Page 1

AUTOMATAS DE ESTADOS FINITOS 1. Maquina de Estado Finito. (MEF)

Definición: Una máquina de estado finito es un modelo abstracto de una máquina con memoria interna primitiva. Dicha maquina se denota mediante una colección de tres elementos(terna) de la forma: M = (S, I, F) donde: S: Es el conjunto de estados de la maquina. I: es el conjunto de entradas de la máquina. F = { ƒx | x Є I}, es la función de transición de estados, es decir; para cualquier entrada x Є I, la función ƒx describe el efecto que tiene esta entrada sobre los estados de la máquina y es la función de transición de estados. Así si la máquina se encuentra en el estado si y ocurre la entrada x, el siguiente estado de la máquina será ƒx(si). Ejemplo: Sea MEF, dada por M = (S, I, F) donde: S=( s0; s1, s2 ) ; I=(x, y) ; la función F = { ƒx | x Є I} dada por la siguiente tabla: x

y

s0

s0

s1

s1

s2

s0

s2

s1

s2

Cabe señalar que en la tabla anterior, las símbolos de entrada x, y se combinan con los estados s0, s1, s2, para generar la función ƒx, como se muestra a continuación: ƒa(s0) = s0,

ƒa(s1) = s2, ƒa(s2) = s1,

ƒb(s0) = s1,

ƒb(s1) = s0,

ƒb(s2) = s

2. Máquinas Secuenciales.

Definición: Las Máquinas secuenciales representan un tipo de autómatas que es capaz de generar una palabra de salida, para una palabra de entrada dada. Para lo cual se debe definir un conjunto de estados, que almacenan(memorizan) la


parte de la palabra de entrada en cada momento generando, al mismo tiempo una palabra de salida asociada mientras transitan entre los estados.

A

continuación se presentan dos tipos particulares de maquinas secuenciales: Maquina Finita de Mealy. Maquina Finita de Moore.

Máquina finita de Mealy.

Definición: Es un modelo matemático representado mediante una quíntupla definida como: ME = ( E, s, Q, f,g) Donde E es el alfabeto de símbolos de entrada s es el alfabeto de símbolos de salida Q es el conjunto finito no vacío de estados f es la función de transición definida como: f: Q x E

Q

g es la función de salida, definida como: g: Q x

E

s

Ejemplo: Dada la siguiente maquina secuencial, que genera como salida una p en el instante t si hasta ese instante de tiempo ha recibido en la entrada un numero par de unos (considerando la entrada que no contiene ningún 1 como numero par de unos), y genera una i en la salida si hasta ese instante ha recibido un numero impar de unos en la entrada. M1 = ({0,1}, {p,i}, {q0, q1}, f,g) Donde: f(ME) esta dada por:

g(ME) dada por:

f(q0, 0) = q0

g(q0, 0) =p

f(q0, 1) = q1

g(q0, 1) =i

f(q1, 0) = q1

g(q1, 0) =i

f(q1, 1) = q0

g(q1, 1) =p

El comportamiento de las Maquinas Secuénciales es el siguiente: la maquina dispone de un conjunto de estados que modelizan los diferentes momentos en los que puede estar a la


hora de resolver un problema. En este caso, hay dos estados, q0 que simboliza el estado en el que hasta ese instante, se han leído un número par de unos en la entrada, y q 1, que representa el hecho de que se han leído un número impar de unos en la entrada. La función f permite transitar de un estado a otro en cuanto lee un 1 en la entrada (porque hay cambio de par a impar o viceversa), y transita al mismo estado en el que se encuentre (no cambia de estado) si lee un 0, ya que no cambia la salida (de par a impar o viceversa). La función g genera la salida correspondiente a ese instante. En este caso, si esta en el estado q 0 y lee un 0 sigue habiendo leído un numero par de unos en la entrada con lo que generara una p en la salida. Esto es debido a que, si esta en el estado q0 es porque hasta el momento de leer el siguiente digito de la entrada, había leído un número par de unos y si ahora lee un 0, el número de unos leídos en la entrada no cambia y, por lo tanto, seguirá siendo par. Así se razona con el resto de las salidas que genera la función g Máquina de Moore: Definición: Es una definición alternativa de Máquina Secuencial en la que la función g sólo depende del estado en el que se esté. La definición viene dada por: MO = ( E, s, Q, f, g) Nota: La única diferencia con respecto a la definición de Mealy es que la función de salida g se define como: g: Q

s

Comentario: la diferencia fundamental entre estos

dos tipos de Máquinas

Secuenciales es que las máquinas de Mealy suponen velocidad de proceso infinita, ya que estas máquinas generan una salida inmediatamente después de recibir la entrada, y por el contrario las de Moore suponen una velocidad finita, ya que las respuestas sólo dependen del estado en el que se encuentra la máquina después de realizar cada transición. Ejemplo: Una maquina de Moore que realiza la misma labor que la M1 definida anteriormente, seria: M2 = ({0,1}, {p,i},{q0,qi},f,g) Donde f(q0,0) = q0 g(q0) = p f(q0,1) = q1


f(q1,0) = q1

g(q1) = i

f(q1,1) = q0 En el caso de las maquinas de Moore, generan en la salida el correspondiente símbolo del estado en el que estén después de realizar cada transición. Siempre que este en el estado q0 genera una p en la salida, y siempre que este en el estado q1 genera una i en la salida. Representación: Básicamente existen tres formas equivalentes de representar una maquina secuencial Tabla de Transición y Salida: Se Crea una matriz Bidimensional de Q X E

para representar la función f , tanto para la maquina de Mealy como

para la maquina de Moore, como se muestra a continuación:

E e 1 ..... e m Q q1

qi

...

qj

qk

...

ql

... qn

Función f En las filas se colocan los estados de Q, en las columnas alfabeto

E

los Símbolos del

, en la posición estado actual símbolo de entrada (q i ,e j ), se coloca el

resultado de f(q i , e j ).

En caso de la función de salida g, para la maquina de Mealy se construye una matriz bidimensional similar a la de la función f, diferenciándose en que para cada par estado, símbolo de estrada(q i ,e j ), se le asocia una salida “s” de g(q i ,e j ). En el caso de la maquina de Moore las dependen exclusivamente del estado donde se este en un momento dado. A continuación se muestra las tablas de salida para las maquinas de Mealy y de Moore respectivamente:


E e 1 ..... e m

Q

Q q1

qi

...

S

q1

q j

S1

...

... qn

qk

...

qn Sk

ql

g(ME)

Diagrama

g(MO)

de Transición:. Son representaciones graficas de las maquinas

secuenciales, a continuación se presentan la forma de construcción asociada a los casos de maquinas secuenciales presentados. Maquina de Mealy:se crea un grafo dirigido en el que - Para cada estado q i

Q se crea un nodo, y

- Para cada transición f(q i ,e j )=q k

y g(q i ,e j )=S l , se crea un arco de

q i a q k etiquetado con e j / S l . 

Maquina de Moore: Se crea un grafo dirigido en el que - Para cada estado de q i

Q , si g(q i )=S j , se crea un nodo etiquetado

qi / S j , y - Para cada transición f(q i ,e j )=q k , se crea un arco de q i

a

qk

etiquetado con e j .

Generación de palabras de la entrada a la salida: Por medio de la extensión de las definiciones anteriores se puede tratar una secuencia de entrada para una cadena dada y generar la salida respectiva, en lugar de tratar uno a uno los símbolos de una cadena de entrada para generar uno a uno los símbolos de la salida asociada a esta. Extensión de Mealy:

La función de transición f

f : Q x * E -------- Q Además, f (q,.ax) = f(fq,a),x) para cada q f (q, ) = q para cada q

Q

Q, a

E

,x

*E

se redefine como:


donde

es la palabra vacío, para una palabra formada por varios símbolos, el estado al

que transita la Máquina Secuencial es el correspondiente a transitar con cada uno de los símbolos. La función de salida g, se redefine como: g: Q x

*E

*S

y, a las salidas anteriores, se le añaden las siguientes salidas correspondientes a palabras de longitud cero o mayor que uno: g(q, ax) = g(q,a) . g(f(q,a),x) para cada q g(q, ) =

para cada q

Q, a

E, x

*E

Q

La salida que se genera es la correspondiente a concatenar la salida producida con cada uno de los símbolos de la entrada y sus transiciones.

Extensión de Moore: Se define f y g de la misma forma que para las Máquinas de Mealy f: Q x * E

Q

g: Q

s

Pero se añade una nueva función de salida de palabra g‟ definida como: G‟: Q x

*E

*s

También se cumplen las siguientes igualdades: f (q, ax) = f(f(q ,a),x) ( q f (q, ) = q( q

Q, a

*E)

Q)

g‟(q, ax) = g(q) . g‟(f(q,a),x), ( q g‟(q, ) = ( q

E, x Q, a

E, x

*E)

Q)

Donde, a la hora de calcular la función de salida g‟, de una palabra se utiliza la función de salida g, de un único símbolo.

Función repuesta de una Máquina Secuencial: A partir de las funciones de salida y con el objetivo de unificar los dos tipos de Máquinas secuenciales, se define una función respuesta, h, de la siguiente forma:


g(q, x) si es de Mealy q

Q, x

* E , h(q, x) = g‟(q, x) si es de Moore

Dada esa nueva función, en cada Máquina Secuencial se cumplen los siguientes teoremas: q

Q, x

*E, |h (q, x)| = |x|

q

Q, x, y

*E, f (q, xy) = f (f (q,x),y)

q

Q, x, y

*, h(q,xy) = h(q,x). H(f (q, x),y)

3. Autómatas Finitos Deterministicos.(AFD) Autómata: Es una maquina o sistema que puede aceptar una entrada y posiblemente producir una salida, y que tendrá algún tipo de memoria interna que podrá registrar cierta información de las entradas previas. Definición de AFD: Un AFD, es una colección de cinco elementos(5-tupla) denotada por: M=(Q,

, s, F, ) donde:

-Q: Es una colección finita de estados.(Q= q 1 ,q 2 ,....,q n

)

- : Es un alfabeto de entrada. -s: Representa el estado inicial (s Q, s=q 0 ) -F: Es una colección de estados finales o de aceptación . - : Es una función de transición de la forma: : QX ---------- Q donde i,j

, se tiene que: i-

q i , a =q j , con a

(a, es un símbolo), significa que sea cual sea

el estado actual y el carácter de la entrada, siempre hay un estado siguiente asociado a este par y el mismo es único. ii-

Para toda cadena “W” y símbolo a de entrada se tiene que : q i , Wa =

W ,a .

Representación: Existen dos formas de representar un AFD.


0

Diagrama de Transición de Estado(DTE):Es

1

Q

una colección finita de círculos los cuales se

q 0 q 0 q1

pueden rotular(anotar, apuntar) con fines de referencia, conectados con flechas que reciben el

q1 q 0 q1

nombre de arcos.

Cada uno de estos arcos se

etiqueta con un simbo0lo o categoría de símbolo (ej. Letras o dígitos) que podrían estar presentes en la cadena que se analiza. Uno de los círculos es designado con un apuntador, y representa la posición inicial. Por lo menos unos de los círculos se representa como un circulo doble, estos círculos dobles designan posiciones del diagrama en las cuales se ha reconocido una cadena valida. -Tabla de Transición(TT): Es un arreglo bidimensional cuyos elementos proporcionan el resumen del diagrama de transición de estado. En las filas se colocan los estados de Q, en las columnas los símbolos del alfabeto posición (q i , a) se coloca

, y en la

(q i , a).

Cadena Valida o Aceptada: :Se dice que una cadena es aceptada por un DTE, si los símbolos que aparecen en la cadena (de izquierda a derecha), corresponden a una secuencia de arcos rotulados que conducen del estado inicial a un circulo doble. Ejemplo: Sea el AFD dado por: M=(Q,

, s, F, ) donde, Q= q 0 , q 1 ;

0, 1 ;

s=q 0 ; F= q 1 ; : dada por: -

q 0 ,0 =q 0 ;

q 0 ,1 =q 1 ;

q 1 ,0 =q 0 ;

q 1 ,1 =q 1

Obtenga la tabla de transición de estado y diagrama de transición de estado asociado al AFD dado.

-

Verifique la validez de las cadenas siguientes para el AFD dado. W 1 =01000; w 2 =01001

Solución: Tabla de transición asociada al AFD dado.


0

1

q 0 q 0 q1 q 0 q 0 q1 Diagrama de Transición de Estado asociado al AFD dado 0

1 1

q0

q1

0

Evaluando la cadena w 1 =01000, se tiene que: (q 0 , 01000)=

q 0 ,0),1),0),0),0)=q 0 ; La cadena no es aceptada

(q 0 , 010011)=

q 0 ,0),1),0),0),1)=q 1 ; La cadena es aceptada.

Definición: Si “M” es un AFD, entonces el lenguaje aceptado por M es: *

L(M)= W

/ W es aceptada por M .

Ejemplo: Sea el AFD, dado por : y

y x

q0

q1 x

El lenguaje aceptado por el AFD dado anteriormente es: L(M)= W

*

/ W=(Cadenas de cero o más y·es (“Y”) que contienen un numero par de

equis(X) ) . Nota: Es importante resaltar que L(M), esta formada por todas las cadenas aceptadas por “M” , y no que es un conjunto de cadenas que son todas aceptadas por “M”.


4: Autómata Finito no Deterministico.(AFND) Si se permite que desde un estado, se realicen mediante

cero, una o más transiciones

el mismo símbolo de entrada, se dice que el

autómata

es no

deterministico. El no determinismo consiste (intuitivamente) en agregar transiciones que antes estaban prohibidas: saltos con varios símbolos sobre la flecha, saltos vacíos y saltos a más de un estado con el mismo símbolo. Definición:

Un AFND, va a estar formado mediante una colección de cinco elementos,

denotados por: M=(Q,

, s, F, ) donde

Q: Conjunto finito de Estados Σ: Alfabeto de Entrada s: Representa el estado Inicial(s=q 0 ). F С Q: Colección o conjunto de Estados finitos o de aceptación Δi: Relación sobre Q x Σ x Q y se llama relación de transición

puesto que Δ es una relación para todo par (q,0) compuesto por el estado actual y el símbolo de la entrada. Δ(q,0), es una colección de ceros o más estados. es decir, Δ(q,0) Q . Esto significa que, para todfo estado q, se puede tener cero o mas alternativas a elegir como estado siguiente, todas para el mismo símbolo de entrada. Representación de un AFND: Al igual que los AFDS, los AFND, pueden ser representados por medio de la tabla de transición y por medio del diagrama de transición de estado. A continuación se describen cada una de estas dos formas. a)     

Tabla de transición. En las filas estarán los estados q Q El estado inicial se precederá del símbolo Cada estado final se precederá del símbolo * En las columnas estarán los símbolos a { } En la posición (q,a) estarán los estados en (q,a)

   

Diagrama de transición de estado. En los nodos estarán los estados El estado inicial tendrá un arco entrante no etiquetado Los estados finales estarán rodeados de doble circulo Habrá un arco etiquetado con a ( ) entre el nodo qi si qj

b)

(qi,a)


Ejemplo: Sea el AFND M dado por: Q= q 0 , q 1 , q 2 , q 3 , q 4

;

a, b ; s= q 0 ; F= q 2 , q 3 , q 4 ;

: dada por: a

b

q0

q 1 ,q 4

q3

q1

q1

q1

q2 q3 q4

q4

Diagrama de Transición de Estado asociado a M. a a

b

q0

b

q1

q2

a

q3

q4 b

Observación: Como se aprecia en la tabla de relación de transición las celdas son conjuntos. Las celdas con vacío( ), indican que no existe ninguna transición desde el estado actual mediante la entrada correspondiente. Que para un estado actual, símbolo de entrada exista mas de un posible estado siguiente, significa que se puede elegir entre las distintas posibilidades. El ejemplo dado no existe nada que determine la elección hacia un único

estado, por tal razón se dice que el comportamiento del autómata

deterministico. Definición: Si “M” es un AFND, entonces el lenguaje aceptado por M es:

es

no


L(M)= W / W es aceptada por M .

En el caso particular del ejemplo anterior cabe destacar que el lenguaje aceptado por dicho aut贸mata es: L(M)=( a bUab ) *

*

Equivalencia entre AFND y AFD: Sea : M = (Q, '

de M se Puede obtener Un AFD M = (Q ' ,

, s, F, ) Un AFND, A partir '

,s

'

'

'

F ,

) que sea equivalente a

M, por medio de la siguiente transformaci贸n. Q

'

Q=2 ; Se hace corresponder a cada estado de Q un conjunto de estados de Q.

-

'

-

= . '

s =S

-

'

'

F : Representa el conjunto de estados de Q que corresponden con los conjuntos

-

de estados (de Q ) que contienen un estado de F. : Se define de forma tal que permita un desplazamiento

-

de un conjunto de

estados de M a otro, como lo hace . Ejemplo: Sea el AFND dado por:

Q= q 0 , q 1 , q 2

;

a, b ; s= q 0 ; F= q 0

a

b

: dada por:

q1

q0 q1

q 0 ,q 2

q2

Obtenga componentes.

un AFD

'

q0

M = (Q ' ,

'

, s

'

'F

'

,

) que sea equivalente, defina todas las


Soluci贸n: El DTE asociado a M viene dado por

a

b

q0

q1

a

b

q2

'

Q

3

Q = 2 =2 =8 posibles combinaciones de estados de Q, esto es: '

Q = '

, q 0 , q 1 , q 2 , q 0 ,q 1 , q 0 ,q 2 , q 1 ,q 2 , q 0 ,q 1 ,q 2

= a,b

'

s =q 0 '

F = q 0 , q 0 ,q 1 , q 0 ,q 2 , q 0 ,q 1 ,q 2 dada por: ,a =

,b)= ;

q 2 ,a = q 0 ; q 0 ,q 1 , a =

q 0 ,a = q 1 ;

q 1 ,a = ;

q 1 ,b = q 0 ,q 2

q 2 ,b = q 0 ,a

q 0 ,q 1 , a = ,q 1 ; q 0 ,q 2 ,b = ;

q 0 ,b = ;

U

q 1 ,a = q 1 U

q 0 ,q 1 , b = q 0 ,q 2 ; q 0 ,q 1 ,q 2 ,a = q 0 ,q 1 ;

= q1 ; q 0 ,q 2 ,a = q 0 ,q 1 q 0 ,q 1 ,q 2 ,b = q 0 ,q 2

A continuaci贸n se presenta el diagrama de transici贸n de estado resultante:


q1 q 0 q1 q 2

a b

q0

a

a

q 0 q1

a

b

a

q2 q0q2

5. Transformación de AFND con

- transiciones.

- transiciones: Son aquellas transiciones que al realizarse no consumen ningún símbolo de entrada,, es decir; son transiciones de un estado a otro que no dependen de ninguna entrada. Ejemplo: Sea el AFND, dado por:

a

q0

q1

Comentario: El autómata puede cambiar su estado de

q 1 sin consumir nada en la

entrada. q 1 , es el único estado de aceptación del AFND presentado, si W es cualquier cadena de cero o más a‟es, el autómata cicla sobre q 0 hasta que consuma las a‟es, una vez que la cadena se vacía se desplaza a q 1 y la acepta. Ejemplo: Sea El AFND dado por:


a

q0

q1

a,

b

q2

Comentario: El AFND dado puede moverse de

q2

a

q0

sin consumir nada en la

entrada. En los ejemplos citados, la decisión de elegir una -transición, se realiza de la misma forma que la de cualquier otra transición con elección múltiple que exista en un AFND. Por lo tanto las

-transiciones son consistentes con el matiz no deterministico de

los AFND. Construcción de la Tabla de Transición.: relación

Si un AFND tiene

-transiciones,

asocia pares de Q X ( U( )) X Q con subconjuntos de Q .( Es decir

relación sobre Q X ( U( )) X Q, se puede añadir una nueva columna en la tabla de

la

es una para

colocar los pares de la forma (q, ). Ejemplo: Para el DTE del ejemplo anterior se tiene que la tabla seria, a

b q1

q0 q1 q2

q2 q0

q0

Nota: Cuando hay -transiciones en n AFND es conveniente suponer que cada estado tiene una

-transición que cicla en ese estado. En el caso del ejemplo anterior la tabla quedaría

de la siguiente forma a q0

b q1

q1 q2

q0 q2

q0

q1 q0, q2


Nota:: Para calcular el conjunto de estados siguientes en un AFND, que contiene transiciones se deben tener en cuenta las -transiciones anteriores y posteriores a la transición etiquetada con

.

Ejemplo: Sea el AFND dado por. a

q0

b

a

q1

b

q2

q3

b

a

q5

b

q4

Conjunto de estados siguientes a:

-

(q 0 , a)= q 1 , q 4

-

(q 1 , b)= q 0 , q 2 , q 5

Nota: Para él calculo del conjunto de estados siguientes en un AFND con -transiciones se deben tener en consideración las definiciones dadas a continuación. Definición: Para todo estado q Q, se define la -cerradura de q como sigue. -c(q)= p / p es accesible desde q sin consumir nada en la entrada , ampliando la definición dada para todo el conjunto de estados se tiene que; -c( q i1 , q i 2 ,....,q in )=

Ejemplo: Sea el AFND dado por

q0

q1

b a

q5

b

q4

q2

n k 1

e - c(qi )


obtener : -c(q 3 ); -c(q 1 ); -c(q 4 . Solución: -c(q 3 )= q 3 ;

-c(q 1 )= q 1 , q 2 ;

-c(q 4 )= q 0 ,q 2 , q 4

Definición: Para todo q Q y , se tiene que d(q, )= p / hay una transición de q a p etiquetada con , ampliando esta definición a todo el conjunto Q, se tiene que. n

d q i1 , q i 2 , ..., q in ,

=

 d(q , i

)

k 1

Ejemplo: Para el AFND del ejemplo dado anteriormente obtener, d(q 0 ,a); d(q 0 , b); d q 3 ,q 4 , b . Solución: d(q 0 ,a)= q 3 ; d(q 0 , b)= ;

d q 3 ,q 4 , b = d q 3 , b)

q4 , b = q4

q 0 = q 0 ,q 4

Definición: A partir de un AFND que tiene transiciones se puede tener un un AFND sin ' ' ' -transiciones que acepte el mismo lenguaje. Se define M =(Q, , s, F , ) donde: '

F =F '

(q, )=

q/

- c(q)

- c(q, )=

F - c (d( - c(q), ))

Ejemplo: Sea el AFND con

- transiciones dado por:

b

q0

a

q2

q1

a a

q3

b

q4 q5


Soluci贸n: '

(q 0 ,a)=

- c(d( - c(q 0 ),a))= q 1 ,q 3 ,q 4 ,q 5 se tiene que

- c(q 0 )= q 0 ,q 1 ; d( q 0 ,q 1 ,a)= q 3 ,q 4 - c q 3 ,q 4 )= q 1 ,q 3 ,q 4 ,q 5 '

(q 0 ,b)= q 2 ;

'

(q 1 ,a)= q 4 ,q 5 ;

'

(q 1 ,b)= q 2 ;

'

(q 2 ,a)= ;

'

(q 2 ,b)= ;

' ' '

'

(q 3 ,a)= q 4 ,q 5 ;

(q 3 ,b)= q 2 ,q 4 ,q 5 ;

(q 4 ,a)= ;

'

(q 4 ,b)= ;

(q 5 ,a)=

'

(q 5 ,b)=

;

;

A continuaci贸n se muestra el DTE asociado al AFND sin

- transiciones.

b a

q0

a

b

a

q3

q2

q1

a

a,b

a

q4

q5

a,b

a

b


6. Conceptos relativos a AFD y AFND Extensión a palabras: dado que la

solo transita cuando recibe un símbolo de

entrada, se puede generalizar para cuando recibe una palabra formada por mas de un símbolo o por palabra vacía. Aceptación de palabras: x

* es aceptada o reconocida por un AFD si f „(qo, x)

F. Es decir, si se parte del estado inicial y recibe la palabra de entrada x, se transita a un estado que pertenece al conjunto de estados finales o de aceptación F. Lenguaje reconocido por un AFD: es el conjunto de palabras aceptadas por un AFD. Así se comprueba que existe entre autómatas y lenguajes de forma que cada autómata reconoce un lenguaje determinado (regular en el caso de la Af), generando como salida una aceptación si la palabra de entrada pertenece al lenguaje y una noaceptación si la palabra de entrada no pertenece al lenguaje.

También existe la

relación inversa que permite asegurar que, para cada lenguaje regular, hay un AF que reconoce palabras de ese lenguaje y no reconoce ninguna palabra que no pertenezca al lenguaje. Accesibilidad entre estados: p palabra x

Q es accesible desde q

Q, pAp, si existe una

* tal que f „(q, x)=p. A efectos de simplificar los autómatas, todos

aquellos estados no accesibles desde el inicial, se pueden borrar, ya que no afectaran al comportamiento del autómata al no poder llegar nunca a ellos. Autómatas Conexos: Un AFD es conexo si para cada estado

q

Q,

q es

accesible desde q 0 . Equivalencia entre estados: Dos estados p, q x

*

,

'

(p,x)

F

'

(q,x)

Q son equivalentes pEq, si F

Nota: Si las transiciones de p con la entrada x llegan a un estado final las transiciones de q con x también tienen que llegar, y si las transiciones de p con x no llegan a un estado final las transiciones de q con x tampoco deben llegar.


6. Minimización de AFD Cálculo de clases de equivalencia: Al igual que en Máquinas Secuenciales, las relaciones de equivalencia definidas anteriormente particionan el conjunto de estados en clase, definiendo el conjunto cociente, Q / E. Para calcular dicho conjunto, se comienza con el conjunto cociente de la relación de equivalencia de longitud 0, que esta formado por dos clases: el conjunto de los estados finales ( F ); y el resto de los estados ( F ). Después, en cada iteración, se utiliza la definición equivalencia de longitud i + 1 para calcular el conjunto cociente partir del conjunto cociente Q / E i 1 a partir de l conjunto cociente Q / E de acuerdo a la definición anterior. algoritmo para el calculo de la clase de euivalewncia.

Ejemplo: Sea el AFD M, dado por: Q= q 0 , q 1 , q 2 , q 3 , q 4

: dada por:

; S=q 0 ; F= q 2

A continuación se presenta un


q0

0 q0

1 q4

q1

q1

q2

q2 q2 q2 q3

q3

q4 q0

q2 q2

Obtendremos el conjunto cociente Q / E en los siguientes pasos: 1. Q / E 0 = c 0 = q 2 ; c 1 = q 0 , q 1 , q 3 , q 4 2. Q / E 1 : q 0 E 0 q1

(q 0 ,0)= q 0 c 1

(q 1 ,0)= q 1

c1

(q 0 ,1)= q 4 c 1

(q 1 ,1)= q 2

c0

(q 0 ,0)= q 0 c 1

(q 3 ,0)= q 3

c1

(q 0 ,1)= q 4 c 1

(q 3 ,1)= q 2

c0

no q 0 E 0 q 1 . q0E0q3

no q 0 E 0 q 1 . q0E0q4

(q 0 ,0)= q 0 c 1

(q 4 ,0)= q 0

c1

(q 0 ,1)= q 4 c 1

(q 4 ,1)= q 2

c0

no q 0 E 0 q 4 . q1 E 0 q 3

(q 1 ,0)= q 1 c 1

(q 3 ,0)= q 3

c1

(q 1 ,1)= q 2 c 0 ; (q 3 ,1)= q 2

c0

q1 E 0 q 3 . q1 E 0 q 4

(q 1 ,0)= q 1 c 1

(q 4 ,0)= q 0

c1

(q 1 ,1)= q 2 c 0 ; (q 3 ,1)= q 2

c0

q1 E 0 q 4 . Por lo tanto: Q / E 1 = c 0 = q 2 ; c 1 = q 0 ; c 2 = q 1 , q 3 , q 4 3. Q / E 2 : q1 E1 q 3

(q 1 ,0)= q 1 c 2 ; (q 3 ,0)= q 3

c1

(q 1 ,1)= q 2 c 0 ; (q 3 ,1)= q 2

c0


q1 E 2 q 3 . q1 E1 q 4

(q 1 ,0)= q 1 c 2

(q 4 ,0)= q 0

c1

(q 1 ,1)= q 2 c 0 ; (q 4 ,1)= q 2

c0

no q 1 E 0 q 4 Por lo tanto: Q / E 2 = c 0 = q 2 ; c 1 = q 0 ; c 2 = q 1 , q 3 ; c 3 = q 4 4. Q / E 3 : q1 E1 q 3

(q 1 ,0)= q 1 c 2 ; (q 3 ,0)= q 3

c2

(q 1 ,1)= q 2 c 0 ; (q 3 ,1)= q 2

c0

q 1 E 3 q. Como: Q / E 2 = Q / E 2 = c 0 = q 2 ; c 1 = q 0 ; c 2 = q1 , q 3 ; c 3 = q 4 Luego el conjunto cociente sera:

Q / E=Q / E 2 = Q / E 3

Como resultado de las anteriores definiciones de equivalencia de autómatas, una de las aplicaciones más interesantes consiste en diseñar el autómata equivalente a uno dado que contenga el mínimo número de estados. Se puede demostrar que, para cada AFD, existe un AFDm mínimo equivalen-te. La construcción del AFD mínimo se realiza en los pasos especificados en el algoritmo primero calcula el autómata conexo, eliminando todos aquellos estados no accesibles desde el inicial. Después, calcula el conjunto cociente, que determina el mínimo número de estados con significado diferente. Estos estados serán las clases de equivalencia del conjunto cociente y formarán el conjunto de estados, Q' , del autómata mínimo. ~


Comentario: El resto de los elementos del autómata se calculan en funcion de esos estados. Así, el estado inicial del autómata de partida. Las transiciones de los nuevos estados de los nuevos estados (clases de equivalencia) se realizaran en funcion de las transiciones de los estados que los forman. Como los estados del autómata de partida que pertenezcan a la misma clase de equivalencia son equivalentes(generan la misma aceptación o no dada la misma palabra de entrada), da igual cuál se considere a la hora de fijar las transiciones en el nuevo estado que los representa en el autómata mínimo. El conjunto de los nuevos estados finales serán las clases de equivalencia donde aparezcan estados finales del autómata de partida. Ejemplo: Sea el autómata dado por: M= ({o, 1}, {qa,ql,q2,q3,q4},f;qa,{ql,q2}) donde se define como: (qa,O) = q3 (qa, 1) = q2 (ql,0)=q4 (ql,l) = q1 (q2,0) = q0 (q2,1) = q3 (q3,0)=q0 (q3,1) = q2 (q4,0) = q4 (q4, 1) = q1 Para calcular el autómata mínimo equivalente a M, se siguen los pasos del algoritmo: 1. Se calcula el autómata conexo. En este caso, se puede comprobar que los estados q1 y q4 no son accesibles desde q0, con lo que se pueden eliminar1 quedando: M= ({o, 1}, {qa,q2,q3},f,qa,{q2}) 2. Se obtiene el Q/ E de M.. Q / E 0 = [{q2}, {q0, q3}] , Q / E = Q / E 0 = Q / E 1 = [ca = {q2},Cl = {qa,q3}] 3. El autómata mínimo equivalente a A4 será: M= ({o, 1}, {c 0 ,c 1 }, !,c 1 ,{c 0 }) donde se define como: (c 0 0) = c 0 (c 0 , 1) = c 1 (c 1 ,0) = c 0 (c 1 , 1)=c 0


7. Autómatas de células de McCulloch-Pitts Introducción : Este tipo de autómatas constituyó el primer estudio de lo que hoy en día se conoce como “Redes de Neuronas Artificiales”; Ya que el mismo proviene del estudio de la estructura de las neuronas humanas y sus conexiones, y debido a esta analogía a los estados de este tipo de autómata se le denomina célula o neurona.

Definición: este autómata esta constituido por un conjunto de células (estados) interconectadas entre si; Dichas células presentan las siguientes características: Pueden encontrarse en dos estados: Activo (1), o Inactivo (0). Pueden recibir dos tipos de señales a partir de otras células o como entrada del autómata: Positivas (1), o Negativas (0). Pueden tener una o varias entradas (e1) de dos tipos: Exitadoras ( Inhibidoras (-°) .

), o

Tienen una salida o respuesta r(t) que será 1 si el estado de la célula es activo ó 0 si el estado es inactivo. Su salida puede ir a una o varias células (incluida ella misma). Su estado en el tiempo t-1 depende solo de la entrada que reciban en el tiempo t, pero no de estado en el tiempo t. Disponen de una función de transición “g” que permite transitar entre estados a partir de las entradas a una célula. Tienen un umbral u

Z que permitirá definir las diferentes funciones de transición.

Representación: Se puede ver gráficamente una célula, donde e(t) = [e1(t), e2(t),....,en(t)] es el vector de las entradas de las célula en el instante t, u es el umbral, c es el nombre de la célula, y r(t) es la salida en el instante t. Al estado que se encuentra en un determinado instante se le denominará q(t).


e1 u

c

u

e2

c

r

.......... en

Se cumple además: 1._ r(t) = q(t) con lo que la salida de un determinado instante t depende solo del estado en ese instante. 2._ q(t+1) = g(e(t)), con lo que el estado en el instante t+1 solo es función de la entrada en el instante t y es calculado por la función de transición g a partir de las entradas en el instante previo t. 3._ r(t+1) = q(t+1) = g(e(t))con lo que la salida en el instante t+1 solo depende del estado al que transicione la célula a partir de las entradas en el instante previo t. De acuerdo a lo anterior el comportamiento en este tipo de autómata es similar a las maquinas secuenciales de Moore. Variando que la función de transición g, se obtienen diferentes tipos de células. Se puede definir una g de la siguiente forma:

Es decir, las celulas se activaran si la suma de las señales que recibe en las entradas es mayor o igual que el umbral Ejemplo: A continuación se presenta un autómata de celulas , la tabla refleja las transiciones definidas por la funcion de transición definida anteriormente.


En el caso de la entrada 101, la salida será 0, ya que la entrada e 1 es inhibidora y por ser su valor 1, cuenta como –1 para la función g. 8. Autómatas probabilísticas. Introducción: Los Autómatas Finitos Probabilísticos (AFP) permiten introducir la idea de que las transiciones entre estados a partir de símbolos de entrada pueden no producirse de forma segura (probabilidad igual a 1) sino que existe una determinada probabilidad asociada a que se produzca la transición. Por tanto, no se puede hablar del estado en él que está el autómata en un determinado instante, sino que se habla de la probabilidad de que se encuentre en cada uno de los estados del autómata. Muchas aplicaciones reales se basan en este tipo de comportamiento probabilístico de transición, como, por ejemplo, los movimientos de los robots, el reconocimiento de voz, el entendimiento del lenguaje natural, etc. Definición: los Autómatas Probabilísticos se pueden definir de la siguiente forma: AFP = (E, Q, M, P(O), F) Donde: E es el alfabeto de los símbolos de entrada Q es el conjunto de estados M es el conjunto de matrices de probabilidad de transición entre estados, M = {M(a)la E E} P(O) es el vector de estado inicial .F Q es el conjunto de estados finales Existen dos conceptos nuevos con respecto a los AF estudiado hasta ahora y son los que permiten trabajar con las probabilidades: las matrices de probabilidades de transición, que reemplazan a las funciones de transición; y los vectores de estado, que definen la probabilidad de que el autómata se encuentre en cada estado. Estos dos conceptos se analizaran en detalle a continuación. .Matrices de probabilidad de transición: por cada símbolo a del alfabeto de entrada , existe una matriz de probabilidad de transición, M ( a), que define la probabilidad de dado que el autómata se encuentre en un determinado estado y reciba el símbolo de


entrada a, transite a cada uno de los demás estados. Formalmente, se puede expresar las matrices como:

p11

p12 ………… p1n

p21

p22 ………… p2n

………

………

pn1

pn2 …………pnn

n es él numero de estados, n= Q ; .Pij es la probabilidad de que estando en el estado i y recibiendo una a como transite al estado j; .para cada Pij, se cumple O Pij 1; y .para cada estado i,

n j 1

entrada,

pij Pij = 1.

Ejemplo: Se define el siguiente Autómata Probabilístico: AFP1 = ({O, 1}, {ql, q2, q3}, M, ( 1/3 1/3 1/3), {q3}) donde M = M(0), M(1) y

1/3 1/3 1/3 M(0)=

½ 0

0 1

½ 0

½ M(1)=

½

0

1/3 2/3 0 0

0

1

En este autómata, M(O) y M(l) definen las probabilidades de transición para los símbolos de entrada O y 1, respectivamente. Así, la probabilidad- de que, al estar en el estado q2 y recibir un O en la entrada, transite al estado ql es M21(O) = 1/2, y, si recibe un 1, la probabilidad de esa transición es M21(1) = 1/3.El vector inicial de probabilidad define que los tres estados son equiprobables para comenzar en ellos las transiciones, como se trata en la siguiente sección. Vectores de estados: El vector de estados en un instante de tiempo t, P(t), tiene una componente por cada estado del autómata, y, el contenido de cada posición i del vector, p i (t), se corresponde a la probabilidad de que en ese instante t el autómata


se encuentre en el estado i. Se puede definir como: P(t)=(P 1 (t) , P 2 (t) ,…….,P n (t)) n

Se debe cumplir que

i 1

P i (t) =1 para cada instante t. Supóngase que se desea

calcular la probabilidad de estar en el estado i en el instante t + I si en la entrada aparece el símbolo a. Por una parte, el vector de estados proporciona la probabilidad de que en el instante t se encuentre en cada uno de los estados j, a través de sus componentes Pj(t). Por otra parte, la matriz de probabilidades de transición M ( a) proporciona la probabilidad de transitar desde un estado a otro al recibir la entrada a. Por tanto, la probabilidad buscada, Pi(t + I), se podrá calcular como la probabilidad de estar en el estado I en el instante t multiplicado por la probabilidad de transitar desde el estado I al i al recibir una a en la entrada, más la probabilidad de estar en el estado 2 en el instante t multiplicado por la probabilidad de transitar desde el estado 2 al i al recibir una a en la entrada, y, así sucesivamente para todos los estados del autómata. La fórmula resultante será: n

P i (t) =

P j (t)M ji (a) j 1

y la fórmula de cálculo para el vector completo será: P(t + 1) = Pj(t) x M(a) Ejemplo: Dado el autómata AF Pl , si el vector de estados es el inicial, P(O) = ( 1/3 1/3 1/3 ), y se recibe un O, las componentes del vector de estados serán: 3

P 1 (1) =

P j (0)M j1 (0) =1/3 x 1/3 + 1/3 x 1/2 + 1/3 x O = 5/18 j 1

3

P 2 (1) =

P j (0)M

j2

(0) =1/3 x 1/3 + 1/3 x O + 1/3 x 1 = 4/9

j 1 3

P 3 (1) =

P j (0)M J 3 (0) =1/3 x 1/3 + 1/3 x 1/2 + 1/3 x O = 5/18 j 1

P(1) seria: P(1) = (5/18 4/9 5/18), por lo tanto, seria más probable encontrarse en el estado q 2 , si recibiera como entra un 1, las componentes del vector de estado en el momento t=1 serian: 3

P 1 (1) =

P j (0)M j1 (0) =1/3 x 1/2+1/3 x 1/3 + 1/3 x O = 5/18 j 1 3

P 2 (1) =

P j (0)M

j2

(0) =1/3 x 1/2 + 1/3 x 2/3 + 1/3 x 0 = 7/18

j 1

3

P 3 (1) =

P j (0)M J 3 (0) =1/3 x 0 + 1/3 x 0 + 1/3 x 1= 1/3 j 1

P(1) seria: P(1)=(5/18 7/18 1/3)


9. Análisis Léxico Introducción: En este tema abordaremos un problema al que se enfrenta un compilador como es el detectar si una cadena de un programa fuente representa o no un nombre de variable valido, además del reconocimiento de cualquier estructura léxica dentro del programa. Analizador Léxico: Serie de instrucciones o subrutinas, que tienen como tarea el reconocimiento de patrones del programa fuente. Patrones : Cadenas de símbolos de un programa fuente que deben considerarse como representaciones de objetos individuales.como ejemplo de patrones se pueden mencionar nombres de variables utilizadas en un programa, constantes numéricas, palabras reservadas entre otras. Ejemplo: Sea el DTE presentado a continuación asociado a un AFD que representa la sintaxis de un nombre de variable. Letra

Letra

q

Digito

q1

0

Digito

q2 1

El Analizador léxico asociado al DTE dado se presenta a continuación.

Estado: = q 1 ; Leer el siguiente símbolo de entrada Mientras (no es fin_de_la_cadena) Haga Inicio CASE Estado of 1: Si Símbolo actual es una letra Entonces Estado:= q 3 ; Si no Si símbolo actual es un digito Entonces Estado:= q 2 : Si no Salir a la rutina de error 2: Salir a la rutina de error

1


3: Si Símbolo actual es una letra Entonces Estado:= q 1 ; Si no Si Símbolo actual es un digito Entonces Estado: = q 1 ; Si no Salir a la rutina de error Leer el siguiente símbolo de estrada Fin(mientras) Si Estado no es q 1 Entonces Salir a la rutina de error;


Automatas de Estados Finitos  

Informacion referente al estudio de los Automatas

Advertisement
Read more
Read more
Similar to
Popular now
Just for you