Tabla De Transicion

14
Autómatas y Lenguajes - Año 2007 Teor´ ıa 2: Aut ´ omatas Finitos Departamento de Inform ´ atica Facultad de Cs. Fco. Matem ´ aticas y Naturales Universidad Nacional de San Luis San Luis - Argentina Aut ´ omatas y Lenguajes - A˜ no 2007– p.1/28 Autómata Finito Intuitivamente, como dispositivo reconocedor, un AF es una máquina abstracta con entradas y salidas discretas. Este tipo de máquina puede estar en uno de un número finito de estados internos. Dicho estado sumariza la información en relación a entradas previas que se necesitan para determinar el comportamiento del AF para la entrada remanente. . . . q q 0 q q q q 1 2 3 4 5 UC Cinta (finita) Cabeza Lectora (Mov. implicito a derecha) Aut ´ omatas y Lenguajes - A˜ no 2007– p.2/28

description

Ejemplo de tablas de transiciones en matematicas discretas.

Transcript of Tabla De Transicion

Page 1: Tabla De Transicion

Autómatas y Lenguajes - Año 2007

Teorıa 2: Automatas Finitos

Departamento de Informatica

Facultad de Cs. Fco. Matematicas y Naturales

Universidad Nacional de San Luis

San Luis - Argentina

Automatas y Lenguajes - Ano 2007– p.1/28

Autómata Finito

Intuitivamente, como dispositivo reconocedor, un AF es una máquina abstracta con entradas y salidas

discretas. Este tipo de máquina puede estar en uno de un número finito de estados internos. Dicho

estado sumariza la información en relación a entradas previas que se necesitan para determinar el

comportamiento del AF para la entrada remanente.

. . .

qq0 q

qq

q

1

23

4

5

UC

Cinta (finita)

Cabeza Lectora (Mov. implicito a derecha)

Automatas y Lenguajes - Ano 2007– p.2/28

Page 2: Tabla De Transicion

Ejemplo

Analizaremos un ejemplo de un problema de la vida real cuya solución puede ser dada usando un

autómata finito: que ocurre en el proceso de login a una computadora, desde el punto de vista de la

computadora. Asumiendo por simplicidad que esta computadora acepta un único usuario a la vez.

Inicialmente la computadora espera a que se tipee un nombre de usuario. Cuando se ingresa un nombre,

verifica si el nombre es correcto o no. Si es válido, espera la contraseña. Si el nombre de usuario no es

válido permanece en el estado inicial. Cuando una contarseña es escrita y es correcta, entonces acepta

al usuario y comienza la sesión. Cuando la sesión termina emite una señal, retorna al estado inicial y

espera por otro login. Si el password fue incorrecto, informa al usuario y espera uno correcto. Si el

segundo password falla, vuelve al estado inicial y comienza de nuevo.

Automatas y Lenguajes - Ano 2007– p.3/28

Ejemplo (Cont.)

Pensemos, sin tener todavía la definición formal de AF, como modelar el problema propuesto:

1 2 3

4

uifs

uc pc

pi

pcpi

ui: usuario incorrectouc: usuario correctopi: password incorrectopc: password correctofs: fin de sesion´

1: espera usuario2: espera password3: comienza sesion4: espera password

´

Automatas y Lenguajes - Ano 2007– p.4/28

Page 3: Tabla De Transicion

Autómata Finito Determinístico (AFD)

Damos ahora la noción formal de autómata finito, en particular la de autómata finito determinístico, el

término determinístico se refiere al hecho de que desde cada entrada hay uno y sólo un estado al cual el

autómata puede pasar desde el estado corriente.

Definición formal: Un AF Determinístico (AFD) es una 5-tupla M = (Q, Σ, δ, q0, F ), donde Q es un

conjunto finito de estados, Σ el alfabeto de entrada, q0 ∈ Q el estado inicial, F ⊆ Q es el conjunto de

estados finales. La función de transición, δ : Q × Σ → Q, es una función total .

La función de transición toma como argumento un estado y un símbolo de la entrada y retorna un estado.

En la representación que utilizamos en el ejemplo, δ fue representada por arcos entre los estados y los

rótulos sobre los arcos.

Automatas y Lenguajes - Ano 2007– p.5/28

Notación

La especficación de un AFD como una 5-tupla con una descripción detallada de la función de transición δ

es bastante tediosa, por lo tanto hay dos notaciones utilizadas para describir autómatas:

Un diagrama de transición.

Una tabla de transición.

Veamos un ejemplo, construyamos un AFD que reconoce el siguiente lenguaje, usando diagrama de

transición y tabla de transición:

L = {x ∈ {0, 1}∗|n0(x) es par y mayor que 0}

Automatas y Lenguajes - Ano 2007– p.6/28

Page 4: Tabla De Transicion

q0

q q1 2

1

0

11

0

0

0 1

→ q0 q1 q0

q1 q2 q1

∗q2 q1 q2

Autómata Finito Determinístico y Tabla de Transición

Automatas y Lenguajes - Ano 2007– p.7/28

Lenguaje aceptado por un AFD

Informalmente podemos decir que un AFD define un lenguaje: el conjunto de todas las cadenas que se

pueden obtener partiendo del estado incial y arribando a un estado final.

Pero necesitamos precisar la noción de lenguaje aceptado por un AFD, para ello es necesario extender la

función de transición a la que llamaremos δ. Dicha función toma como argumentos un estado y una

cadena y da como resultado un estado: δ : Q × Σ∗ → Q.

Definición recursiva:

1. δ(q, λ) = q

2. δ(q, w) = δ(δ(q, x), σ) con σ ∈ Σ y x ∈ Σ∗ y w = xσ

Luego, una cadena w es aceptada por un AFD M = (Q, Σ, δ, q0, F ) si δ(q0, w) ∈ F , y se consumió

toda la cadena.

En consecuencia, el lenguaje aceptado por M es L(M) = {w ∈ Σ∗|δ(q0, w) ∈ F}.

La familia de lenguajes aceptados por AFs son los lenguajes Tipo 3 o Regulares .

Automatas y Lenguajes - Ano 2007– p.8/28

Page 5: Tabla De Transicion

Apliquemos la definición de δ para determinar si 100001 es aceptada por el autómata del ejemplo

anterior:

δ(q0, λ) = q0

δ(q0, 1) = δ(δ(q0, λ), 1) = q0

δ(q0, 10) = δ(δ(q0, 1), 0) = q1

δ(q0, 100) = δ(δ(q0, 10), 0) = q2

δ(q0, 1000) = δ(δ(q0, 100), 0) = q1

δ(q0, 10000) = δ(δ(q0, 1000), 0) = q2

δ(q0, 100001) = δ(δ(q0, 10000), 1) = q2

Como partimos de q0 y llegamos al estado final q2, la cadena es aceptada.

Automatas y Lenguajes - Ano 2007– p.9/28

Autómata Finito No Determinístico (AFND)

Un autómata finito no determinístico tiene la potencia de estar en varios estados a la vez. Esta habilidad

es expresada generalmente como una habilidad de adivinar algo sobre la entrada. Por ejemplo cuando el

autómata es usado para buscar cierta secuencia de caracteres (por ejemplo: palabras claves) en un texto

grande, es útil adivinar que está al comienzo de uno de aquellas cadenas y usar ciertos estados que no

hacen nada más que chequear que la cadena aparezca caracter a caracter.

Sin embargo, los AFND’s son simplemente otra versión de AF’s que no agregan potencia a los AFD’s,

dado que los mismos aceptan lenguajes regulares.

Pero en general los AFND’s permiten simplificar la tarea de diseño de un AF, y probablemente usar

menos estados y transiciones para reconocer algún lenguaje particular.

Automatas y Lenguajes - Ano 2007– p.10/28

Page 6: Tabla De Transicion

Al igual que un AFD, un AFND tiene un conjunto finito de estados, un conjunto finito de símbolos, un

estado de comienzo y un conjunto de estados de aceptación.

También tiene una función de transición, la cual llamamos δ. Pero la diferencia radica precisamente en el

tipo de δ, para el AFND esta función toma un estado y un símbolo de entrada como argumentos, pero

retorna un conjunto de cero, uno o más estados.

El concepto de no determinismo juega un rol central en teoría de lenguajes y computación.

Veamos a continuación un ejemplo y luego daremos las formalizaciones necesarias.

Automatas y Lenguajes - Ano 2007– p.11/28

Ejemplo

El siguiente ejemplo muestra dos autómatas que reconocen el lenguaje

{11, 110}∗{0}. El primero, con 6 estados es un AFD; mientras que el segundo es un AFND con 5

estados y 6 transiciones que refleja más claramente el lenguaje reconocido.

q q0

0

0

0

0,1 1

0,1

111

q0

qq

q1 2 3

4 5

q q0

0

qq

1

11

q1

0

2 3

4

1

AFs Determinístico y NO-Determinístico que reconocen el lenguaje dado.

Automatas y Lenguajes - Ano 2007– p.12/28

Page 7: Tabla De Transicion

Veamos ahora que ocurre cuando queremos ver, en el AFND del ejemplo, si la cadena 111100 es

aceptada:

q q q

q q q q q

0q

0 1

22 3 0 4

q3

0q q

41 1 1 1 0

1

1

11 0 0

1

De cada estado se disparan todas las posibles transiciones. Por lo tanto para determinar si una cadena

es válida o no es necesario recorrer todos los caminos.

Automatas y Lenguajes - Ano 2007– p.13/28

Formalización de AFND’s

Definición formal: Un AF No Determinístico (AFND) es una 5-tupla M = (Q, Σ, δ, q0, F ), donde Q es un

conjunto finito de estados, Σ el alfabeto de entrada, q0 ∈ Q el estado inicial, F ⊆ Q es el conjunto de

estados finales. La función de transición, (δ : Q × Σ → 2Q).

Para el ejemplo dado definamos con una tabla de transición la función δ:

0 1

→ q0 {q4} {q1, q2}

q1 ∅ {q0}

q2 ∅ {q3}

q3 {q0} ∅

∗q4 ∅ ∅

Automatas y Lenguajes - Ano 2007– p.14/28

Page 8: Tabla De Transicion

Lenguaje aceptado por AFND’s

Como con AFD’s, es necesario extender la función de transición, a la que llamaremos δ. Dicha función

toma como argumentos un estado q y una cadena w y retorna como resultado el conjunto de estados en

el que el AFND está si comienza en el estado q y procesa la cadena w:

Definición recursiva:

1. δ(q, λ) = {q}

2. δ(q, w) = {r1, r2, .., rm}, w = xσ, δ(q, x) = {p1, p2, .., pk}

y ∪ki=1

δ(pi, σ) = {r1, r2, .., rm}

Lenguaje aceptado por un AFND

Si M es un AFND, luego L(M) = {w ∈ Σ∗|δ(q0, w) ∩ F 6= ∅}, y se consumió toda la cadena.

Automatas y Lenguajes - Ano 2007– p.15/28

Equivalencia entre AFD’s y AFND’s

La prueba de que a partir de cualquier AFND se puede obtener un AFD equivalente, involucra una

importante construcción llamada constucción del subconjunto, la cual implica construir todos los

subconjuntos del conjunto de estados del AFND.

En general muchas pruebas sobre autómatas involucran construir un autómata a partir de otro.

La construcción del subconjunto comienza a partir de un AFND N = (QN , Σ, δN , q0, FN ). El objetivo

es construir un AFD D = (QD, Σ, δD, {q0}, FD) tal que L(D) = L(N).

QD es el conjunto de subconjuntos de QN , es decir es el conjunto potencia de QN .

FD es el conjunto de subconjuntos S de QN tal que S ∩ FN 6= ∅

Para cada conjunto S ⊆ QN y para cada símbolo de entrada a ∈ Σ: δD(S, a) = ∪p∈SδN (p, a)

Automatas y Lenguajes - Ano 2007– p.16/28

Page 9: Tabla De Transicion

Ejemplo

Veamos ahora con un ejemplo como realizar la construcción del subconjunto, dado el siguiente AFND:

0

1

a

a

a

a

a

ba

bq

q

q

q

2

3

Automatas y Lenguajes - Ano 2007– p.17/28

Ejemplo (Cont.)

1. Hallamos primero QD .

2. Luego FD .

3. Y por último δD .

El autómata resultante es:

{q }

{q , q }

{q , q }

{ }

0

1 2

1 3

a

bb

a

b

a

Automatas y Lenguajes - Ano 2007– p.18/28

Page 10: Tabla De Transicion

Formalizacion equivalencia AFND - AFD

Teorema:

Si D = (QD , Σ, δD, {q0}, FD) es el AFD construído a partir del AFND N = (QN , Σ, δN , q0, FN ) por

la construcción del subconjunto, entonces L(D) = L(N).

Demostración:

Lo que debemos probar es que δD({q0}, w) = δN (q0, w), lo haremos por inducción sobre |w|.

Notar que cada una de las funciones δ retorna un conjunto de estados desde QN , pero δD interpreta

este conjunto como uno de los estados de QD (el cual es el conjunto potencia de QN ), mientras δN

interpreta este conjunto como un subconjunto de QN .

Base:

Sea |w| = 0, esto es w = λ. Por las definiciones básicas de δ para AFD’s y AFND’s, ambas δD({q0}, λ)

y δN (q0, λ) son q0.

Automatas y Lenguajes - Ano 2007– p.19/28

Inducción:

Sea w de longitud n + 1, asumamos que la sentencia se cumple para longitud n. Tomemos w = xa, con

a el símbolo final de w. Por la hipótesis inductiva δD({qo}, x) = δN (q0, x). Sean ambos de estos

conjuntos de estados de N , {p1, p2, ..pk}.

La parte inductiva de la definición de δ para AFND’s nos dice que:

δN (q0, w) = ∪ki=1

δN (pi, a) (1)

La consturcción del subconjunto nos dice por otro lado que:

δD({p1, p2, .., pk}, a) = ∪ki=1

δN (pi, a) (2)

Usemos (2) y el hecho que δ({q0}, x) = {p1, p2, .., pk} en la definición de δ para AFD’s:

δ({q0}, w) = δD(δD({q0}, x), a) = δD({p1, p2, .., pk}, a) = ∪ki=1

δN (pi, a) (3)

Las ecuaciones (1) y (3) demuestran que δD({q0}, w) = δN (q0, w).

Cuando observamos que D y N aceptan w sí y sólo sí δD({q0}, w) o δN (q0, w), respectivamente,

contienen un estado en FN , completamos la prueba de que L(D) = L(N).

Automatas y Lenguajes - Ano 2007– p.20/28

Page 11: Tabla De Transicion

Autómatas Finitos No Determinísticos con transicionesǫ

Introducimos ahora otra extensión de los autómatas finitos, la idea es permitir transiciones espontáneas,

sin recibir un símbolo de entrada. Se utilizan para ello las transiciones ǫ, es decir, transiciones vía la

cadena vacía.

Como con AFND’s, esta nueva capacidad no agrega potencia, es decir que no expande la clase de los

lenguajes aceptados por autómatas finitos. Sin embargo proveen ciertas facilidades para programación y

también veremos como los AFND-ǫ están relacionados a las expresiones regulares y los usaremos en la

prueba de la equivalencia entre las clases aceptados por autómatas finitos y las denotadas por

expresiones regulares.

A continuación veremos con un ejemplo un posible uso de estos AFND-ǫ:

Automatas y Lenguajes - Ano 2007– p.21/28

Ejemplo

Construyamos un AFND-ǫ que acepta números decimales consistentes de:

1. Un signo + o − opcional.

2. Una cadena de dígitos.

3. Un punto decimal.

4. Otra cadena de dígitos, esta cadena de dígitos, o la del punto 2. pueden ser vacía, no las dos.

ε ε,+,− .

.

0,1,..,90,1,..,9

0,1,..,9

0,1,..,9

q q q q q

q

0 1 2 3

4

5

Automatas y Lenguajes - Ano 2007– p.22/28

Page 12: Tabla De Transicion

Formalización de AFND’s con tarnsicionesǫ

Definición formal:

Un AFND-ǫ se define de igual forma que un AFND, solo que es necesario incluir información sobre las

transiciones ǫ. Formalmente un AFND-ǫ A es A = (Q, Σ, δ, q0, F ) con las componentes significando lo

mismo que con AFND, excepto que δ es ahora una función que toma como argumentos un estado de Q y

un miembro de Σ ∪ {ǫ}.

Necesitamos ahora extender la función de transición para poder así definir lenguaje aceptado por

AFND-ǫ, pero para ello es necesario definir antes ǫ − clausura de un estado, informalmente la

ǫ − clausura(q) es el conjunto de todos los estados p tal que hay un paso desde q a p rotulado ǫ.

Automatas y Lenguajes - Ano 2007– p.23/28

Definición recursiva de ǫ − clausura:

1. ǫ − clausura(q) = {q}

2. Si el estado p está en la ǫ − clausura(q), y hay una transición desde el estado p al estado r

rotulado ǫ, entonces r está en la ǫ − clausura(q). Más precisamente, si δ es la función de

transición del AFND-ǫ, y p está en la ǫ − clausura(q), entonces la ǫ − clausura(q) también

contiene todos los estados en δ(p, ǫ).

Ahoara definiremos la función de transición extendida δ:

Automatas y Lenguajes - Ano 2007– p.24/28

Page 13: Tabla De Transicion

Definición recursiva de δ:

1. δ(q, ǫ) = ǫ − clausura(q)

2. Suponemos que w es de la forma xa, donde a es el último símbolo de w, con a ∈ Σ, el cual no

puede ser ǫ dado que no pertenece a Σ.

Entonces computamos δ(q, w) como sigue:

a) Sea δ(q, x) = {p1, p2, .., pk}.

b) Sea ∪ki=1

δ(pi, a) = {r1, r2, .., rm}

c) Entnces δ(q, w) = ∪mj=1

ǫ − clausura(rj).

Lenguaje aceptado por un AFND-ǫ:

Sea E = (Q, Σ, δ, q0, F ) un AFND-ǫ, se define lenguaje aceptado por E como:

L(E) = {w ∈ Σ∗|δ(q0, w) ∩ F 6= ∅}

Automatas y Lenguajes - Ano 2007– p.25/28

Eliminando las transicionesǫ

Dado cualquier AFND-ǫ E, podemos encontrar un AFD D que acepte el mismo lenguaje que E.

La construcción es muy similar a la de la construcción del subconjunto, sólo que debemos incorporar las

transiciones ǫ de E, para lo cual debemos utilizar la ǫ − clausura:

Sea E = (QE , Σ, δE , q0, FE). Entonces el AFD equivalente D = (QD, Σ, δD, qD, FD) se define

como sigue:

Automatas y Lenguajes - Ano 2007– p.26/28

Page 14: Tabla De Transicion

1. QD es el conjunto de subconjuntos de QE .

2. qD = ǫ − clausura(q0).

3. FD es aquellos conjuntos de estados que contienen al menos un estado de aceptación de E. Esto

es, FD = {S|S está en QD y S ∩ FE 6= ∅}.

4. δ(S, a), para todo a ∈ Σ y los conjuntos S en QD , es computada de la siguiente manera:

a) Sea S = {p1, p2, .., pk}.

b) Obtener ∪ki=1

δE(pi, a), sea este conjunto {r1, r2, .., rm}.

c) Entonces δD(S, a) = ∪mj=1

ǫ − clausura(rj).

Automatas y Lenguajes - Ano 2007– p.27/28

Ejemplo

Apliquemos esta construcción para eliminar las transiciones ǫ del ejemplo correspondiente a los números

decimales, esta construcción se da en clase.

Teorema:

Un lenguaje L es aceptado por algún AFND-ǫ sí y sólo sí L es aceptado por algún AFD.

Demostración:

Ver bibliografía, página 79, Introduction to Automata Theory, Languages and Computation - Hopcroft -

Ullman - Motwani.

Automatas y Lenguajes - Ano 2007– p.28/28