máquina de estado finito con salida sin salida - …mtovar/doc/matdisc/maquinaestadofinito.pdf ·...

34
Máquina de estado finito con salida sin salida

Upload: vokhanh

Post on 22-Sep-2018

260 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Máquina de estado finito

con salida

sin salida

Page 2: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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

Page 3: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Máquinas de estado finito con salida

Ejemplo, máquina vendedora de jugo de naranja y

manzana, costo $30. Recibe: 5, 10, 25.

Page 4: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Tabla de estados para una máquina

vendedora

Page 5: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 6: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejemplo

Page 7: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejercicio

Construye el grafo de estados de la

siguiente tabla:

Page 8: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

Ejercicio:

Encuentra la cadena de salida que produce la máquina de estado de la cadena de entrada 101011

Page 9: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

Page 10: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 11: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

Page 12: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 13: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 14: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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 ).

Page 15: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

Page 16: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 17: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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}

Page 18: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Definición An

n= 0, 1, 2, …

A0 = {λ}

An+1 = AnA, para n=0, 1, 2, …

Page 19: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejercicio

Sea A={1,00}. Encuentra An para n=0, 1,

2, 3.

Page 20: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

A0={λ}

A1 = A0A = {λ}A = {1, 00}

A2 = {11,100,001,0000}

A3={111,1100,1001,10000,0011,00100,00

001,000000}.

Page 21: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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,

Page 22: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejercicio

¿Cuál es la Cerradura de Kleene de los

conjuntos A={0}, B={0,1}, y C={11}?

Page 23: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

A* = {0n | n=0, 1, 2, …}

B*={0,1}*

C*={12n | n=0, 1, 2, …}

Page 24: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 25: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejemplo

Page 26: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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:

Page 27: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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.

Page 28: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejemplo

Determina el lenguaje que reconoce el

autómata M1.

Page 29: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución

M1 = {1n | n=0, 1, 2, …}

Page 30: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejercicio

Page 31: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

L(M2) = {1, 01}

L(M3) = {0n, 0n10x | n=0, 1, 2, …, y x es

cualquier cadena}

Page 32: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Ejemplo

Diseña un AFD que reconozca el

conjunto de cadenas de bits que inician

con dos 0’s.

Page 33: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

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

Page 34: Máquina de estado finito con salida sin salida - …mtovar/doc/MatDisc/MaquinaEstadoFinito.pdf · Máquina de estado finito ... introducido por G. H. Mealy en 1955. Las máquinas

Solución