aut´omatas finitos no deterministas...

33
Aut´omatas finitos no deterministas (AFnD) Elvira Mayordomo Universidad de Zaragoza 1 de octubre de 2012

Upload: buibao

Post on 25-May-2018

252 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Automatas finitos no deterministas (AFnD)

Elvira Mayordomo

Universidad de Zaragoza

1 de octubre de 2012

Page 2: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Contenido de este tema

◮ Introduccion y ejemplos de automatas finitos no deterministas

◮ Definicion de automata finito no determinista

◮ Equivalencia de AFD y AFnD (automatas finitos deterministasy no deterministas)

◮ Metodo para convertir un AFnD en AFD

Page 3: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Recordad los automatas finitos deterministas

q0 q1 q2

1 0

0,1

0 1

◮ La computacion del automata con entrada 011 es(q0, q0, q1, q1) que me dice la secuencia de estados por los quepasa con entrada 011

◮ Cada entrada me da exactamente una computacion. Tengosiempre como mucho una opcion desde un estado si leo unsımbolo ← Esto se llama determinismo

Page 4: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Primer ejemplo de automata finito no determinista

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

◮ Desde q1 con el sımbolo 1 hay dos opciones posibles

◮ Desde q2 hay una posibilidad de moverse sin leer ningunsımbolo (la marcada como ǫ)

Page 5: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Como funciona el automata con entrada 010

Configuracion inicial

0 1 0

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

Page 6: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Como funciona el automata con entrada 010

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

◮ Puede seguir la computacion (q1, q1, q1, q1)

◮ Puede seguir (q1, q1, q2, q3)

◮ Puede seguir (q1, q1, q2, q3, q4)

¿Cual es la buena? Todas son posibles¿Acepta 010? Sı, porque alguna de las computaciones posibleslleva a estado final (q4)

Page 7: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Con entrada 010110

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

Acepta porque una de las posibles computaciones termina en q4

Page 8: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Con entrada 01

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

Rechaza porque ninguna de las posibles computaciones termina enestado final

Page 9: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

¿Que lenguaje acepta?

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

Las cadenas con un 1 que no sea el ultimo sımbolo

Page 10: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

¿Que lenguaje acepta este?

q1 q2 q3 q41 0, 1 0, 1

0, 1

Las cadenas que tienen 1 como antepenultimo sımbolo

Page 11: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

¿Y este?

q1 q2 q3 q41 0, 1, ǫ 0, 1, ǫ

0, 1

Las cadenas que tienen 1 como ultimo, penultimo o antepenultimosımbolo

Page 12: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Dos ultimos ejemplos

0

1

2

3

4 5

ǫ

ǫ

a

a

a

a

a

(aa)∗ + (aaa)∗

Page 13: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Dos ultimos ejemplos

2 3

1

a

b

a, b

ǫ

a

(a + ba∗ba)∗, las cadenas que tienen un numero par de bs ydespues de cada b par tienen una a, y la cadena vacıa

Page 14: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Definicion formal de automata finito NO determinista

DefinicionUn automata finito no determinista (AFD) es M = (Q,Σ, δ, q0,F )tal que

◮ Q es el conjunto finito de estados

◮ Σ es el alfabeto de entrada

◮ q0 ∈ Q es el estado inicial

◮ F ⊆ Q es el conjunto de los estados finales.

◮ δ : Q × (Σ ∪ ǫ)→ P(Q) es la funcion de transicionδ(q, a) = R quiere decir que si estoy en el estado q y leo elsımbolo a puedo ir a cualquiera de los estados q′ ∈ R

Notacion: P(Q) es el conjunto de subconjuntos de Q

Page 15: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Representado un automata

◮ Lo mas usual es la representacion grafica

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

Page 16: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Representado un automata

◮ Tambien podemos indicar quienes son los estados, estadoinicial, estados finales y tabla de transicion

Q = {q1, q2, q3, q4}

Estado inicial q1

F = {q4}

δ 0 1 ǫ

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

Page 17: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Computacion de un automata no determinista

Dado un AFnD M = (Q,Σ, δ, q0,F )

◮ Una computacion de M con entrada w = w1 . . .wn es(r0, r1, . . . , rm) que cumple:

◮ w = y1 . . . ym con yi ∈ Σ ∪ ǫ◮ r0 es el estado inicial◮ ri+1 ∈ δ(ri , yi+1)

◮ Una computacion aceptadora de M con entrada w es unacomputacion (r0, r1, . . . , rm) de M con entrada w que cumplerm ∈ F

Page 18: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Ejemplo de computacion

q1 q2 q3 q41 0, ǫ 0, 1

0, 1 0, 1

Si M es este automata

◮ (q1, q1, q1, q1) es una computacion de M con entrada 010

◮ (q1, q1, q2, q3, q4) es una computacion aceptadora de M conentrada 010

Page 19: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Lenguaje aceptado por un automata no determinista

Formalmente, dado un AFnD M = (Q,Σ, δ, q0,F ) el lenguajeaceptado por M es L(M) definido como

L(M) = {w | existe una computacion

aceptadora de M con entrada w}

Page 20: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Automatas finitos deterministas y no deterministas

◮ Vamos a ver que los AFD y AFnD aceptan los mismoslenguajes

◮ La ventaja de los AFnD es que pueden ser mucho maspequenos/simples (Buscar un AFnD que acepte las cadenasde longitud multiplo de 2 o multiplo de 3)

◮ La ventaja de los AFD es que son mas faciles de analizar ysimplificar

Page 21: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Equivalencia de AFD y AFnD

TeoremaDado un automata finito no determinista (AFnD) M, existe unautomata finito determinista (AFD) M ′ tal que L(M) = L(M ′).

Page 22: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Demostracion de la equivalencia de AFD y AFnD

◮ La veremos en la pizarra (y hay un resumen en la web)

◮ De la demostracion sacaremos un metodo que usaremos paraconvertir AFnD en AFD

◮ Primero trataremos un caso mas facil y luego el general

Page 23: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Metodo para determinizar (AFnD sin ǫ-transiciones)

1. Construir una tabla con columnas una por cada a ∈ Σ.

2. En la primera fila escribir {q0} y en la columna a escribirδ({q0}, a), es decir, todos los estados a los que puedo llegardesde q0 con entrada a.

3. Copiar las casillas de la fila anterior como principio de nuevasfilas.

4. Para cada fila R pendiente, rellenar la fila R escribiendo encada columna a δ(R , a), es decir, todos los estados a los quepuedo llegar desde algun estado de R con entrada a.

5. Copiar las casillas de la fila anterior como principio de nuevasfilas.

6. Repetir los pasos 4 y 5 hasta que no queden filas por rellenar.

Page 24: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Ejemplo de determinizar (AFnD sin ǫ-transiciones)

q1 q2 q3 q41 0, 1 0, 1

0, 1

0 1

{q1} {q1} {q1, q2}{q1, q2} {q1, q3} {q1, q2, q3}{q1, q3} {q1, q4} {q1, q2, q4}{q1, q2, q3} {q1, q3, q4} {q1, q2, q3, q4}

{q1, q4} {q1} {q1, q2}{q1, q2, q4} {q1, q3} {q1, q2, q3}{q1, q3, q4} {q1, q4} {q1, q2, q4}{q1, q2, q3, q4} {q1, q3, q4} {q1, q2, q3, q4}

Page 25: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Ejemplo de determinizar (AFnD sin ǫ-transiciones)

q1 q1, q2

q1, q3

q1, q4

q1, q2, q4

q1, q2, q3

q1, q3, q4

q1, q2, q3, q4

0

1

0

1

0

1

0

1

1 1

0

1

0

0

10

Page 26: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Ejemplo de determinizar (AFnD sin ǫ-transiciones)

1 2

3

4

5

6

7

8

0

1

0

1

0

1

0

1

1 1

0

1

0

0

10

◮ Es util cambiar los nombres de los estados

Page 27: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Metodo para determinizar (AFnD con ǫ-transiciones)

1. Construir una tabla con columnas una por cada a ∈ Σ.

2. En la primera fila escribir el inicial I = E ({q0}), es decir,todos los estados a los que puedo llegar desde q0 con ǫ∗.

3. En la primera fila, en la columna a escribir⋃

r∈IE (δ(r , a)), es

decir, todos los estados a los que puedo llegar desde I conentrada aǫ∗.

4. Copiar las casillas de la fila anterior como principio de nuevasfilas.

5. Para cada fila R pendiente, rellenar la fila R escribiendo encada columna a,

⋃r∈R

E (δ(r , a)), es decir, todos los estados alos que puedo llegar desde algun estado de R con entrada aǫ∗ .

6. Copiar las casillas de la fila anterior como principio de nuevasfilas.

7. Repetir los pasos 5 y 6 hasta que no queden filas por rellenar.

Page 28: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Ejemplo de determinizar (AFnD con ǫ-transiciones)

2 3

1

a

b

a, b

ǫ

a

a b

{1, 3} {1, 3} {2}{2} {2, 3} {3}{2, 3} {1, 2, 3} {3}{3} {1, 3} ∅{1, 2, 3} {1, 2, 3} {2, 3}

∅ ∅ ∅

Page 29: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Ejemplo de determinizar (AFnD con ǫ-transiciones)

a b

{1, 3} {1, 3} {2}{2} {2, 3} {3}{2, 3} {1, 2, 3} {3}{3} {1, 3} ∅

{1, 2, 3} {1, 2, 3} {2, 3}∅ ∅ ∅

1, 3 2

2, 3 1, 2, 3

3 ∅

a

b

a

b

a

b

ab

a

b

a, b

Page 30: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Teorema

◮ (Recordad la definicion) Un lenguaje A es regular si existe unAFD M con A = L(M).

◮ TeoremaUn lenguaje A es regular si existe un AFnD N con A = L(N).

Page 31: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

¿Que hemos aprendido?

◮ Para cada AFnD (automata no determinista) existe un AFD(automata determinista) que acepta el mismo lenguaje

◮ Ası que para ver que existe un AFD que reconoce un lenguajebasta con encontrar un AFnD

◮ Por tanto para saber si un lenguaje es regular basta conencontrar un automata no determinista que lo reconozca

Page 32: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

¿Que hemos aprendido?

◮ En practicas vimos como convertir cada AFD en un AFDmınimo que hace lo mismo

◮ El AFD mınimo es unico

◮ Para saber si dos AFnD A1 y A2 hacen lo mismo(reconocen el mismo lenguaje) basta con

◮ Convertirlos a AFDs M1 y M2

◮ Minimizar M1 y M2, convirtiendolos en N1 y N2

◮ Si N1 y N2 son el mismo automata entonces A1 y A2 hacen lomismo

Page 33: Aut´omatas finitos no deterministas (AFnD)webdiis.unizar.es/asignaturas/TC/wp/wp-content/uploads/2012/09/... · Recordad los aut´omatas finitos deterministas q 0 q 1 q 2 1 0 0,1

Bibliografıa

◮ Sipser (2a edicion), paginas 47 a 58 (en seccion 1.2) .

◮ Kelley, secciones 2.5, 2.6 y 2.7.