Maquinas de Estado Finito 6/11 - Facultad de Ciencias de la

Anuncio
Máquina de estado finito
con salida
sin salida
Máquina de estado finito
 Máquinas de estados finitos se utilizan
ampliamente en aplicaciones en ciencias de la
computación y redes de datos.
 Por ejemplo, las máquinas de estados finitos
son la base para los programas de corrección
ortográfica, la comprobación de la gramática, la
indexación o la búsqueda de grandes
volúmenes de texto, reconocimiento de voz, la
transformación de texto utilizando lenguajes de
marcado como XML y HTML, y los protocolos de
red que especifican cómo las computadoras se
comunican
Máquinas de estado finito con salida
 Ejemplo, máquina vendedora de jugo de naranja y
manzana, costo $30. Recibe: 5, 10, 25.
Tabla de estados para una máquina
vendedora
Definición
Una máquina de estado finito M = (S, I, O,
f, g, so) consiste de un conjunto finito de
estados, un alfabeto finito de entrada I, un
alfabeto finito de salida O, una función de
transición f que asigna a cada par de
estados y entrada un nuevo estado, una
función de salida g que asigna a cada par
de estados y entrada una salida, y un
estado inicial so.
Ejemplo
Ejercicio
Construye el grafo de estados de la
siguiente tabla:
Solución
 Ejercicio:
 Encuentra la cadena de salida que produce la máquina
de estado de la cadena de entrada 101011
Solución
Ejercicio
En un cierto esquema de código, cuando
tres consecutivos 1’s aparecen en un
mensaje, el recibidor del mensaje sabe
que hay un error en la transmisión.
Construye una máquina de estado finito
que da un 1 como salida actual si y sólo sí
los últimos tres bits recibidos son 1’s.
Solución
Definición
Sea M= (S, I, O, f, g, so) una máquina de
estado finito y L I*. Decimos que M
reconoce (o acepta) L si una cadena de
entrada x pertenece a L si y sólo sí el bit
de la ultima salida producida por M
(cuando x es dada como entrada ) es un
1.
Tipos de máquinas de estado finito
Las máquinas vistas son llamadas
máquinas de Mealy, porque fue
introducido por G. H. Mealy en 1955.
Las máquinas de estado finito sin salida, o
autómatas de estado finito, tienen un
conjunto de estados finales y reconocen
una cadena si y solo sí esta se produce
desde el estado inicial hasta el estado
final.
Ejercicio
 Produce una máquina de estado finito que sume
dos enteros positivos usando su expansión
binaria.
 Nota: como las entradas son pares de bits, hay
cuatro posibles entradas:
00 si ambos números tienen 0, la salida es 0
01 si el primero es 0 y el segundo es 1, la salida es 1
10 si el primero es 1 y el segundo es 0, la salida es 1
11 si ambos son 1’s, la salida es 0 y se acumula el
acarreo en el siguiente (1 se suma a los siguientes
pares de números ).
Solución
Máquinas de estado finito sin salida
Una de las aplicaciones más importantes
de las máquinas de estado finito es en
reconocimiento de lenguajes.
Esto es importante en el diseño y
construcción de compiladores para
lenguajes de programación.
Cadenas
 Suponga que A y B son subconjuntos de V*,
donde V es un vocabulario. La concatenación
de A y B, denotada por AB, es el conjunto de
todas las cadenas de la forma xy, donde x es
una cadena en A y y es una cadena en B.
 Ejemplo:
Sea A={0,11} y B={1,10,110}. Encontrar AB y BA.
AB={01,010,0110, 111, 1110, 11110}
BA={10,111,100,1011,1100,11011}
Definición An
n= 0, 1, 2, …
A0 = {λ}
An+1 = AnA, para n=0, 1, 2, …
Ejercicio
Sea A={1,00}. Encuentra An para n=0, 1,
2, 3.
Solución
A0={λ}
A1 = A0A = {λ}A = {1, 00}
A2 = {11,100,001,0000}
A3={111,1100,1001,10000,0011,00100,00
001,000000}.
Definición
Suponga que A es un subconjunto de V*.
Entonces la cerradura de Kleene de A,
denotado por A*, es el conjunto que
consiste de concatenación de muchas
cadenas arbitrarias de A. Es decir,
Ejercicio
¿Cuál es la Cerradura de Kleene de los
conjuntos A={0}, B={0,1}, y C={11}?
Solución
A* = {0n | n=0, 1, 2, …}
B*={0,1}*
C*={12n | n=0, 1, 2, …}
Autómata de estado finito
Un autómata de estado finito M = (S, I, f,
so, F) consiste de un conjunto finito de
estados S, un alfabeto de entrada I, una
función de transición f que asigna una
estado siguiente a cada par de estados y
entrada (así que f: S X I → S), un estado
inicial so, y un subconjunto F de S que
consiste de estados finales o de
aceptación.
Ejemplo
Extensión de la función de transición
 La función de transición f de una máquina de
estado finito M=(S, I , f, so, F) puede extenderse
a pares formados por estados y cadenas, es
decir, f: S X I* → S.
 Sea x= x1x2…xk una cadena en I*. Entonces f(s1,
x) es el estado obtenido al usar cada símbolo de
x, de izquierda a derecha, como entrada, etc. La
función f se define recursivamente por:
Definición
Una cadena x se dice ser reconocida o
aceptada por el autómata M, si esta toma
el estado inicial a un estado final, es decir,
f(so, x) es un estado en F. El lenguaje L
es el conjunto de todas las cadenas que
son aceptadas por M.
Ejemplo
Determina el lenguaje que reconoce el
autómata M1.
Solución
M1 = {1n | n=0, 1, 2, …}
Ejercicio
L(M2) = {1, 01}
L(M3) = {0n, 0n10x | n=0, 1, 2, …, y x es
cualquier cadena}
Ejemplo
Diseña un AFD que reconozca el
conjunto de cadenas de bits que inician
con dos 0’s.
Ejercicios
(b) el conjunto de cadenas de bits que
contienen dos 0’s consecutivos.
(c) el conjunto de cadenas que no
contienen dos consecutivos 0’s
(d) el conjunto de cadenas de bits que
terminan con dos 0’s.
(e) El conjunto de cadenas de bits con al
menos dos 0’s
Solución
Descargar