curso básico de computaciónacme.math.cinvestav.mx/~basico/beamer/automata.pdf · inicial q 0, se...

34
Curso Básico de Computación Autómatas finitos y expresiones regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN <[email protected]> 2010 Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 1 / 34

Upload: lykhanh

Post on 25-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Curso Básico de ComputaciónAutómatas finitos y expresiones regulares

Feliú Sagols Troncoso

MatemáticasCINVESTAV-IPN

<[email protected]>

2010

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 1 / 34

2 Autómatas finitos y expresiones regulares

2.2 Definiciones básicasUn autómata finito (AFD) consiste de un conjunto finito de estados yun conjunto de transiciones de estados a estados que ocurren con laentrada de símbolos escogidos de un alfabeto Σ. Para cada símboloque entra existe exactamente una transición que sale de cada estado.Un estado, denotado usualmente por q0, es el estado inicial, quemarca el inicio del autómata. Se designa a algunos estados comoestados finales o estados de aceptación.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 2 / 34

Una gráfica dirigida, se llama diagrama de transición, y se asocia conun AFD de la manera siguiente: los vértices de la gráficacorresponden a los estados del AFD. Si existe una transición delestado q al estado p con entrada a, entonces existe un arco llamadoa del estado q al estado p en el diagrama de transición. El AFDacepta una cadena x si la secuencia de transición que corresponde alsímbolo x lleva de un estado inicial a un estado de aceptación.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 3 / 34

Ejemplo:

En el diagrama de transición de un AFD (Ver figura 2.1), el estadoinicial q0, se indica por la flecha etiquetada como “inicio". Existe unsolo estado final, en este caso q0, indicado con un círculo doble. ElAFD acepta todas las cadenas con un número par de 0’s y 1’s.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 4 / 34

0q q

1

q2

q3

a b

d

c

10 0

1

0

1

1

Figura 2.1

Inicio

0

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 5 / 34

Formalmente denotamos a un autómata finito por una 5-tupla(Q,Σ, δ, q0, F ), donde Q es un conjunto finito de estados, Σ es unalfabeto finito de símbolos (de entrada), q0 está en Q y es el estadoinicial, F ⊆ Q es el conjunto de estados finales, y δ es la función detransición que transforma Q × Σ a Q. Es decir, δ(q, a) es un estadopara cada estado q y una entrada a.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 6 / 34

Se dice que una cadena x es aceptada por un AFDM = (Q,Σ, δ, q0, F ) si δ(q0, x) = p para algún p en F . El lenguajeaceptado por M, denotado por L(M), es el conjunto{x | δ(q0, x) está en F}. Un lenguaje es un conjunto regular si es unconjunto aceptado por un AFD.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 7 / 34

Ejemplo:Considere el diagrama de transición de la figura 2.1. En notaciónformal el AFD queda denotado por M = (Q,Σ, δ, q0, F ), dondeQ = {q0, q1, q2, q3}, Σ = {0, 1}, F = {q0}, y δ es:

EntradasEstados 0 1

q0 q2 q1

q1 q3 q0

q2 q0 q3

q3 q1 q2

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 8 / 34

Suponga que 110101 es una entrada para M . Note que δ(q0, 1) = q1

y δ(q1, 1) = q0.Así

δ(q0, 11) = δ(δ(q0, 1), 1) = δ(q1, 1) = q0

De esta manera 11 está en L(M). Como δ(q0, 0) = q2, se tiene

δ(q0, 110) = δ(δ(q0, 11), 0) = δ(q0, 0) = q2

De esta manera encontramos que:

δ(q0, 1101) = q3

δ(q0, 11010) = q1

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 9 / 34

y finalmente:δ(q0, 110101) = q0

La secuencia entera de estados es:

q10q1

1q00q1

2q03q1

1q0

Así 110101 está en L(M).

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 10 / 34

2.3 Autómatas Finitos No DeterminísticosSi se modifica el módelo del AFD y se permiten cero, uno o mástransiciones de un estado bajo la misma entrada, entonces se llega aun nuevo módelo de autómata llamado autómata finito nodeterminístico (AFND). Un diagrama de transición de un AFND semuestra en la figura 2.2:

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 11 / 34

q1

q2

q0

q3

q4

00

1

1

Inicio

01

01

01

Figura 2.2

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 12 / 34

Una secuencia de entrada a1a2 · · · an es aceptada por un AFND siexiste una secuencia de transición, que corresponda a la secuencia deentrada, que lleva del estado inicial a algún estado final. Por ejemplo,01001 es aceptada por el AFND de la figura 2.2 porque existe unasecuencia de transiciones q0, q0, q0, q3, q4, q4 etiquetadas por0,1,0,0,1.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 13 / 34

Formalmente denotamos a un AFND por una 5-tupla (Q,Σ, δ, q0, F ),donde Q,Σ, q0 y F son los estados, entradas, estado inicial y estadosfinales, respectivamente, y δ es una transformación de Q × Σ a 2Q,es decir, δ(q, a) es el conjunto de todos los estados p tal que existeuna transición a de q a p.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 14 / 34

Ejemplo:Considere el AFND de la figura 2.2, su función de transición δ estadada por:

EntradasEstados 0 1

q0 {q0, q3} {q0, q1}q1 ∅ {q2}q2 {q2} {q2}q3 {q4} ∅q4 {q4} {q4}

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 15 / 34

Y como entrada 01001.

δ(q0, 0) = {q0, q3}

δ(q0, 01) = δ(δ(q0, 0), 1) = δ({q0, q3}, 1) =

δ(q0, 1) ∪ δ(q3, 1) = {q0, q1}

Similarmente,δ(q0, 010) = {q0, q3}

δ(q0, 0100) = {q0, q3, q4}

yδ(q0, 01001) = {q0, q1, q4}

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 16 / 34

Equivalencia entre AFD y AFNDComo cada AFD es un AFND se tiene que las clases de lenguajesaceptados por un AFND incluye los conjuntos regulares (lenguajesaceptados por un AFD). Recíprocamente, demostraremos que paracada AFND se puede construir un AFD equivalente que acepte elmismo lenguaje.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 17 / 34

Teorema (2.1)

Sea L un conjunto aceptado por un AFND. Entonces existe un AFDque acepta a L.

Demostración.Idea de la demostración: Lo que se hace es reemplazar al conjuntode estados Q por 2Q. De esta manera la relación δ : Q ×∆→ 2Q seconvierte en una función. Sin embargo, ahora el dominio debe sercambiado de la siguiente manera: se reemplaza δ por la siguientefunción:

δ̂ : 2Q × Σ→ 2Q

δ̂(A, s) =⋃

q∈A

δ(q, s)

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 18 / 34

Ejemplo:

Sea M = ({q0, q1}, {0, 1}, δ, q0, {q1}) un AFND dondeδ(q0, 0) = {q0, q1}, δ(q0, 1) = {q1}, δ(q1, 0) = ∅, δ(q1, 1) = {q0, q1}.Podemos construir un AFD M ′ = (Q, {0, 1}, δ′, [q0], F ) que acepte aL(M) como sigue:Q consiste de todos los subconjuntos de {q0, q1}. Denotamos loselementos de Q por [q0], [q1],[q0, q1] y ∅. Como δ(q0, 0) = {q0, q1},se tiene:

δ′([q0], 0) = [q0, q1]

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 19 / 34

Del mismo modo,δ′([q0], 1) = [q1]

δ′([q1], 0) = ∅

δ′([q1], 1) = [q0, q1]

Naturalmente,δ′(∅, 0) = δ′(∅, 1) = ∅

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 20 / 34

Finalmente,δ′([q0, q1], 0) = [q0, q1]

ya queδ({q0, q1}, 0) = δ(q0, 0) ∪ δ(q1, 0) =

{q0, q1} ∪ ∅ = {q0, q1}

yδ′([q0, q1], 1) = [q0, q1]

ya queδ({q0, q1}, 1) = δ(q0, 1) ∪ δ(q1, 1) =

{q1} ∪ {q0, q1} = {q0, q1}

El conjunto F de estados finales es {[q1], [q0, q1]}

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 21 / 34

Tarea:Escribir un programa que acepte como entrada un AFND y de comosalida un AFD.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 22 / 34

2.4 Autómata Finito con movimientos-ǫSe puede extender el modelo del AFND para incluir transiciones conentrada vacía ǫ. Por ejemplo, la palabra 002 es aceptada por elAFND de la figura 2.3 con el camino q0, q0, q0, q1, q2, q2 con arcosetiquetados 0,0,ǫ,ǫ,2.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 23 / 34

q0

q q1 2

1 2

Figure 2.3

0

Startε ε

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 24 / 34

Formalmente, se define un autómata finito no determinístico conmovimientos-ǫ como una 5-tupla (Q,Σ, δ, q0, F ) donde δ es lafunción transición que transforma Q × (Σ ∪ {ǫ}) a 2Q, es decir,δ(q, a) consiste de todos los estados p tal que existe una transiciónetiquetada por a de q a p, donde a es ǫ o un símbolo en Σ.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 25 / 34

Ejemplo:La función de transición del AFND de la figura 2.3 es:

EntradasEstados 0 1 2 ǫ

q0 {q0} ∅ ∅ {q1}q1 ∅ {q1} ∅ {q2}q2 ∅ ∅ {q2} ∅

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 26 / 34

Denotamos por ǫ-CERRADURA(q) al conjunto de todos los vérticesp tales que exista un camino de q a p etiquetado por ǫ.

Ejemplo:

En la figura 2.3, ǫ-CERRADURA(q0) = {q0, q1, q2}.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 27 / 34

Seaǫ-CERRADURA(P) =

q∈P

ǫ-CERRADURA(q)

donde P es un conjunto de estados.

Definimos a δ̂ como:

1 δ̂(q, ǫ) = ǫ-CERRADURA(q)

2 Para w ∈ Σ∗ y a ∈ Σ,

δ̂(q,wa) = ǫ-CERRADURA(P)

donde P = {p | r ∈ δ̂(q,w), p ∈ δ(r , a)}

3 δ(R , a) =⋃

q∈R δ(q, a)

4 δ̂(R ,w) =⋃

q∈R δ̂(q,w) para el conjunto de estados R .

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 28 / 34

Se define a L(M), el lenguaje aceptado por M = (Q,Σ, δ, q0, F )como {w | δ̂(q0,w) contiene un estado en F}.

Ejemplo:Considere el AFND de la figura 2.3,

δ̂(q0, ǫ) =

ǫ-CERRADURA(q0) = {q0, q1, q2}

Así

δ̂(q0, 0) = ǫ-CERRADURA(δ(δ̂(q0, ǫ), 0))

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 29 / 34

= ǫ-CERRADURA(δ({q0, q1, q2}, 0))

= ǫ-CERRADURA(δ(q0, 0)

∪δ(q1, 0) ∪ δ(q2, 0))

= ǫ-CERRADURA({q0} ∪ ∅ ∪ ∅)

= ǫ-CERRADURA({q0}) = {q0, q1, q2}

Entonces

δ̂(q0, 01) = ǫ-CERRADURA(δ(δ̂(q0, 0), 1))

= ǫ-CERRADURA(δ({q0, q1, q2}, 1))

= ǫ-CERRADURA({q1}) = {q1, q2}

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 30 / 34

Equivalencia entre AFND con y sin movimientos-ǫ

Teorema (2.2)

Si L es aceptado por un AFND con transiciones-ǫ, entonces L esaceptado por un AFND sin transiciones-ǫ.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 31 / 34

Demostración.Sea M = (Q,Σ, δ, q0, F ) un AFND con transiciones-ǫ. Se construyeM ′ = (Q,Σ, δ′, q0, F

′) donde:

F ′ =

F ∪ {q0} si ǫ-CERRADURA(q0)contiene estados de F

F en otro caso

y δ′(q, a) es δ̂(q, a) para q ∈ Q y a ∈ Σ. Note que M ′ no tienetransiciones-ǫ.La demostración se termina demostrando por inducción en |x | queδ′(q0, x) = δ̂(q0, x). Sin embargo, esto no es cierto para x = ǫ,porque δ′(q0, ǫ) = {q0} y δ̂(q0, ǫ) = ǫ-CERRADURA(q0)

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 32 / 34

Ejemplo:Si aplicamos la construcción del Teorema 2.2 a la figura 2.3, con lasiguiente función de transición δ̂(q, a)

EntradasEstados 0 1 2

q0 {q0, q1, q2} {q1, q2} {q2}q1 ∅ {q1, q2} {q2}q2 ∅ ∅ {q2}

El conjunto de estados finales F ′ incluye a q2 porque esta en F ytambién incluye a q0, porque ǫ-CERRADURA(q0) y F tienen unestado q0 en común. El diagrama de transición para M ′ se muestraen la figura 2.4.

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 33 / 34

q0

q qInicio

0

1 2

1 2

0,1 1,2

0,1,2

Figura 2.4

Curso Básico de Computación (Matemáticas) Autómatas finitos y expresiones regulares 2010 34 / 34