unidad 1 automatas finitos deterministas

7
22/08/2012 1 70 1. AUTOMATAS FINITOS 71 1. Autómatas Finitos Objetivo: Construir Autómatas Finitos (AF) para el reconocimiento y análisis de los Lenguajes Regulares. 1.1 Máquinas Abstractas. 1.2 Máquinas de Estados Finitos. 1.3 Autómatas Finitos Determinísticos (AFD). 1.4 Autómatas Finitos No Determinísticos (AFND). 1.5 Equivalencias de AFD y AFND. 72 1.1 Máquinas Abstractas Diseño de una Máquina (Física o Mecánica). El modelado de una máquina en lo relacionado con secuencias o ciclos de acciones. Las máquinas que estudiaremos son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren, sin tomar en cuenta ni la forma de la máquina ni sus dimensiones, ni tampoco si efectúa movimientos rectos o curvos, etc. 73 Modelado de Sistemas Discretos El modelado de fenómenos y procesos es una actividad que permite: Verificar hipótesis sobre dichos procesos; Efectuar predicciones sobre el comportamiento futuro; Hacer simulaciones (eventualmente computarizadas); Hacer experimentos del tipo “¿qué pasaría si. . . ?”, sin tener que actuar sobre el proceso o fenómeno físico. Llamamos eventos discretos a aquéllos en los que se considera su estado sólo en ciertos momentos, separados por intervalos de tiempo, sin importar lo que ocurre en el sistema entre estos momentos. 74 Modelado de Sistemas Discretos. La noción más básica de los modelos de eventos discretos es la de estado. Un estado es una situación en la que se permanece un cierto lapso de tiempo. También consideramos transiciones entre los estados, que son enlaces que permitan el cambio entre estados. De manera gráfica un estado se representa por medio de un óvalo y una transición con una fecha uniendo dos estados. Todo modelo deberá contemplar un estado inicial y estados finales. 75 Modelo de estados civiles de una persona.

Upload: eduardo-cano-vela

Post on 31-Jul-2015

263 views

Category:

Documents


5 download

DESCRIPTION

automatas finitos deterministas

TRANSCRIPT

Page 1: Unidad 1 Automatas Finitos Deterministas

22/08/2012

1

70

1. AUTOMATAS FINITOS

71

1. Autómatas Finitos

Objetivo: Construir Autómatas Finitos (AF) para el reconocimiento y análisis de los Lenguajes Regulares.

1.1 Máquinas Abstractas.

1.2 Máquinas de Estados Finitos.

1.3 Autómatas Finitos Determinísticos (AFD).

1.4 Autómatas Finitos No Determinísticos (AFND).

1.5 Equivalencias de AFD y AFND.

72

1.1 Máquinas Abstractas

Diseño de una Máquina (Física o Mecánica).

El modelado de una máquina en lo relacionado con secuencias o ciclos de acciones.

Las máquinas que estudiaremos son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren, sin tomar en cuenta ni la forma de la máquina ni sus dimensiones, ni tampoco si efectúa movimientos rectos o curvos, etc.

73

Modelado de Sistemas Discretos

El modelado de fenómenos y procesos es una actividad que permite:

Verificar hipótesis sobre dichos procesos;

Efectuar predicciones sobre el comportamiento futuro;

Hacer simulaciones (eventualmente computarizadas);

Hacer experimentos del tipo “¿qué pasaría si. . . ?”, sin

tener que actuar sobre el proceso o fenómeno físico.

Llamamos eventos discretos a aquéllos en los que se considera su estado sólo en ciertos momentos, separados por intervalos de tiempo, sin importar lo que ocurre en el sistema entre estos momentos.

74

Modelado de Sistemas Discretos.

La noción más básica de los modelos de eventos discretos es la de estado. Un estado es una situación en la que se permanece un cierto lapso de tiempo.

También consideramos transiciones entre los

estados, que son enlaces que permitan el cambio entre estados.

De manera gráfica un estado se representa por medio de un óvalo y una transición con una fecha uniendo dos estados.

Todo modelo deberá contemplar un estado inicial y estados finales.

75

Modelo de estados civiles de una persona.

Page 2: Unidad 1 Automatas Finitos Deterministas

22/08/2012

2

76

La elaboración de modelos “adecuados” de un proceso real es un arte:

Diferenciar la duración de los eventos (instantáneos y de

duración considerable)

Condiciones asociadas excluyentes

Condiciones comprensivas (cubren todos los casos

posibles)

Eventos instantáneos asociados a los cambios de estado (transiciones).

77

Errores al modelar

Errores más frecuentes al crear modelos:

Confundir estados con eventos.

Proponer conjuntos de estados no excluyentes.

Proponer conjuntos de estados no compresivos.

78

1.2 Modelado de Estados Finitos

El propósito de algunos modelos de estados y eventos es el de reconocer secuencias de eventos “buenos” de los “malos”.

Supóngase que se desea modelar el comportamiento de una máquina de refrescos, que acepta monedas de 1, 2 y 5 y el precio de la lata es de 5 pesos. Se considera que puede dar cambio.

¿Cuáles son los estados? ¿cuáles las transiciones?

79

Modelo de una máquina de refrescos.

80

Estados dentro de una máquina: Estado Inicial.

Transiciones: Eventos que producen el cambio de estado.

Estado final: identifica el fin del proceso que se esta modelando. Puede no ser único.

q0 q1

Estado Inicial Transición Estado Final

1

81

Notación Gráfica.

Page 3: Unidad 1 Automatas Finitos Deterministas

22/08/2012

3

82

Modelado del funcionamiento de una máquina expendedora de refrescos.

Modelado del procedimiento para cambiar una llanta ponchada.

83

Ejercicios

Modelar el siguiente problema:

En la orilla izquierda de un río se encuentra un hombre,

junto a un lobo, una gallina y un saco de maíz. Hay un

bote con la capacidad suficiente para llevar al hombre y a uno de los otros tres. Si el hombre lleva el saco de maíz,

el lobo puede comerse a la gallina. Si el hombre se lleva

al lobo, la gallina puede comerse el maíz. ¿Es posible que se pueda cruzar el río sin que nada sea comido por

alguno?

84

Autómata Finito

Es un modelo matemático de un sistema, con entradas y salidas discretas. El sistema puede estar en cualquiera de un número finito de configuraciones o “estados”. [Hopcroft, 98]

Un autómata finito consiste en un conjunto finito de estados y un conjunto de transiciones de estado a estado, que se dan sobre símbolos de entrada tomadas de un alfabeto Σ. [Hopcroft, 98]

85

Un autómata finito o máquina de estado finito es una herramienta abstracta que se utiliza para reconocer un determinado lenguaje regular, es un modelo matemático de un sistema que recibe una cadena constituida por caracteres de cierto alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce.

Un autómata finito se encuentra en un estado denominado Estado Inicial que tiene la característica de ser único y uno o varios Estados finales que no siempre coincide con el último estado del autómata. Si el estado inicial coincide con el final entonces el lenguaje reconocido será aquel que está formado sólo por la palabra nula. [http://es.wikipedia.org/]

86

Funcionamiento de los autómatas finitos

El funcionamiento de los autómatas finitos consiste en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de la palabra de entrada. Este proceso puede ser seguido fácilmente en los diagramas de estados.

Simplemente hay que pasar de estado a estado siguiendo las flechas de las transiciones, para cada carácter de la palabra de entrada, empezando por el estado inicial.

87

Diagrama de Transiciones

Page 4: Unidad 1 Automatas Finitos Deterministas

22/08/2012

4

88

Definición Formal de Autómatas.

Definición.- Una máquina de estados finitos M es un quíntuplo (K,Σ, δ, s, F), donde:

K es un conjunto de identificadores (símbolos) de

estados;

∑ es el alfabeto de entrada;

s K; es el estado inicial;

F K es un conjunto de estados finales;

δ : K × ∑ K es la función de transición, que a partir de

un estado y un símbolo del alfabeto obtiene un nuevo estado.

89

El autómata finito de la figura está definido por el quíntuplo (K,Σ, δ, s, F), donde:

K = {q0, q1, q2};

∑ = {a,b};

s = q0 ;

F = {q1, q2};

δ = { ((q0, a), q1), ((q0, b), q2), ((q1, a), q1), ((q1, b), q1),

((q2, a), q0), ((q2, b), q2)}

90

Ejercicio. Para el siguiente diagrama de transiciones establecer la quíntupla que lo define.

91

1.3 Autómata Finito Determinístico.

La función de transición indica a qué estado se va a pasar sabiendo cuál es el estado actual y el símbolo que se está leyendo. Es importante notar que es una función y no simplemente una relación; esto implica que para un estado y un símbolo del alfabeto dados, habrá un y sólo un estado siguiente.

Esta característica, que permite saber siempre cuál será el siguiente estado, se llama determinismo.

92

Formas de Representación de un AFD

Tabla de transiciones Diagrama de transiciones

a

a

b

b

a, b

q

0

q

1

q

2

a b q0 q1 q2

q1 q2 q0

q2 q2 q2

A = ({q0 , q1 , q2}, {a, b}, , q0 , {q1})

con: (q0 ,a) = q1, (q0 , b) = q2 , (q1 ,a) = q2, (q1 ,b) = q0 ,

(q2,a) = q2, (q2,b) = q2

Lenguaje aceptado: L(A) = {x *: (q0 , x) F }

93

Tabla de Transiciones.

Cómo se construye la tabla de transiciones.?

a b q0 q1

q2

q1 q2

q0

q2 q2

q2

Estados

Símbolos de Transición

Estado de Transición.

Page 5: Unidad 1 Automatas Finitos Deterministas

22/08/2012

5

94

Palabras aceptadas.

Decimos que un (Autómata Finito Determinístico) AFD reconoce o acepta una palabra si se cumplen las siguientes condiciones:

Se consumen todos los caracteres de dicha palabra de

entrada, siguiendo las transiciones y pasando en

consecuencia de un estado a otro;

Al terminarse la palabra, el estado al que llega es uno de los estados finales del autómata (los que tienen doble

círculo en los diagramas, o que son parte del conjunto F

en la representación formal).

95

Formalización del Funcionamiento de los AFD.

Definición. Se entiende por configuración al estado que guarda un autómata en algún momento dado. Dado un fragmento de la cadena saber cuál es su estado actual.

Configuración.

(q1, abab).

[[q1, abab]]

96

Relación entre configuraciones.

Vamos a definir una relación entre configuraciones, C1├M C2, que significa que de la configuración C1 la maquina M puede pasar en un paso a la configuración C2. Definimos formalmente esta noción:

Definición.- [[q1, w]] ├M [[q2,w]] para un ∈ ∑ si y sólo si existe una transición en M tal que (q1, ) = q2. ( es el caracter que se leyó).

La cerradura reflexiva y transitiva de la relación ├ M es denotada por ├ *M. Así, la expresión C1 ├*M C2 indica que de la configuración C1 se puede pasar a C2 en algún número de pasos (que puede ser cero, si C1 = C2). Ahora ya tenemos los conceptos necesarios para definir cuando una palabra es aceptada.

Definición.- Una palabra w ∑ es aceptada por una máquina M=(K, , , s, F) ssi existe un estado q F tal que [[s,w]] ├M [[q, ]]. Nótese que no basta con que se llegue a un estado final q, sino que además ya no

deben quedar caracteres por leer (lo que falta por leer es la palabra vacía).

97

Definición.- Un cálculo en una máquina M es una secuencia de configuraciones C1, C2,. . . , Cn, tales que Ci ├ Ci+1. Generalmente escribimos los cálculos como C1 ├ M C2 ├ M. . . ├ M Cn.

Teorema.- Dados una palabra w ∑* y una máquina M = (K, , , s, F), sólo hay un cálculo [[s,w]] ├ M . . . ├ M [[q,]]. (Probar)

98

Métodos de Diseño de AFDs.

Considérese el problema de construir un AFD que acepte exactamente un lenguaje dado. Este problema es comúnmente llamado “problema de diseño”.

“Ensayo y error”

Mas aún, hay dos maneras de equivocarse al diseñar un AFD: 1. Que “sobren palabras”, esto es, que el autómata acepte

algunas palabras que no debería aceptar. En este caso decimos que la solución es incorrecta.

2. Que “falten palabras”, esto es, que haya palabras en el lenguaje considerado que no son aceptadas por el AFD, cuando deberían serlo. En este caso decimos que la solución es incompleta.

99

Diseñar un AFD que acepte las palabras del alfabeto {a,b} en que la cantidad de a’s sea impar.

Consideraciones:

No importa b.

Dos estados subsecuentes:

El número de a’s es par.

El número de a’s es impar.

Page 6: Unidad 1 Automatas Finitos Deterministas

22/08/2012

6

100

AFD que acepte las palabras del alfabeto {a,b} en que la cantidad de a’s sea impar.

q1 q0

b a

a

b

101

Diseño de AFDs.

Diseñar un AFD que acepte exactamente el lenguaje en el alfabeto {0,1} en las palabras que no comienzan con 00.

Consideraciones:

No se han recibido caracteres

Se ha recibido un cero al inicio

Se han recibido dos ceros iniciales

Se recibió algo que no son dos ceros iniciales

102

103

Diseño por conjuntos de estados.

Es posible llevar un paso mas allá el método de asociar una

condición a cada estado: vamos a asociar condiciones a grupos de estados mas que a estados individuales. De esta

manera aumentaremos el grado de abstracción en la etapa

inicial de diseño, haciendo posible en consecuencia atacar problemas mas complejos con menos posibilidades de

equivocarse.

Este método consiste en identificar inicialmente condiciones asociadas al enunciado del problema, aunque éstas no sean suficientemente específicas para asociarse a estados

individuales.

104

Diseñar un AFD que acepte las palabras del lenguaje en {0, 1} donde las palabras no contienen la subcadena 11 pero si 00.

Condiciones:

Las letras consumidas hasta el momento no contienen ni

00 ni 11.

Contienen 00 pero no 11

Contienen 11.

105

Ni 00 ni 11

11

0

1

1

00 pero no 11

1. Se acaba de recibir un 0

2. Se acaba de recibir un 1

1. Se acaba de recibir un 0

2. Se acaba de recibir un 1

No hay subcondiciones

Page 7: Unidad 1 Automatas Finitos Deterministas

22/08/2012

7

106

C A

0 B

1

1

0

D E 0

0

0

1

F

1

0,1

1