Vous êtes sur la page 1sur 14

Cap tulo 3 Mquinas de estado nito y a expresiones regulares

En este tema deniremos y estudiaremos mquinas de estado nito, llaa madas tambin mquinas de estado nito secuenciales o autmatas nitos. e a o Estos objetos matemticos son los modelos para los ordenadores digitales a y constituyen una importante herramienta en el diseo de circuitos f n sicosecuenciales, en el estudio de los lenguajes formales y de compiladores e intrpretes de varios lenguajes de programacin. Desde un punto de vista e o terico, las mquinas de estado nito son casos especiales de objetos ms o a a generales, tales como las mquinas de Turing, esenciales en el estudio de a problemas en computabilidad. Mientras que en un circuito combinacional la salida depende unicamente de la entrada en ese instante, una mquina secuencial es un sistema que a acepta unas entradas y genera unas salidas en instantes de tiempo discretos, la salida en un instante depende de la entrada y de la condicin interna o (estado) de la mquina en ese instante y, adems, esa entrada y el estado a a en ese instante determinan el estado que la mquina tendr en el instante a a siguiente. Todas las mquinas de estado nito tienen un conjunto de estados, ina clu el estado inicial, un alfabeto fuente y una funcin de transicin que a do o o cada pareja de estado y dato de entrada le asigna el estado siguiente. Los estados de la mquina le dan unas capacidades de memoria limitadas. Algunas a mquinas de estado nito producen un s a mbolo como dato de salida para cada transicin y pueden utilizarse para modelar gran variedad de mquinas, entre o a las que se incluyen las mquinas expendedoras, los semforos, los sumadores a a binarios y los reconocedores de lenguajes. Tambin estudiaremos mquinas de e a estado nito que no generan datos de salida, pero tienen estados nales. Estas mquinas (autmatas) se utilizan con gran frecuencia en el reconocimiento a o 79

Matemtica Discreta. rea de lgebra Universidade da Corua

80

CAP ITULO 3. AUTOMATAS FINITOS

de lenguajes. Las cadenas que se reconocen son aquellas que transforman el estado inicial en un estado nal. Los conceptos de gramtica y mquina de a a estado nito pueden relacionarse entre s De hecho, los conjuntos que son . reconocidos por una mquina de estado nito son los conjuntos generados a por cierto tipo de gramtica. a Supongamos que una mquina expendedora tiene dos tipos de productos a A y B. El precio de cada producto es de 10 cntimos. La mquina admite e a unicamente monedas de 5 y 10 cntimos y devuelve el cambio necesario. e Dispone de un botn rojo que expide el producto A y uno verde que hace o lo mismo con el producto B. Elena quiso comprar el producto A y para ello introdujo consecutivamente dos monedas de 5 cntimos. Luego apret el e o botn rojo y obtuvo el producto deseado. Representemos el proceso con una o tabla, donde t0 es el instante inicial cuando inserta su primera moneda y ti con i = 1, 2, 3 son los instantes posteriores: t0 s0 5 nada t1 s1 5 nada t2 s2 R A t3 s0

Estado Entrada Salida

Matemtica Discreta. rea de lgebra Universidade da Corua

La mquina est en un estado de espera en el estado s0 . Espera que un cliente a a comience a insertar monedas hasta un total de 10 cntimos o ms y oprima el e a botn para obtener el producto deseado. Si en cualquier momento del proceso, o el total de monedas insertadas supera los diez cntimos, la mquina devuelve e a el cambio necesario antes de que el cliente oprima el botn correspondiente. o En el instante t0 , Elena inserta su primera moneda de 5 cntimos. No recibe e nada pero en el instante siguiente (t1 ) la mquina est en el estado s1 (tiene a a almacenados cinco cntimos). En este instante t1 , la mquina no devuelve e a nada pero, al depositar una nueva moneda de 5 cntimos, en el instante e t2 la mquina se encuentra en un nuevo estado s2 (tiene almacenados diez a cntimos). Elena todav no recibe nada puesto que la mquina no sabe qu e a a e tipo de producto quiere. Al oprimir el botn rojo en el instante t2 , la mquina o a expide el producto A y en el instante siguiente t3 se coloca de nuevo en el estado inicial s0 (ningn cntimo almacenado). Las principales caracter u e sticas de esta mquina son: a En un instante dado, la mquina slo puede estar en un estado de un a o conjunto nito de estados internos posibles. La mquina slo acepta un nmero nito de entradas (en el ejemplo, a o u monedas de cinco y diez cntimos, botones rojo y verde). e

3.1. MAQUINAS DE ESTADO FINITO CON SALIDA

81

Mediante cada combinacin de entrada y estado interno, se produce o una salida y un estado siguiente. El conjunto de salidas, para nuestra mquina es nada, monedas de cinco y diez cntimos y productos A y a e B. Los procesos de la mquina son secuenciales y se producen en instantes a distintos. La mquina es determinista ya que la salida queda detemia nada por el estado y la entrada.

3.1.

Mquinas de estado nito con salida a

Denicin 53. Una mquina de estado nito con salida M = (S, I, O, f, g, s0) o a consiste en un conjunto nito de estados S, un alfabeto (conjunto nito no vac de entradas I, un alfabeto de salidas O, un estado inicial s0 , una o) funcin de transicin f : S I S y una funcin de salida g : S I O. o o o Las mquinas de este tipo se llaman mquinas de Mealy porque fue G. a a H. Mealy, en 1955, el primero que las estudi. Hay otro tipo importante de o mquina de estado nito con salida, donde la salida est determinada slo a a o por el estado. Este tipo de mquina se llama mquina de Moore en honor a a a E. F. Moore, quien la deni en 1956. o Una mquina M = (S, I, O, f, g, s0) puede describirse por una tabla de a estados, que indica los valores de las funciones f y g, o por un diagrama de estados, grafo dirigido donde los vrtices representan los estados de la e mquina, el estado inicial se indica mediante una echa que no proviene de a otro estado y existe una echa, etiquetada por i, o, del estado s al estado s si f (s, i) = s y g(s, i) = o.

Matemtica Discreta. rea de lgebra Universidade da Corua

i, o

Ejemplo 47. La tabla de estados que le corresponde al ejemplo de la mquina a expendendora de antes ser a: Estados Transicion Entrada 5 10 R V s1 s2 s0 s0 s2 s2 s1 s1 s2 s2 s0 s0 Salida Entrada 10 R n n 5 n 10 A

s0 s1 s2

5 n n 5

V n n B

82

CAP ITULO 3. AUTOMATAS FINITOS El correspondiente diagrama de estados ser a:

{R, V }, n {R, V }, n s0 5, n 10, n V, B R, A s1 5, n 10, 5 5, 5 s2 10, 10

Ejemplo 48. Tabla de estados y diagrama de estados de una mquina de a estado nito: Estados Transicin o Entrada 0 1 s1 s0 s2 s1 s2 s0 Salida Entrada 0 1 0 0 1 1 0 1

1, 0 s0 1, 1 s2 0, 0 0, 0 s1 0, 1

1, 1

s0 s1 s2

Matemtica Discreta. rea de lgebra Universidade da Corua

Para cada cadena de entrada x = x1 . . . xk la mquina de estado nito a produce una cadena de salida y = y1 . . . yk , siendo t0 = s0 ti = f (ti1 , xi ) yi = g(ti1, xi ) donde i = 1, 2, . . . , k. En el ejemplo anterior, si x = 10011 es la secuencia de entrada, la secuencia de salida es y = 00110. Se quiere dise ar una mquina de estado nito con una n a Ejemplo 49. unidad de retardo que, dada una cadena de entrada x = x1 . . . xk devuelva 0x1 . . . xk1 . La mquina debe tener un estado inicial s0 y debe a recordar si la entrada previa ha sido 1 (s1 ) o 0 (s2 ). El diagrama de estados ser a:

3.1. MAQUINAS DE ESTADO FINITO CON SALIDA 1, 1

83

1, 0 s0 0, 0 1, 0

s1 0, 1 s2

0, 0 En una mquina de estado nito con dos unidades de retardo que, dada a una cadena de entrada x = x1 . . . xk devuelva 00x1 . . . xk2 , debemos tener un estado inicial s0 y queremos recordar si la entrada previa ha sido 00 (s1 ), 01 (s2 ), 10 (s3 ) o 11 (s4 ). El diagrama de estados ser a: 0, 0 s1 0, 0 s0 1, 0 s2
Matemtica Discreta. rea de lgebra Universidade da Corua

0, 1 0, 0

s3

1, 0 1, 1

0, 1 1, 1 1, 0 s4

Se quiere dise ar una mquina de estado nito que efecte suma binaria n a u en serie. Las entradas posibles son los pares {00, 01, 10, 11}. Si la cifra de arrastre de la suma anterior es 0, el estado es s0 y si la cifra de arrastre es 1, el estado es s1 . El diagrama de estados ser a:

00, 0 s0 10, 1

11, 0 01, 1 00, 1

01, 0 s1 11, 1 10, 0

En cierto esquema de codicacin, el receptor de un mensaje sabe que o ha habido un error de transmisin cuando aparecen tres unos consecuo tivos en un mensaje. Si se desea construir una mquina de estado nito a que devuelva un 1 como salida si, y slo si, los ultimos tres bits recibidos o son todos 1, se necesitan tres estados. El estado inicial s0 recuerda que

84

CAP ITULO 3. AUTOMATAS FINITOS la entrada anterior, si existe, no era 1. El estado s1 recuerda que la entrada anterior era 1, pero que el valor previo al anterior, si existe, no era 1. El estado s2 recuerda que las dos entradas previas han sido unos. El correspondiente diagrama de estados ser a:

0, 0 s0

1, 0 0, 0

s1 0, 0

1, 0

1, 1 s2

Esta mquina es un ejemplo de reconocedor de lenguajes porque, dada una a secuencia de entradas, la secuencia de salidas termina en 1 si, y slo si, la o cadena de entrada le tiene una determinada propiedad. El reconocimiento da de lenguajes es una aplicacin importante de las mquinas de estado nito. o a Esta aplicacin desempea un papel fundamental en el diseo y construccin o n n o de compiladores para los lenguajes de programacin. o

3.2.

Autmatas nitos o

Matemtica Discreta. rea de lgebra Universidade da Corua

Un autmata nito (determinista) es un modelo matemtico de una mo a a quina que permite saber si una cadena de s mbolos pertenece o no a un lenguaje denido sobre cierto alfabeto. Consiste en un conjunto nito de estados y un conjunto de transiciones entre estos estados, que dependen de los s mbolos de la cadena de entrada. El autmata acepta una cadena de o entrada si al terminar de leer todos los s mbolos de esa cadena la mquina a est en alguno de los posibles estados nales; si el estado no es nal, entonces a la cadena no pertenece al lenguaje que reconoce la mquina. a Denicin 54. Una autmata de estado nito M = (S, I, f, s0 , F ) consiste o o en un conjunto nito de estados S, un alfabeto de entradas I, un estado inicial s0 , una funcin de transicin f : S I S y un conjunto F de o o estados nales o de aceptacin (F S). o En el diagrama de transicin de un autmata nito los estados nales o o estn encerrados en un c a rculo doble. Para cada estado si y un s mbolo de entrada a hay una unica echa de si a f (si , a), que se etiqueta como a. El diagrama de estados del autmata nito M = (S, I, f, s0 , F ) o Ejemplo 50. con S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s0 , s3 } y cuya funcin de trano sicin viene dada por la tabla: o

3.2. AUTOMATAS FINITOS Estados Transicion Entrada 0 1 s0 s1 s0 s2 s0 s0 s2 s1

85

s0 s1 s2 s3 es el siguiente:

s1 1 0 s0 0 0 1 s2 1 0 1 s3

M1 = (S, I, f, s0 , F ) si S = {s0 , s1 }, I = {0, 1}, F = {s0 }

1
Matemtica Discreta. rea de lgebra Universidade da Corua

0 s0 0 s1

M2 = (S, I, f, s0 , F ) si S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s2 }

1 s0 0 s1 1 0 s2

1 1 0 s3

M3 = (S, I, f, s0 , F ) si S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s0 , s3 }

0 s0 1 s1 1

0 s2 0 1 1 s3

86

CAP ITULO 3. AUTOMATAS FINITOS

3.3.

Lenguaje aceptado por un autmata o

Dado un alfabeto cualquiera I se dene I como el conjunto de todas las cadenas nitas que se pueden formar con los elementos de I, es decir los elementos de I son secuencias nitas x = x1 . . . xk con xi I, k N (se dice que x es de longitud k). Adems si k = 0, se habla de la cadena vac . a a Si x = x1 . . . xk e y = y1 . . . ym son elementos de I , la concatenacin de o x e y es la cadena xy = x1 . . . xk y1 . . . ym , que tambin pertenece a I . e Denicin 55. Dado un alfabeto I, un lenguaje sobre I es un subconjunto o de I . La funcin de transicin f : S I S de un autmata se puede extender o o o a f : S I S del modo siguiente. Dado t S y x = x1 . . . xk I , llamaremos t0 = t y ti = f (ti1 , xi ) para i = 1, 2, . . . , k. De este modo, f (t, x) := tk . Para cualquier estado s S, se tiene que f (s, ) = s. Denicin 56. Una palabra o cadena x = x1 . . . xk I es aceptada o o reconocida por M si f (s0 , x) F . El lenguaje formado por todas las palabras reconocidas por M se denota L(M). Ejemplo 51. En los autmatas M1 , M2 y M3 de los ejemplos anteriores, se o tiene que L(M1 ) = {1n ; n = 0, 1, 2, . . .} L(M2 ) = {1, 01} L(M3 ) = {0n , 0n 10x ; x cualquier cadena binaria} Ejemplo 52. El autmata nito que acepta el lenguaje L = {an cbm ; n o 1, m 0} es M = (S, I, f, s0 , F ) con S = {s0 , s1 , s2 }, I = {a, b, c}, F = {s2 } y diagrama de transicin o

Matemtica Discreta. rea de lgebra Universidade da Corua

a s0 a s1 c

b s2

El autmata nito que acepta el lenguaje L = {00x1 ; x {0, 1}} es o M = (S, I, f, s0 , F ) con S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s3 } y diagrama de transicin o

3.4. EXPRESIONES REGULARES Y CONJUNTOS REGULARES

87

0 0 s0 0 s1 0 s2 1 s3

El autmata nito que acepta el lenguaje o L = {xc3m ; x {a, b} , la cantidad de bs es par y m 0} es M = (S, I, f, s0 , F ) con S = {s0 , s1 , s2 , s3 , s4 }, I = {a, b, c}, F = {s0 , s4 } y diagrama de transicin o

a s0 b b s1 c s2 a c s3 c c s4

Matemtica Discreta. rea de lgebra Universidade da Corua

Es importante sealar que en cada una de las mquinas del ejemplo anten a rior falta determinar el comportamiento del autmata en algunos casos, ser o a suciente aadir un estado auxiliar, no terminal, que ser sumidero para n a aquellas echas que faltan. Nota. Para cada autmata se puede denir una mquina de Moore en o a la cual el conjunto de salidas es O = {0, 1} y un estado es nal si, y slo o si, la salida que tiene asociada es 1. As reconoce una cadena de entradas , si la salida nal es 1. Los autmatas son mquinas de estado nito aceptao a doras (indican si una cadena pertenece o no al lenguaje), mientras que las mquinas de Mealy y de Moore son traductoras o transductoras (devuelven a como resultado a una cadena de entrada una cierta cadena de salida).

3.4.

Expresiones regulares y conjuntos regulares

Dados A y B dos subconjuntos de I , se dene: La concatenacin de A y B, que denotaremos AB, como el conjunto de o todas las cadenas xy siendo x un elemento de A e y un elemento de B. Ak para k 0, siendo A0 = {} y Ak+1 = Ak A. De este modo, se tiene que

A =
k=0

Ak

88

CAP ITULO 3. AUTOMATAS FINITOS A recibe el nombre de cierre o clausura de Kleene de A.

Denicin 57. Dado un alfabeto I, las expresiones regulares sobre I se deo nen por recurrencia del modo siguiente: el s mbolo y el s mbolo son expresiones regulares, el s mbolo x para cada x I es una expresin regular, o si a y b son expresiones regulares sobre I, entonces ab, a b y a son expresiones regulares. Denicin 58. Toda expresin regular sobre I determina un conjunto rego o ular. Los conjuntos regulares sobre I son subconjuntos de I que se denen por recurrencia del modo siguiente: y {} son conjuntos regulares, Para cada x I, {x} es un conjunto regular, Si A y B son conjuntos regulares, AB, A B y A son conjuntos regulares. Los s mbolos y representan al conjunto vac y al conjunto {}, reso pectivamente. Los s mbolos x, donde x I, representan a los conjuntos {x}, donde x I. Si a y b representan a los conjuntos A y B, respectivamente, entonces ab, (a b) y a representan a los conjuntos AB, (A B) y A , respectivamente. Un mismo conjunto regular puede estar representado por distintas expresiones regulares. Por ejemplo, si I = {a, b}, a b y aa b son expresiones regulares y ambas representan al conjunto {an b / n N 0} Ejemplo 53. Los conjuntos regulares denidos por las siguientes expresiones regulares son: para 10 , {1, 10, 100, . . .} = {10n ; n = 0, 1, . . .} para (10) , {, 10, 1010, . . .} = {(10)n ; n = 0, 1, . . .} para 1 0 , {1n 0m ; n, m = 0, 1, . . .} para 0 01, {0, 01} para (0 1) , {cadenas binarias de cualquier longitud} para 0(01) , {cadenas binarias de cualquier longitud que empiezan por 0}

Matemtica Discreta. rea de lgebra Universidade da Corua

3.4. EXPRESIONES REGULARES Y CONJUNTOS REGULARES para (0 1), {1, 01, 001, . . .} = {0n 1 ; n = 0, 1, . . .}

89

para (0 1) , {, 1, 01, 001, . . . , 11, 101, 1001, . . .} = {} {x1; x I }. Teorema 5. El lenguaje L(M) reconocido por un autmata nito M = o (S, I, f, s0 , F ) es un lenguaje regular sobre I. Demostracin. Si M no posee estados nales, L(M) = luego L(M) es o regular. En caso contrario, si F = {s1 , . . . , sk }, se cumple que
k

L(M) =
i=1

{ I / f (s0 , ) = si }

es una unin de conjuntos. Teniendo en cuenta que cada uno de estos cono juntos es regular y que la unin de conjuntos regulares es regular, se obtiene o que L(M) es regular. Teorema 6. Un lenguaje L sobre un alfabeto I es regular si, y slo si, existe o un autmata nito M, con conjunto de entradas I, tal que L = L(M). o Se cumple que un autmata nito reconoce un solo lenguaje, pero un o lenguaje puede ser reconocido por distintos autmatas. o Ejemplo 54. El autmata nito que acepta todas las sucesiones binao rias que terminan con los d gitos 011 es la dada por el diagrama de estados siguiente: L = {x011 / x {0, 1}} (este conjunto regular es el que corresponde a la expresin regular (0 1) 011). o
Matemtica Discreta. rea de lgebra Universidade da Corua

1 s0 0

0 s1 1

0 1 0 s2 1 s3

El autmata nito que acepta todas las sucesiones binarias que tienen o la forma de cualquier cantidad de nmeros 0, seguido por uno o ms u a nmeros 1, seguido por uno o ms nmeros 0, seguidos por un 1, seguiu a u do por cualquier cantidad de nmeros 0, seguido por un 1, y entonces u seguidos por cualquier cosa es: L = {0n 1m 0k 10l 1x / n, l N {0}, m, k N, x {0, 1} }

0 s0 1

1 s1 0

0 s2 1

0 s3 1

0 s4

90

CAP ITULO 3. AUTOMATAS FINITOS

3.5.

Simplicacin de autmatas nitos o o

La simplicacin de un autmata nito M implica la identicacin de o o o estados equivalentes en M de manera que podamos obtener un autmata o con menos estados que acepte el mismo lenguaje. Ejemplo 55. Los autmatas M y M aceptan aquellas cadenas formadas por o un nmero par de 1s. Sin embargo, la estructura de M es ms complicada. u a

0 s0

1 0 s1 1

0 s0 1 0 s3 1 1

0 s1 1 s2 0

Matemtica Discreta. rea de lgebra Universidade da Corua

Denicin 59. Si M = (S, I, f, s0 , F ) es un autmata nito, dos estados o o si , sj S son -equivalentes si para toda cadena x I , se verica que f (si , x) F f (sj , x) F. Esta situacin la denotaremos si R sj e indica que, para cualquier cadena de o entrada, ambos estados son terminales o ninguno de ellos lo es. R es una relacin de equivalencia en el conjunto de estados S. El proceso o para determinar si dos estados si y sj son -equivalentes es muy complejo puesto que requerir analizar innitas cadenas de entrada. En la prctica se a a procede de manera recursiva: Denicin 60. Si M = (S, I, f, s0 , F ) es un autmata nito y k es un o o nmero natural, dos estados si , sj S son k-equivalentes si para toda cadena u x I de longitud menor o igual que k, se verica que f (si , x) F f (sj , x) F.

3.5. SIMPLIFICACION DE AUTOMATAS FINITOS

91

Esta situacin la denotaremos si Rk sj .1 Rk es una relacin de equivalencia o o en el conjunto de estados S y divide al conjunto S en clases de equivalencia (particin). o Para cada k 1, se tiene que si dos estados son k-equivalentes, tambin e son (k 1)-equivalentes. Para cada k 1, un clase de equivalencia de la relacin Rk es un o subconjunto de una clase de equivalencia de la relacin Rk1 . o Dos estados son -equivalentes si, y slo si, son k-equivalentes para o cualquier k 0. Teorema 7. Dos estados si y sj son k-equivalentes si, y slo si, son (k 1)o equivalentes y para cualquier n I se tiene que f (si , n) y f (sj , n) son (k 1)equivalentes. Veamos en un ejemplo cmo se procede de modo recursivo para obtener o estados equivalentes en un autmata. o Ejemplo 56. Consideremos el autmata M cuyo diagrama de estados viene o dado por:

0
Matemtica Discreta. rea de lgebra Universidade da Corua

s0

1 1

s1 1 s4

0 1 0

s2 0

s3

i) Las clases de equivalencia para la relacion R0 son {s0 , s1 , s4 } y {s2 , s3 } ii) Ntese que s0 y s1 no son R1 equivalentes ya que f (s0 , 0) = s0 , f (s1 , 0) = o s2 y s0 y s2 no son 0-equivalentes. Sin embargo f (s4 , 0) = s3 , f (s4 , 1) = s1 y f (s1 , 1) = s4 siendo s1 R1 s4 y s2 R1 s3 . Las clases de equivalencia para R1 son {s0 }, {s1 , s4 } y {s2 , s3 }. iii) Las clases de equivalencia para R2 son {s0 }, {s1 , s4 } y {s2 , s3 }.
1

Dos estados son 0-equivalentes si ambos son terminales o los dos son no terminales.

92

CAP ITULO 3. AUTOMATAS FINITOS

Teorema 8. Dado un autmata M, existe un entero k tal que las relaciones o Rk y Rk+1 son iguales y, en consecuencia, son iguales a la relacin R . Por o lo tanto, los conjuntos cocientes de las tres relaciones coinciden. Ejemplo 57. En el ejemplo 56, se tiene que las clases de equivalencia para R son {s0 }, {s1 , s4 } y {s2 , s3 }. Teorema 9. Dado un autmata M = (S, I, f, s0 , F ), si si R sj entonces o f (si, n) R f (sj , n) para cualquier n I. Demostracin. f (si, n) R f (sj , n) f (f (si, n), x) R0 f (f (sj , n), x), x o I f (si , nx) R0 f (sj , nx), x I si R sj Denicin 61. Dado un autmata nito M = (S, I, f, s0 , F ), el autmata o o o = (S, I, f, s0 , F ), siendo cociente de M es M S el conjunto cociente de S por la relacin de equivalencia R . o F = { ; s F } s s f(, n) = f (s, n), para cada s S y n I. Ejemplo 58. En el ejemplo 56, el autmata cociente tiene como diagrama o de estados:

0
Matemtica Discreta. rea de lgebra Universidade da Corua

1 s0 1 s1

0 s2 1

Vous aimerez peut-être aussi