Informática teóricaInformática teórica
Bibliografía:
•John Hopcroft et al., Introduction to Automata Theory, Languages and Computation [2ª ed, 2001] y 1ª ed español
•Michael Sipser, Introduction to the Theory of Computation [2ª ed, 2006]
pdfs disponibles
Informática TeóricaInformática Teórica
Teoría de Autómatas y Lenguajes Formales
Teoría de Autómatas y Lenguajes Formales
AKA: “TALF”
Teoría de Autómatas y Lenguajes Formales
Teoría de Autómatas y Lenguajes Formales
Máquinas (formales)
Información (digital)
“No hay nada más práctico que una buena teoría”
(K. Lewin)
0. Repaso lógica, conjuntos, relaciones
1. Strings, lenguajes, operaciones entre lenguajes
2. Lenguajes regulares, autómatas finitos
3. Expresiones regulares (“REGEXP”), aplicaciones, autómatas deterministas y no-deterministas
4. Minimización de AF
5. Gramáticas formales, jerarquía de Chomsky
6. Lenguajes de libre contexto, autómatas de pila
7. Aplicaciones
TemarioTemario
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
Repaso (recordatorio) de algunas Repaso (recordatorio) de algunas cosascosas
Repaso (recordatorio) de algunas Repaso (recordatorio) de algunas cosascosas
Lógica.
•Expresiones verdaderas o falsas (V,F)
•Sus valores de verdad se combinan de acuerdo a ciertas operaciones.
•El resultado de las operaciones podemos representarlo mediante tablas de verdad.
•También las tablas pueden servir para demostrar identidades simples.
NOTA: En inf. se suele usar 1 y 0 en lugar de V y F
LógicaLógicaLógicaLógica
Operaciones elementales:
111
001
010
000
xyyx
Conjunción, “y”
111
101
110
000
xyyx
Disjunción, “o”
01
10
xx
Negación
LógicaLógicaLógicaLógica
Algunas propiedades básicas:
•Asociatividad:
(xy)z = x(yz) , (xy)z = x(yz)
•Distributividad:
x(yz) = (xy)(xz) , x(yz) = (xy)(xz)
•Leyes de Morgan:
(xy) = (x y) , (xy)= x y
LógicaLógicaLógicaLógica
Una expresión importante: PQ. La idea es que no se dé el caso en que P es cierto, pero Q es falso.
Es decir, se quiere la negación de PQ.Por ley de Morgan, se quiere PQ.
La equivalencia (PQ) se define mediante (PQ QP). Uno esperaría que PQ signifique que P y Q valen lo mismo. En efecto,
P Q PQ QP PQ
0 0 1 1 1
0 1 1 0 0
1 0 0 1 0
1 1 1 1 1
LógicaLógicaLógicaLógica
A partir de una expresión de implicancia PQ aparecen otras expresiones relacionadas:
•La recíproca: QP•La contraria: P Q•La contrarrecíproca: Q P
La recíproca y la contraria son equivalentes entre sí, mientras que la contrarrecíproca es equivalente a la expresión original.
Por eso a veces se demuestra Q P, cuando lo que uno quiere demostrar es PQ.
LógicaLógicaLógicaLógica
Otra estrategia frecuente es la reducción al absurdo : uno supone que la conclusión es falsa, y llega a una contradicción.
Es decir, suponemos que P es cierto y que Q es falso (es decir, que Q es cierto) y llegamos a algo falso: PQ = 0, que por ley de Morgan significa que PQ = 1, o sea, PQ.
Notemos también que si PQ y QR, entonces PR (ejercicio).
Una consecuencia es que cuando uno quiere demostrar, por ejemplo, PQRS, basta con demostrar PQRSP.
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
ConjuntosConjuntosConjuntosConjuntos
Conjuntos: informalmente, una colección bien definida de objetos.
“Bien definida” definición sin ambigüedad
¿“Colección”? ¿”Objetos”?
En principio uno tendería a decir que toda propiedad P define un conjunto: “sean todos los x tales que P(x) es cierto”, o bien “sean todos los x tales que P(x) es falso”.
ConjuntosConjuntosConjuntosConjuntos
Por ejemplo, P(x)=“x es un número primo”.
Entonces el conjunto R(P) será el conjunto de todos los números naturales primos.
¿Pero cuál sería el conjunto de los x que no cumplen P?
•¿Los naturales, salvo los primos?•¿Los reales, salvo los primos?
•Para tener un punto de referencia, se suele trabajar dentro de un conjunto, el “universo” o “conjunto universal” U. También evita paradojas.
ConjuntosConjuntosConjuntosConjuntos
•Se define el complemento con respecto a ese U: AC = {xU: xA}
•Todo conjunto admite el subconjunto vacío, . El conjunto vacío es único.
•El conjunto potencia de un conjunto A, es el conjunto P(A) formado por todos sus subconjuntos.
•Si |A|=n, entonces |P(A)|=2n
•Si A B, entonces P(A) P(B).
ConjuntosConjuntosConjuntosConjuntos
Inclusión de la intersección:A B A y A B B
Inclusión en la unión:A A B y B A B
Transitividad de la inclusión:(A B B C) A C
Conjuntos vs Lógica:x X Y x X y Yx X Y x X y Yx X\Y x X y Yx Xc x X
ConjuntosConjuntosConjuntosConjuntos
Conmutatividad: A B = A B y A B = B A
Asociatividad: (A B) C = A (B C) y
(A B) C = A (B C)
Distributividad:A (B C) = (A B) (A C) y A (B C) = (A B) (A C)
ConjuntosConjuntosConjuntosConjuntos
Intersección y unión con conjunto universal: A U = A y A U = U
Doble complemento: (Ac)c = A
Idempotencia: A A = A y A A = A De Morgan:
(A B)c = Ac Bc y (A B)c = Ac Bc
Absorción: A (A B) = A y A (A B) = A
ConjuntosConjuntosConjuntosConjuntos
Sean A, B subconjuntos de U. Entonces las afirmaciones siguientes son equivalentes:
a) ABb) AB=Bc) AB=Ad) BCAC
U
B A
Demostración: ejercicio. Aplicar eso de demostrar a b c d a.
Diferencia simétrica: A B=A\B B\AEjercicio: demostrar que es asociativa.
Conjuntos disjuntosConjuntos disjuntosConjuntos disjuntosConjuntos disjuntos
Un par de conjuntos se dicen disjuntos si su intersección es vacía (no tienen elementos en común).
•Nótese que A\B y B son siempre disjuntos.
Una colección {A1,…Ak} se dice mutuamente disjunta si cualquier par de conjuntos de la colección es disjunto.
ConjuntosConjuntosConjuntosConjuntos
Una colección de conjuntos no vacíos {A1,…Ak} es una partición del conjunto A si se cumple
(1) {A1,…Ak} es mutuamente disjunta(2) A es igual a la unión de todos los Ai
Si sólo se cumple lo segundo, decimos que es un recubrimiento de A.
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
InducciónInducciónInducciónInducción
Recordar el principio de inducción:
Se usa para demostrar que una proposición P que depende de un número natural “n”, es decir, P(n), es cierta para todo “n” por sobre algún umbral n0.
Lo que se hace es demostrar:
•Caso base: P(n0) es cierta
•Paso inductivo: Si P(n) es cierta para n ≥ n0, entonces P(n+1) también es cierta
InducciónInducciónInducciónInducción
Nota:
En una variante, que a veces se llama inducción “fuerte”, el paso inductivo demuestra que si P(k) es cierta para todo n0 ≤ k ≤ n, entonces lo es para n+1.
Es decir, no se usa sólo el caso anterior, sino todos los anteriores.
InducciónInducciónInducciónInducción
Un ejemplo clásico:
12
)1(
1
nnn
in
i
Caso base:
2
)11(11
1
1
i
i
Paso inductivo:
2
)1()1()1(
1
1
1
nnnini
n
i
n
i
2
)1)(2(
2
)1()1(2
nnnnn
InducciónInducciónInducciónInducción
Otros:
•n3-n es divisible por 3, para todo n ≥ 1
•2x ≥ x2, para todo x ≥ 4
•… etc (pueden mirar su cuaderno de aquellos tiempos; lo importante es que refresquen estas cosas).
Un poco menos trillado: inducción “estructural”:
•Generaliza la misma idea.
•La usamos para demostrar propiedades de objetos definidos recursivamente.
Inducción estructuralInducción estructuralInducción estructuralInducción estructural
En una construcción recursiva, se tienen:
•Objetos básicos (“primitivos”, “iniciales”, etc..)•Reglas para definir nuevos objetos a partir de un conjunto de objetos ya definidos.
Entonces se demuestra que la propiedad en cuestión (el “predicado”):
•Es cierta para los objetos básicos•Si es cierta para un conjunto de objetos, entonces es cierta para el nuevo objeto construido, mediante las reglas, a partir de dicho conjunto.
Inducción estructuralInducción estructuralInducción estructuralInducción estructural
Ejemplo clásico: consideremos la siguiente definición recursiva de un árbol [conexo].
•Un nodo sólo, es un árbol.
•Si T1, T2, …, Tk son árboles disjuntos, entonces
A1 A2 Ak
n
...T1 T2 Tk
...
también es un árbol.
Inducción estructuralInducción estructuralInducción estructuralInducción estructural
Propiedad a demostrar: la cantidad de nodos siempre es igual a la cantidad de aristas + 1.
•Caso base: ok.
•Sean ni y ai las cantidades de nodos y aristas en los árboles Ti, para i de 1 hasta k. Sean n y a esas cantidades para el nuevo árbol.
A1 A2 Ak
n
...T1 T2 Tk...
Hipótesis inductiva: ian ii 1
Paso inductivo:
k
ii
k
ii ann
11
)1(11
aakk
ii
111
Inducción estructuralInducción estructuralInducción estructuralInducción estructural
Otro ejemplo típico: expresiones aritméticas.
Símbolos elementales: letras, +, *, (, )
(1)Las letras son E.A.
(2)Si E y F son E.A., entonces E+F, E*F y (E) son E.A.
Ejemplos: x+y, x*y+x*(z+b), ((a)), etc…
Ejercicio: demostrar que en una expresión aritmética, el número de “(“ es igual al número de “)”.
Inducción estructuralInducción estructuralInducción estructuralInducción estructural
Números de Fibonacci:
• F(1)=F(2)=1, • F(n)=F(n-1)+F(n-2) para n > 2
Demostrar que F(n) < 2n para todo n ≥ 1
Nótese que en este caso lo podemos ver como inducción “clásica”, o bien como inducción estructural.
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
Tuplas y producto cartesianoTuplas y producto cartesianoTuplas y producto cartesianoTuplas y producto cartesiano
•Una n-tupla ordenada es una secuencia de n elementos, escrita en la forma (x1,…,xn).
•Nótese que a diferencia de los conjuntos, donde {1,2}={2,1}, en una n-tupla el orden sí importa.
•Por lo tanto, la única forma de que (x1,…,xn)= (y1,…,yn) es que x1=y1,…,xn=yn.
•El producto cartesiano de n conjuntos A1,...,An es el conjunto formado por las n-tuplas de la forma (x1,…,xn), donde xiAi, 1 ≤ i ≤ n : }1:),,{( 121 niAxxxAAA iinn
RelacionesRelacionesRelacionesRelaciones
Un caso de particular interés es el producto cartesiano de sólo dos conjuntos: AB.
Una “relación” es un subconjunto RAB.
Nótese que:•no necesariamente A=B•cualquier subconjunto RAB es válido
1 2 3
1 2 3
1 2 3
R1
R2
R3
Con A={1,2,3},B={,}, las siguientes son todas relaciones válidas:
R1={(1,),(1,),(3,)}
R2=AB \ {(1,)}
R3={(2,)}
Relaciones: funcionesRelaciones: funcionesRelaciones: funcionesRelaciones: funciones
Un caso aún más particular son las funciones: son relaciones en que para cada xA, existe un único yB tal que (x,y)R; así, se define una función de A en B.
1 2 3
R5
¿Qué hay de R5, a la izquierda? No es una función, porque estamos viéndolas como subconjuntos de AB. Pero en este caso si la “trasponemos”, y la vemos como subconjunto de BA, entonces sí es una función... de B en A.
1 2 3
R4
Las tres relaciones en la transparencia anterior son contraejemplos : no son funciones. En cambio, R4 (a la derecha) sí lo es.
Relaciones: notaciónRelaciones: notaciónRelaciones: notaciónRelaciones: notación
•Cuando una relación RAB es una función, y se tiene (x,y)R, solemos escribir R(x)=y. Por ejemplo, R4(1)=.
•En el caso general (en que R es una relación cualquiera), cuando (x,y)R se suele escribir xRy.
NOTA: En lo que sigue, consideraremos relaciones dentro de un mismo conjunto: A=B, y le llamaremos “S” (o sea, A=B=S). Anotamos S2=SS.
Relaciones: propiedadesRelaciones: propiedadesRelaciones: propiedadesRelaciones: propiedades
Decimos que una relación RS2 es:
•Refleja: si para todo aS, (a,a)R [o sea, aRa].
•Transitiva: si cada vez que aRb y bRc, se tiene además aRc.
•Simétrica: si aRb bRa
•Antisimétrica: si cada vez que aRb y bRa, necesariamente a=b.
•Total: para cualesquiera a,bS, se tiene que aRb o bien bRa (o ambas).
Relaciones: ordenRelaciones: ordenRelaciones: ordenRelaciones: orden
Una relación de orden parcial cumple con ser refleja, transitiva y antisimétrica.
•Ejemplo: Sea A un conjunto finito, S=P(A) [el conjunto potencia de A], y R definida por
R = { (B,C): B,CA y BC }
(es decir: es la relación de inclusión entre subconjuntos de A).
NOTA: esto es lo que se llama un orden “no estricto”. En los órdenes estrictos, como “<“ y “”, se prohibe la igualdad, exigiendo que la relación sea antirrefleja: (a,a)R para ningún a.
Relaciones: ordenRelaciones: ordenRelaciones: ordenRelaciones: orden
Si además es total, entonces es una relación de orden total.
•El ejemplo anterior es un caso de orden parcial que no es total. Para ver por qué, consideremos A={1,2}, B={1}, C={2}. Claramente, ni B está incluído en C, ni C está incluído en B.
•Consideremos S=Z (los números enteros), y la relación habitual. Ese sí es un caso de relación de orden total.
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
Relaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalencia
Una relación de equivalencia cumple con ser refleja, transitiva y simétrica.
•Ejemplo: Sean Z los números enteros, y sea mN, m0. Definiremos la relación Rm (pues ojo, depende del m) como
a Rm b a mod m = b mod m
[donde a mod m es el resto de dividir a por m]
Ejercicio: 1) ver que es relación de equivalencia2) ver que a Rm b (a-b) es divisible por m.
Relaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalencia
Sea R una relación de equivalencia en S.
• Para cada elemento aS, definimos su clase de equivalencia [a]={ bS: aRb }.
• El conjunto de las clases de equivalencia forma una partición de S. En efecto:
•Todo elemento pertenece a alguna clase de equivalencia (la suya!).•La intersección entre dos clases de equivalencia distintas es vacía: si c[a][b] c[a] y c[b] cRa y cRb aRc y cRb (por simetría) aRb (por transitividad) [a]=[b].
Relaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalencia
•Ejemplo: consideremos (Z,R3), con la relación de “igualdad módulo 3” definida antes. Entonces [0] = { ..., -6, -3, 0, 3, 6, 9,... } [1] = { ..., -5, -2, 1, 4, 7, ... } [2] = { ..., -4, -1, 2, 5, 8, 10, ... }
Al conjunto de clases de equivalencia (conjunto “cuociente”) lo anotamos S/R. En este caso, Z/R3 = { [0], [1], [2] }
Naturalmente, en un mismo conjunto puede definirse más de una relación de equivalencia, y cada una dará una partición distinta.
Relaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalencia
•Ejemplo: Sea S una baraja de naipe [inglés],
S={ 1, 2, ..., K, 1, 2, ..., K, 1, 2,..., K, 1, 2, ..., K}
y consideremos las relacionesRp : si dos naipes son de la misma pintaRn : si dos naipes son del mismo númeroRc : si dos naipes son del mismo colorR2 : si el número de dos naipes tiene la misma paridad.
¿Cuántas clases de equivalencia distintas hay en cada caso?
Relaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalenciaRelaciones: equivalencia
Nota:
La relación entre relaciones de equivalencia y particiones es recíproca: dada una partición de un conjunto, siempre podemos definir una relación de equivalencia (según si los elementos quedan juntos o no) cuyas clases de equivalencias correspondan a esa partición.
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
Relaciones: refinamientosRelaciones: refinamientosRelaciones: refinamientosRelaciones: refinamientos
Sean R,QS2 dos relaciones de equivalencia en S. Decimos que R es más fina que Q, y escribiremos RQ, si se tiene
aRb aQb, a,bS
Es decir, R distingue entre elementos de S al menos tan bien como Q.
Ejercicio: demostrar que si RQ, entonces las clases de equivalencia de Q son uniones de clases de equivalencia de R.
RelacionesRelacionesRelacionesRelaciones
•En el ejemplo de los naipes, RpRc , y RnR2.
•Si consideramos la relación de igualdad módulo m, ¿qué deben cumplir m1 y m2 para que Rm1
Rm2 ?
•Otro ejemplo: Sea otra vez A un conjunto finito cualquiera, y S=P(A) su conjunto potencia. Consideremos las relaciones R y Q dadas por:
•aRb a=b•aQb |a| = |b|
Entonces RQ.
[Recuérdese que en este caso a y b son subconjuntos de A. |a| es el cardinal de a.]
RelacionesRelacionesRelacionesRelaciones
Nota: en realidad siempre se tiene que la relación de identidad (“=“) es más fina que cualquier otra relación de equivalencia.
Consideremos el conjunto (S) de todas las relaciones de equivalencia posibles sobre el conjunto S.
Entonces “” es una relación en (S) !!
¿Qué tipo de relación es?
Ejercicio: conteste y demuéstrelo.
Relaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitiva
Sea R una relación en S, no necesariamente transitiva. Definimos su cerradura transitiva como la menor relación R’ tal que RR’ y R’ es transitiva (en el peor de los casos, puede ser R’=S2).
En el caso de S finito, lo podemos ver como que “parchamos” R, agregándole los elementos que estén fallándole a la transitividad, hasta que ya no falla nada.
Ejemplo: •S=ciudades del mundo•aRbexiste un vuelo directo de a hasta b•aR’bse puede llegar de a hasta b en avión
Relaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitiva
¿Cómo encontrar la cerradura transitiva (S finito)?Algoritmo de Warshall (visto en EDA)
•Pensamos en la relación como una matriz binaria, que dice“puedo ir de a hasta c usando un solo arco” o “no puedo”.
a
b
c 010c
100b
010a
cbaR
•Queremos ahora una matriz que exprese “puedo ir de i a j” (usando 1 o más arcos).
110c
110b
110a
cbaR’
Relaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitiva
“ya había camino, o ahora existe un camino porque existen caminos de i a k, y de k a j”
•Definamos A0=R•Aplico |S| veces lo siguiente. •En el paso k-ésimo, Ak[i,j] me dice acaso hay un camino entre i y j que pase por nodos de índice k ó menor.
],[ ],[],[],[ 111 jkAkiAjiAjiA kkkk
Relaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitivaRelaciones: cerradura transitiva
Algoritmo de Warshall:
Inicialización:•A = matriz binaria representando R
Iteración:•Para k=1,...,N
Para todo i,jA[i,j] = A[i,j] (A[i,k] A[k,j])
R’ = relación representada por A
[Se habla del algoritmo de Floyd-Warshall, porque esto es una variante del de Floyd para caminos más cortos en grafos.}
1. Lógica
2. Conjuntos
3. Inducción
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
RepasoRepaso
CardinalCardinalCardinalCardinal
Volvamos a las funciones. Si fAB es una función, escribiremos que f:AB.
Decimos que una función f:AB es inyectiva cuando preserva las diferencias: si ab, entonces f(a)f(b).
Intuitivamente se ve que, para que esto sea posible, tiene que haber al menos tantos elementos en B como en A.
CardinalCardinalCardinalCardinal
Esa intuición se convierte en definición : decimos que el conjunto A tiene cardinalidad menor o igual que B si existe una función inyectiva f:AB. Escribimos |A||B|Si se tiene |A||B| y además |B||A| (es decir, existen funciones inyectivas en ambas direcciones), escribimos |A|=|B|, y decimos que tienen la misma cardinalidad (o el “mismo cardinal”).
Nota: una función biyectiva es inyectiva hacia los dos lados, y se puede usar para probar igualdad de cardinal. Pero a veces es más cómodo usar dos funciones distintas.
CardinalCardinalCardinalCardinal
Para conjuntos finitos la cardinalidad es simple: identificamos |A| con la cantidad de elementos que contiene, y |A||B| A tiene menos elementos que B.
Para el vacío, ={ }, se tiene ||=0.
Un “singleton” es un conjunto de cardinal 1. Por ejemplo: {2}, { {2,3} }, {{ }}.
CardinalCardinalCardinalCardinal
La gracia es que la definición funciona también para conjuntos infinitos.
Ejercicio: sea A finito y B infinito. Demostrar que |A|<|B|, es decir, que |A||B|, pero |B||A|.
Ejercicio: Sea AB. Demostrar que |A||B|.
•El conjunto infinito “más chico” es N, los números naturales.
CardinalCardinalCardinalCardinal
•Los enteros (Z), los racionales (Q), los números pares (2Z), tienen todos el mismo cardinal que N.
•Se anota 0 (“aleph 0”). Se dice que son “contables”.
•Los reales (R) no tienen el mismo cardinal que N. Su cardinal, 1, es llamado “el cardinal del continuo”, y es el mismo cardinal de [0,1], R2, R3, etc.
Fin del repasoFin del repasoFin del repasoFin del repaso