Title: Dise
1Diseño de Autómatas Finitos
2Diseño de AFDs
- Definir un AFD que acepte palabras que cumplan
ciertas especificaciones. - Correcto que las palabras aceptadas por el AFD
cumplan las especificaciones, es decir, que no
sobren palabras. - Completo que toda palabra que cumpla las
especificaciones sea aceptada por el AFD, es
decir, que no falten palabras. - Ejemplo AFD que acepte palabras sobre a, b que
no tengan varias as seguidas.El AFD de la
figura no escorrecto porque acepta baa,pero
no acepta ba.
a
a
q1
gt
q0
b
b
a
b
q2
3Cómo diseñar un autómata finito
- Por ensayo y error no es adecuado.
- Póngase en los zapatos del autómata que quiere
diseñar. - Para cada símbolo leído, saber si la cadena es
aceptada o no, por si la cadena termina ahí. - Decida que información es crucial recordar, es
decir, cuales serían los estados del autómata. - Asignar transiciones, estado inicial y estado(s)
final(es).
4Ejemplo
- Diseñar un AFD que acepte todas las palabras
sobre 0, 1 que tengan un número impar de 1s. - No se requiere saber cuantos 1s se han leído
sino sólo si llevamos un número par o impar de
1s. Esta respuesta permanece igual si enseguida
leemos un 0 y cambia si leemos un 1. - Representar esto como una lista de posibilidades
y asignar un estado a cada posibilidad a) par
hasta ahorita. B) impar hasta ahorita. - Asignar las transiciones.
- Definir el estado inicial, el que corresponde a
la palabra nula l. - Definir el estado final, el que corresponde a
palabras de longitud impar.
1
qpar
qimpar
0
0
1
5Otro ejemplo
- Diseñar un AFD que reconozca palabras que
contienen la cadena 001 como 0010, 1001,
11111110011111, pero no como 11, 0000, 1100,
10101.Posibilidades - No hemos leído ningún símbolo. Estado q.
- Hemos leído un 0. Estado q0.
- Hemos leído 00. Estado q00.
- Hemos leído 001. Estado q001.
1
0,1
0
0
0
1
q
q0
q00
q001
1
6Ejemplos
- Diseñar un AFD que acepte exactamente el lenguaje
sobre 0, 1 en que las palabras no comienzan con
00.
7EjemploPalabras sobre a, b, c en las cuales
toda b es inmediatamente seguida de al menos una
c.
8Otro ejemplo
- Construir un autómata finito determinista que
reconozca el lenguaje sobre 0, 1 que consiste
de las palabras que terminan con 10, es decir,
reconoce el lenguaje (0 1)10.
9Simplificación del Otro ejemplo
10Un ejemplo más
- Construir un autómata finito determinista que
reconozca el lenguaje sobre 0, 1 que consiste
de las palabras que terminan con 1, es decir, (0
1)1.
11Y un ejemplo más
- Construir un autómata finito determinsta que
reconozca el lenguaje sobre 0, 1 que consiste
de las palabras cuyo penúltimo símbolo es 1, es
decir, su expresión regular es (0 1)1(0 1).
12Y aún otro más
- Construir un autómata finito determinista que
reconozca el lenguaje sobre 0, 1 que consiste
de las palabras cuyo antepenúltimo símbolo es 1,
es decir, su expresión regular es (0 1)1(0
1)(0 1).
13Y varios más
- Cuántos estados tendría el autómata finito
determinista que reconozca el lenguaje sobre 0,
1 que consiste de las palabras cuyo
ante-antepenúltimo símbolo es 1, es decir, su
expresión regular es (0 1)1(0 1)3? - Resp 24 16.
- Cuántos estados tendría el autómata finito
determinista que reconozca el lenguaje sobre 0,
1 que consiste de las palabras cuyo décimo
símbolo, contado de derecha a izquierda es 1, es
decir, su expresión regular es(0 1)1(0 1)9? - Resp 210 1024.
- Cuántos estados tendría el autómata finito
determinista que reconozca el lenguaje sobre 0,
1 que consiste de las palabras cuyo vigésimo
símbolo, contado de derecha a izquierda es 1, es
decir, su expresión regular es(0 1)1(0
1)19? - Resp 220 1M.
- Cuántos estados tendría el autómata finito
determinista que reconozca el lenguaje sobre 0,
1 que consiste de las palabras cuyo vigésimo
quinto símbolo, contado de derecha a izquierda es
1, es decir, su expresión regular es(0 1)1(0
1)24? - Resp 225 32M.
14Tarea 3, Parte A (en equipo)
- Construir un AFD que reconozca números binarios
múltiplos de 5. - Por ejemplo, debe reconocer0, 101, 1010, 1111,
10100. - Fecha de asignación 19/Febrero/2004
- Fecha de entrega 01/Marzo/2004
15Equivalencia de autómatas finitos
- Decimos que dos autómatas, M1 y M2, son
equivalentes cuando aceptan el mismo lenguaje, es
decir, L(M1) L(M2).En este caso escribimos M1
M2. - Cómo saber que dos autómatas son equivalentes?
- Cómo saber que dos autómatas no son equivalentes?
16Cuándo dos autómatas no son equivalentes?
17Ejemplo
No!
Son M1 y M2 equivalentes?
Porque M1 acepta ? y M2 no.
Por qué?
18Ejemplo
No!
Son M1 y M2 equivalentes?
Por qué?
Porque M1 acepta 0 y M2 no.
Porque M2 acepta 01 y M1 no.
19Ejemplo
Sí!
Son M1 y M2 equivalentes?
Por qué?
Porque todas las palabras que son aceptadas por
M1 también lo son por M2 y viceversa.
20TODAS las palabras?
- Para poder decir que dos autómatas son
equivalentes, debemos verificar que TODAS las
palabras aceptas por uno de los autómatas son
aceptadas por el otro y viceversa.
21Cómo saber que dos autómatas son equivalentes
- Teorema de Moore. Existe un algoritmo basado en
la comparación de estados para saber si dos
autómatas son equivalentes. - Definición. Dos estados son compatibles si ambos
son finales o ninguno de los dos lo es. Si uno es
final y el otro no lo es, entonces se dice que
son incompatibles.
22Algoritmo de Moore
- Comparación de los autómatas M(K, S, d, s0, F)
y M (K, S, d, s0, F).Se construye la
tabla de comparación con 1S columnas. La
primera columna ponemos (q, q) como encabezado.
El encabezado de las columnas restantes son los
símbolos del alfabeto. - 1) Inicialmente escribimos (s0, s0) en el primer
renglón de la primera columna. - 2) Completamos el renglón poniendo en cada
columna a la pareja de estados donde el primer
elemento de la pareja es el estado a donde se
transfiere el autómata M del estado en la primera
columna después de leer el símbolo que encabeza
la columna correspondiente. El segundo elemento
de la pareja es la transición correspondiente a
M. - 3) Cada pareja de estados generado en el punto 2)
que no esté en la primera columna se escribe en
esa primera columna. - 4) Se completa el renglón para la siguiente
pareja de estados en la primera columna. - 5) Si en la primera columna aparece una pareja de
estados incompatible, entonces se termina el
proceso y se concluye que los autómatas no son
equivalentes. - 6) Si en la primera columna no aparecieron
parejas de estados incompatibles y si ya no
aparecen nuevas parejas que no estén en la
primera columna, entonces se concluye el proceso
y decimos que los autómatas son equivalentes.
23Arbol de comparación
24Determinar si los siguientes AFDs son/no son
equivalentes
A
B
C
25Respuesta al ejercicio de la lámina anterior
- A y B sí son equivalentes.
- B y C no son equivalentes.
- A y C no son equivalentes.
26Simplificación de autómatas
- Decimos que un autómata es una simplificación de
otro si tiene menos estados pero ambos aceptan el
mismo lenguaje. - Decimos que en un AFD dos estados son
equivalentes si al tomar uno o el otro como
estado inicial, los lenguajes aceptados por los
AFDs resultantes son iguales. En otras palabras,
dado un AFD M (K, S, d, s0, F) y dos estados q0
y q1 Î K, decimos que q0 y q1 son equivalentes o
redundantes (q0 q1) si (K, S, d, q0, F) (K,
S, d, q1, F). - Una vez que sabemos que dos estados son
equivalentes, entonces podemos eliminar uno de
ellos. Pero, y las flechas que entran y salen
del estado eliminado? - Las flechas que salen del estado eliminado son
eliminadas. - Las flechas que entraban al estado eliminado se
redirigen al estado equivalente.
27Estados equivalentes
28Borrar transiciones
a
b
5
3
a
b
a
4
a
b
b
5
3
b
a
4
29Redirigir transiciones
a
b
5
3
b
a
a
4
b
5
3
b
a
30Obtención de AFD mínimo eliminando estados
equivalentes
- Teorema. Al eliminar estados redundantes de un
AFD se obtiene el único AFD mínimo que acepta el
mismo lenguaje que el original.AlgoritmoPara
cada par de estados (p, q) del autómata - Ver si son equivalentes.
- En caso de que sí, entonces eliminar uno de ellos
y volver a empezar con otros dos estados. - Hasta que no haya estados que eliminar.
31Ejercicio.- simplificar
32Obtención de AFD mínimo utilizando clases de
equivalencia
- Dado un AFD M (K, S, d, s0, F), el
procedimiento para simplificarlo es - Definimos dos clases de equivalencia, F y K -
F. - Para cada clase
- Sea q un estado en la clase. Poner en una misma
clase a todos los estados q que tienen
transiciones iguales a las de q, es decir, q
y q pertenecen a la misma clase si para cada
símbolo s Î S, d(q, s) cae en la misma clase
que d(q, s). Ponemos en otra clase a los que
tienen transiciones distintas a las de q. - Si todos los estados de la clase tienen
transiciones iguales, entonces la clase no se
divide y analizamos otra clase. - Continuar analizando clases hasta que ninguna se
divida.
33Operaciones entre autómatas
- Sean
- M1 (K1, ?, ?1, s1, F1) y M2 (K2, ?, ?2, s2,
F2) dos AFDs que aceptan los lenguajes L1 y L2,
respectivamente. - Cómo obtener autómatas que reconozcan
- L1?L2
- L1?L2
- L1?L2
- L1L2
- L1
- L1C
34Respuesta
- Definamos el autómata M (K, ?, ?, s0, F) donde
- K K1 K2
- s0 (s1, s2)
- ?((p, q), a) (?1(p, a), ?2(q, a)) para p?K1,
q?K2 y a?? - Si F (p, q) p?F1 o q?F2, entonces M
acepta al lenguaje L1?L2. - Si F (p, q) p?F1 y q?F2, entonces M
acepta al lenguaje L1?L2. - Si F (p, q) p?F1 y q?F2, entonces M
acepta al lenguaje L1?L2. - Y L1L2, L1, L1C?
35Ejemplo
- Consideremos los lenguajes sobre el alfabeto
?0, 1 - L1 x 00 no es una subcadena de x
- L2 x x termina con 01
36K1 K2
37L1 ? L2
38L1 ? L2
39L1 ? L2
40Ejercicio
- Ya que L1C ??L1, el AFD que acepta L1C se
obtiene - Cambiando los estados finales a no-finales y los
no-finales a finales.
41Obtenga un AF que acepte (11110)0
42Autómatas Finitos No Deterministas (AFN)
- En los Autómatas Finitos Deterministas, para cada
estado y símbolo existe uno y sólo un estado al
cual se hace la transición. - Y si se quita esta restricción? Es decir, si
estando en un estado, hay símbolos para los que
puede no existir transición o símbolos para los
que puede haber más de una. - Este tipo de autómatas son llamados Autómatas
Finitos No Deterministas (AFN). - Cómo analizar los AFNs?
43Tarea 3, Parte B (en equipo)
- Ejercicios 3.10(a, b), 3.12, 3.19(b, e, h),
3.20(b, d, f), 5.16(a, e, g) del texto. - Fecha de asignación 19/Febrero/2004
- Fecha de entrega 01/Marzo/2004