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

34
Máquina de estado finito con salida sin salida

Upload: others

Post on 29-Dec-2019

15 views

Category:

Documents


1 download

TRANSCRIPT

  • 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