Está en la página 1de 19

AUTÓMATAS DE ESTADO FINITO

Orlando Arboleda Molina

Escuela de Ingenierı́a de Sistemas y Computación de


La Universidad del Valle

12 de octubre de 2008
Contenido

Autómatas de estado finito


Concatenación de conjuntos de cadenas
Clausura de Kleene
Autómatas de estado finito deterministas
Autómatas de estado finito no deterministas
Una de las aplicaciones más importantes de las máquinas de
estado finito es el reconocimiento de lenguajes (vital para el
diseño y construcción de compiladores).

Entre las máquinas de estado finito diseñadas especialmente


para el reconocimiento de lenguajes, están los autómatas de
estado finito (máquinas de estado finito sin salida).
Contenido

Autómatas de estado finito


Concatenación de conjuntos de cadenas
Clausura de Kleene
Autómatas de estado finito deterministas
Autómatas de estado finito no deterministas
Concatenación de conjuntos de cadenas

Concatenación
Suponga que A y B son subconjuntos de V ∗ , donde V es un
vocabulario. La concatenación de A y B, denotado AB, es el
conjunto de todas las cadenas de la forma xy donde x es una
cadena de A y y es una cadena de B.

Ejemplo1: Sean A = {0, 11} y B = {1, 10, 110}.


AB = {01, 010, 0110, 111, 1110, 11110} y
BA = {10, 111, 100, 1011, 1100, 11011}.
Luego AB 6= BA
Concatenación de conjuntos de cadenas (2)

De la definición de concatenación de 2 conjuntos de cadenas,


podemos definir An , para n = 0, 1, . . . recursivamente como:

A0 = {λ}

An+1 = An A

Ejemplo1: Sean A = {1, 00}


A0 = {λ}
A1 = A0 A = {λ}{1, 00} = {1, 00}
A2 = A1 A = {1, 00}{1, 00} = {11, 100, 001, 0000}
A3 = A2 A = {11, 100, 001, 0000}{1, 00} =
{111, 1100, 100110000, 0011, 00100, 00001, 000000}
Contenido

Autómatas de estado finito


Concatenación de conjuntos de cadenas
Clausura de Kleene
Autómatas de estado finito deterministas
Autómatas de estado finito no deterministas
Clausura de Kleene

(En honor a Stephen Cole Kleene)


Suponga que A es un subconjunto de V ∗ . Entonces la clausura
o cierre de Kleene de A, denotado por A∗ , es el conjunto que
contiene cualquier concatenación de cadenas de A. Es decir:

[

A∗ = Ak
k =0

Ejercicio1: Determinar si la cadena 11101 esta en cada uno de


los siguientes conjuntos
◮ {0, 1}∗
◮ {11}∗ {01}∗
◮ {111}∗ {0}∗ {1}
◮ {111, 000}∗ {00, 01}
Contenido

Autómatas de estado finito


Concatenación de conjuntos de cadenas
Clausura de Kleene
Autómatas de estado finito deterministas
Autómatas de estado finito no deterministas
Autómatas de estado finito deterministas

Un autómata de estado finito determinista M = (S, I, f , s0 , F )


consiste en:
◮ Un conjunto finito de estados S.
◮ Un alfabeto de entrada finito I.
◮ Una función de transición f que asigna a cada pareja de
estado y entrada, un nuevo estado.
◮ Un estado inicial s0 .
◮ Un subconjunto de S con los estado finales denominado
F.

Podemos representar un autómata de estado finito


determinista usando diagramas y/o tablas de estado.
En los diagramas de estado los estados finales son rodeados
por circulos dobles.
Autómatas de estado finito deterministas (2)

Ejercicio1: Construya el diagrama de estados para el autómata


de estados finito determinista M = (S, I, f , s0 , F ) donde
S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s0 , s3 } y la función de
transición es dada en la tabla siguiente:

Figura: Tabla de estados de un autómata


Autómatas de estado finito deterministas (3)

Se dice que una cadena x es reconocida o aceptada por el


autómata de estado finito determinista M = (S, I, f , s0 , F ), si
transforma el estado inicial s0 en algún estado final.

El lenguaje reconocido o aceptado por un autómata de estado


finito M , determinista denotado L(M), es el conjunto de todas
las cadenas que reconocidas por M.

Dos autómatas de estado finito son llamados equivalentes si


reconocen el mismo lenguaje.
Autómatas de estado finito deterministas (4)

Ejercicio1: Determinar el lenguaje reconocido por los


siguientes autómatas de estados finito deterministas
Contenido

Autómatas de estado finito


Concatenación de conjuntos de cadenas
Clausura de Kleene
Autómatas de estado finito deterministas
Autómatas de estado finito no deterministas
Autómatas de estado finito no deterministas

Un autómata de estado finito no determinista


M = (S, I, f , s0 , F ) consiste en:
◮ Un conjunto finito de estados S.
◮ Un alfabeto de entrada finito I.
◮ Una función de transición f que asigna a cada pareja de
estado y entrada, un conjunto de estados.
◮ Un estado inicial s0 .
◮ Un subconjunto de S con los estado finales denominado
F.

Podemos representar un autómata de estado finito no


deterministas usando diagramas y/o tablas de estado.
Autómatas de estado finito no deterministas (2)

Ejercicio1: Construya el diagrama de estados para el autómata


de estados finito no determinista M = (S, I, f , s0 , F ) donde
S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s2 , s3 } y la función de
transición es dada en la tabla siguiente:

Figura: Tabla de estados de un autómata no determinista


Autómatas de estado finito no deterministas (3)

Se dice que una cadena x es reconocida o aceptada por el


autómata de estado finito no determinista M = (S, I, f , s0 , F ), si
hay un estado final en el conjunto de todos los estados que
pueden ser obtenidos desde s0 usando x.

El lenguaje reconocido o aceptado por un autómata de estado


finito no determinista M , denotado L(M), es el conjunto de
todas las cadenas que reconocidas por M.
Autómatas de estado finito no deterministas (4)

Ejercicio1: Determinar el lenguaje reconocido en los siguientes


casos
1. F = {s0 , s4 }

2. F = {s0 , s2 }
Autómatas de estado finito

Teorema 1
Si el lenguaje L es reconocido por un autómata de estado finito
no determinista M0 , entonces L también es reconocido por un
autámata de estado finito determinista M1 .

Idea: crear estados por cada conjunto de estados resultantes


desde uno en particular. Incluyendo al conjunto vacı́o. Para el
cual debe añadirse las aristas 0, 1.

También podría gustarte