92
Introducción a la Informática Teórica ILI 255

Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira [email protected] [email protected] “Investigador Joven” Oficina F130,

Embed Size (px)

Citation preview

Page 1: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Introducción a la Informática Teórica

ILI 255

Introducción a la Informática Teórica

ILI 255

Page 2: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ILI 255ILI 255

YO: Andrés Moreira

[email protected]@usm.cl

•“Investigador Joven”•Oficina F130, VALPO•Horario de Consulta en Stgo: por definir

Page 3: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ILI 255ILI 255

También por definir:

•Medio habitual de comunicación (probablemente dotlrn)

•Política de evaluación, pero en todo caso: tareas y certámenes.

•¿Horario ayudantías? Ayudante: Javier Robledo

Page 4: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ILI 255ILI 255

Bibliografía:

•John Hopcroft et al., Introduction to Automata Theory, Languages and Computation [2ª ed, 2001]

•Michael Sipser, Introduction to the Theory of Computation [2ª ed, 2006]

•Juraj Hromkovic, Theoretical Computer Science [1ª ed, 2003]

pdfs (y djvu) disponibles

Page 5: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ILI 255ILI 255

Estarán disponibles además:

•Powerpoint de las clases

- Tal vez antes de la clase- Después de la clase, definitivo

•Audio de las clases

•Algunos links y software

Page 6: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ILI255: Introducción a la Informática Teórica

ILI255: Introducción a la Informática Teórica

Teoría de Autómatas y Lenguajes Formales

Teoría de Autómatas y Lenguajes Formales

AKA: “TALF”

Page 7: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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)

Page 8: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

¿Qué es un computador?

¿Qué puede y qué no puede hacer? ¿Cuánto le cuesta hacerlo?

¿Cómo definimos formalmente un modelo de computación? ¿Cómo comparamos dos modelos distintos?

¿Cómo evaluamos la capacidad computacional de un sistema físico?

Preguntas “de fondo”Preguntas “de fondo”Preguntas “de fondo”Preguntas “de fondo”

Page 9: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

TemarioTemarioTemarioTemario

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. Máquinas de Turing

8. Computabilidad, complejidad computacional

Page 10: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Además (“bonus”)Además (“bonus”)Además (“bonus”)Además (“bonus”)

•Día lunes, en los primeros 25±5 minutos...•Transparencia con fondo negro (para evitar confusiones)...

Page 11: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Además (“bonus”)Además (“bonus”)Además (“bonus”)Además (“bonus”)

•Asistencia 100% voluntaria (y contenido no evaluado). Por cultura general, y contexto.

Historia de “la idea de computación”

•Día lunes, en los primeros 25±5 minutos...•Transparencia con fondo negro (para evitar confusiones)...

Page 12: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

““La idea de computación” ???La idea de computación” ???““La idea de computación” ???La idea de computación” ???

Algoritmos y máquinas. Se buscó entender cómo pensamos, y una vez entendido, reconstruirlo.

Otra forma de decirlo: es la historia de la formalización del pensamiento abstracto. Por eso que se entrelazan dos hebras:

- la que llevó a entender las bases y los límites de las matemáticas

- la que llevó a los computadores y a la inteligencia artificial

Page 13: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Temario ahí (aproximado)Temario ahí (aproximado)Temario ahí (aproximado)Temario ahí (aproximado)

-Lulio-Leibniz-Boole-Cantor-Hilbert-Gödel-Turing- ... ? (según tiempo)

•Bibliografía: Martin Davis, Engines of Logic (también disponible como pdf)

Page 14: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?

• A la derecha, don Algoritmo, o mejor dicho, Muhammad ibn Mūsā

al-Khwārizmī.

• Escribió un libro en 825… …que se tradujo en el siglo XII como

"Algoritmi de numero Indorum".

• Eso significaba "al-Khwārizmī hablando sobre los números hindúes" …

Page 15: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?

… pero se entendió como "Algoritmos sobre los números hindúes".

• Como el libro se trataba de métodos de cálculo, se supuso que los tales "algoritmos" eran esos métodos.

• Y así don "Al-Goritmo"  nos hizo dos aportes: uno queriendo y el otro sin querer. Ambos importantes.

Page 16: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?

• Es vital en matemáticas tener una buena notación (fue una virtuosa obsesión de otros personajes que vendrán luego, como Leibniz y Boole).

Las matemáticas jamás podrían haber avanzado como lo hicieron, si no se hubiera reemplazado los números romanos (I,II,III) por los hindúes (1,2,3). Merci, Muhammad.

Page 17: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?¿Qué es un algoritmo?

• Pero además obtuvimos no sólo una palabra, sino un concepto clave: algoritmo.

• Tener palabras precisas para conceptos no triviales, le toma siglos a las civilizaciones. Merci, traductores malos del siglo XII.

• Informalmente, un algoritmo es un procedimiento claramente definido que nos permite resolver un problema en una cantidad de tiempo finita.

• Formalmente: 8 siglos después.

Page 18: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Repaso (recordatorio) de algunas Repaso (recordatorio) de algunas cosascosas

Repaso (recordatorio) de algunas Repaso (recordatorio) de algunas cosascosas

Lógica.

•Trabajamos con expresiones que pueden ser verdaderas o falsas (V,F), y 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 informática se suele usar 1 y 0 en lugar de V y F (respectivamente).

Page 19: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 20: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 21: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 22: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 23: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 24: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ConjuntosConjuntosConjuntosConjuntos

Conjuntos: informalmente, una colección bien definida de objetos.

“Bien definida” definición sin ambigüedad

¿“Colección”? ¿”Objetos”?

No es trivial la definición exacta. Sobre todo después de la intervención de Bertrand Russell, a fines del s. XIX.

En principio uno tendería a decir que toda propiedad P define un conjunto: “sean todos los x tales que P(x) es cierto”.

Page 25: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

El problema aparece, por ejemplo, con P(x)=“x es un conjunto que no se incluye a si mismo”.

Pregunta: ¿R(P)R(P)?

Si R(P)R(P), entonces no verifica P, por lo tanto no debiera estar en R(P) R(P)R(P)Pero si R(P)R(P), entonces verifica P, y por lo tanto sí debiera estar en R(P) R(P)R(P)

Page 26: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ConjuntosConjuntosConjuntosConjuntos

Es la “paradoja de Russell”. ¿Por qué surge?

•R(P) es un conjunto de conjuntos. Eso no es pecado; cuando uno toma (por ejemplo) “todos los subconjuntos de {0,1,2,3}”, hace justamente eso.

•El problema sí surge del hecho de que no hemos definido el universo de objetos que estamos considerando. Es demasiado vago!!

•Solución: varias.

Page 27: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ConjuntosConjuntosConjuntosConjuntos

La más popular: usar los axiomas de Zermelo-Frankel para definir lo que es un conjunto (y el monstruo de la paradoja nunca aparece).

Definir conjuntos a través de propiedades sí funciona, pero restringiéndose a objetos que estén en algún conjunto ya construido (como el ejemplo de los primos).

Sin embargo la paradoja (o el poder) de la auto-referencia volverá a aparecer en el curso.

“Los cretenses siempre mienten.” Epiménides (un cretense)

Page 28: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ConjuntosConjuntosConjuntosConjuntos

•Para evitar paradojas, y tener punto de referencia, se suele trabajar dentro de un conjunto, el “universo” o “conjunto universal” U.

•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).

Page 29: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 30: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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)

Page 31: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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 and A (A B) = A

Page 32: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 33: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

ConjuntosConjuntosConjuntosConjuntos

Un par de conjuntos se dicen disjunto 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.

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.

Page 34: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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:•Que P(n0) es cierta [“caso base”]•Que si P(n) es cierta (para cualquier n ≥ n0), entonces P(n+1) también es cierta [“paso inductivo”]

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.

Page 35: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 36: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 37: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 38: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 39: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 40: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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 “)”.

Page 41: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 42: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 43: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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,)}

Page 44: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 45: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 46: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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).

Page 47: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 48: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 49: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 50: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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].

Page 51: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 52: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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?

Page 53: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Relaciones: refinamientosRelaciones: refinamientosRelaciones: refinamientosRelaciones: refinamientos

Nota: La relación entre relaciones de equivalencia y particiones es recíproca: dada una partición de un conjunto, podemos definir una relación de equivalencia (según si los elementos quedan juntos o no).

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 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.

Page 54: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.]

Page 55: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 56: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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

Page 57: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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’

Page 58: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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 A=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

Page 59: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.}

Page 60: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 61: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 62: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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} }, {{}}.

Page 63: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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.

Page 64: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

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 “numerables” (o “enumerables”).

Hablaremos más sobre esto en transparencias negras, al llegar a Georg Cantor.

•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.

Page 65: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

input outputComputador

Input & Output:

Información digital Secuencia de símbolos

Computador:

•Máquina con estados internos (finitos!)•Puede que con memoria que también es información digital!

Page 66: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

Por lo tanto, necesitamos algunas nociones sobre cómo trabajar formalmente con secuencias de símbolos.

ALFABETO: •Conjunto finito, no vacío, de símbolos.•Por lo general lo escribiremos

Ejemplos:

= {0,1} = {a,b} = {a,b,c,...,z,0,...,9} = {a,...,z,A,...,Z,” “} ese “ “ es un espacio en blanco = {(,)} los símbolos son “(“ y “)”

Page 67: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

•Los símbolos son indivisibles; por lo tanto, no tendremos alfabetos del tipo { a, b, ab }.

•Ya sabemos lo que es 2= . Más en general, escribiremos

vecesk

k

•Las palabras de largo k con el alfabeto serán los elementos de k. •En este caso anotaremos las tuplas sin paréntesis ni comas. Por ejemplo, si ={0,1}, las palabras de largo 2 serán 00,01,10,11.

Page 68: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

•Usaremos la letra (o a veces ) para denotar la palabra vacía, formada por 0 símbolos.

•Definimos 0= {}

•El conjunto completo de palabras con el alfabeto se llama estrella de Kleene y corresponde a

0

*

k

k

•En ocasiones se quiere excluir a la palabra vacía; en ese caso se anota

1k

k

Page 69: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

•Nótese que * es un conjunto infinito (pero numerable) de palabras, cada una de las cuales tiene una cantidad finita de caracteres.

•Dada una palabra w*, usaremos |w| [o a veces length(w)] para denotar su longitud, es decir, la cantidad de símbolos que la componen.

•Por definición, ||=0.

NOTA: por lo general se usan letras minúsculas del comienzo del abecedario para denotar símbolos, mientras que las letras minúsculas del final del abecedario suelen denotar palabras.

Page 70: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

•La concatenación de dos palabras se denota escribiendo una después de la otra. Por lo tanto, si u=u1u2...un, v=v1...vm, entonces w=uv será w = u1u2...un v1...vm

•Dados dos conjuntos de palabras A y B, la concatenación de los conjuntos será AB = { w: w=uv, uA, vB }

*•Esto permite escribir

}{* •Nótese que, por otro lado, •Además se tiene la recursión

1 kk

Page 71: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

•Nótese que la concatenación es una operación asociativa : (uv)w = uvw = u(vw)

•Además, tiene un elemento neutro: u = u = u

•Algo que no verifica es conmutatividad: en general, no se cumple que uv = vu

•Un conjunto no vacío dotado de una operación binaria asociativa se llama semigrupo.•Si además hay unidad (neutro), se llama monoide.•Ergo, * con la concatenación es un monoide.

Page 72: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

•Una operación unaria sobre palabras es la transposición: si u=u1u2...un, entonces su transposición es

uR = unun-1...u1

Definamos de nuevo la transposición, pero de manera recursiva (con recursión sobre la longitud de la palabra):

•Si |v|=0, vR = v.

•Si |v|=k>0, sean y uk-1 tales que v=u.

Entonces vR = uR.

Page 73: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Alfabetos y palabrasAlfabetos y palabrasAlfabetos y palabrasAlfabetos y palabras

Sean u,v*. Decimos que

•u es un sufijo de v x*: v=xu

•u es un prefijo de v x*: v=ux

•u es una subpalabra de v x,y*: v=xuy

Si los x (ó y) respectivos son no nulos (o sea, distintos de ), entonces se dice que u es un sufijo (o prefijo o subpalabra) propio de v.

Si u es subpalabra de v, se anota a veces vu o también u v.

Page 74: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Un lenguaje L sobre un alfabeto , es cualquier subconjunto de *.

Ejemplo: a,ba,b,aa,ab,ba,bb,aaa,aab,aba, abb,

baa,bab,bba,bbb,aaaa,… ….}

L1 = {a,aa,aab}

L2 = {anbn:n>0} = {ab,aabb,aaabbb,…}

• Ambos son lenguajes (subconjuntos de ).

• L1 es finito, mientras que L2 es infinito. Por lo general nos interesará el caso infinito.

Page 75: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Ya que los lenguajes son simplemente conjuntos, se aplican las operaciones de conjuntos (respecto al conjunto universal *).

•Intersección: L1L2 = { u: uL1 uL2 }

•Unión: L1L2 = { u: uL1 uL2 }

•Complemento: LC = * \ L

•Nótese que para cualquier , L={} y L= son siempre lenguajes. OJO: son distintos!!

Page 76: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Además las siguientes operaciones se extienden de manera natural a lenguajes:

•Transposición: LR = { uR: uL }

•Concatenación: L1L2 = { uv: uL1, vL2 }

•Usando eso, definimos

L0= {}Lk = L Lk-1

y con eso ,

0

*

k

kLL

1k

kLL

Es decir, L* está formado por las concatenaciones de (cero o más) palabras de L.

Page 77: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Con frecuencia un lenguaje se define como la extensión de otro, habitualmente como la cerradura respecto a algo.

Por ejemplo: dado L, podemos considerar su cerradura respecto a:

•Concatenación (el menor lenguaje que incluya a L y sea cerrado bajo concatenación: será L+)

•Transposición (el menor lenguaje que incluya a L y sea cerrado bajo transposición: será LLR)

•Subpalabras (el menor lenguaje que incluya a L y a todas las subpalabras de palabras de L)

•Prefijos (el menor lenguaje que incluya a L y a todos los prefijos de palabras de L)

Page 78: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Más ejemplos de lenguajes:

={0,...,9,k,.,-}, L={w*: w es un RUT válido}

={a,b}, L={w*: w contiene una cantidad par de “b”}

={(,)}, L={w*: los paréntesis están bien balanceados}

={0,1}, L={w*: w es un nº primo}

={0,1}, L={w*: w= 1a01b01c01n, n>2, y an+bn=cn}

=ASCII, L={w*: w es un programa en ANSI C que no se detiene nunca}

Page 79: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Como se puede ver de los ejemplos anteriores,

•Un lenguaje puede representar cosas muy simples, o muy complicadas.

•Suele ser interesante poder responder acaso un string pertenece o no a un lenguaje dado.

•En algunos casos, es la existencia o no de strings en el lenguaje lo que interesa!

Veremos en algún momento que no todo lenguaje puede ser reconocido por un computador; y en algunos casos, hay cotas mínimas para el tiempo o espacio necesarios.

Page 80: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Ejercicios:

Encuentre la forma de representar:

•Todos los grafos simples orientados, usando un alfabeto de a lo más 3 caracteres.

•El conjunto de los números primos, usando un alfabeto con 1 carácter.

•El conjunto de todas las expresiones booleanas (i.e., fórmulas del tipo (x1x2)x3, x1x2, etc).

Page 81: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

LenguajesLenguajesLenguajesLenguajes

Ejercicios:

Sean L1, L2 y L3 tres lenguajes sobre el alfabeto .

1) Demuestre que L1 (L2 L3) = L1L2 L1L3

2) Demuestre que L1 (L2 L3) L1L2 L1L3

y que esa inclusión es propia (i.e., existen casos en que no se tiene “=“)..

Page 82: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemos

Volvamos al modelo conceptual de una máquina que procesa información.

input outputComputador

•El computador estará siempre en algún estado.

•La cantidad de estados posibles es finita.

Hablamos de una máquina de estados finitos.

Page 83: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemos

input outputMEF

•Más adelante veremos que al asumir esto ya hemos limitado (mucho) la capacidad del computador.

•Para recuperar esa capacidad (en unas semanas) tendremos que dotar a la MEF con una memoria infinita.

•Sigamos simplificando. Supongamos ahora que podemos ver el estado de la MEF. Usaremos eso para ver “la respuesta” de la MEF al input. O sea, elimino el output.

Page 84: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemos

input MEF

•Por un momento supongamos que además no hay input.•El tiempo será discreto: tendremos el instante 0, luego el instante 1, luego el 2, etc...

•Supondremos (por ahora) que la MEF es determinista : es decir, el estado en tiempo t+1 está completamente determinado por el estado en el tiempo t.

estado actual

Page 85: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemos

input MEF

•Sea S el conjunto de estados internos de la MEF.

•La forma en que la MEF pasa de un estado a otro la anotaremos como una función d:SS.

Si anotamos el estado en tiempo t mediante st, lo que tenemos es: st+1 = d(st)

estado actual

Page 86: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemosMáquinas: simplifiquemos

Lavadoraestado actual

•Mi lavadora (simplificada): S={remojo, lavado, enjuague, centrifugado, apagada} = {r,l,e,c,a}

r l e c a

•En general (S,d) definirán un grafo dirigido, en que el grado de salida de cada nodo es 1:

ab

d

c

Page 87: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas con inputMáquinas con inputMáquinas con inputMáquinas con input

MEFestado actual

Como no tenemos memoria en la MEF (más allá de la dada por el estado interno) no leeremos el input de un viaje, sino un símbolo a la vez.

•En cada instante t, además de conocer el estado interno, conocemos la t-ésima letra del input.

•Ahora el cambio de estado (la función d) dependerá de ambas cosas: si el alfabeto del input es , entonces d:SS

input

* S

Page 88: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas con inputMáquinas con inputMáquinas con inputMáquinas con input

-Input con alfabeto ={0,1}•0: no aprieto el interruptor•1: sí lo aprieto

-Estados de la MEF: ON y OFF

PILA

interruptor

Transiciones:d(ON,0)=ONd(OFF,0)=OFFd(ON,1)=OFFd(OFF,1)=ON

OFF ON

1

1

00

Page 89: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

Máquinas con inputMáquinas con inputMáquinas con inputMáquinas con input

-Input con alfabeto ={0,1,2}

•1: aprieto el interruptor 1•2: aprieto el interruptor 2•0: no aprieto ninguno

-Estados de la MEF ?

PILA

1

2

S={00,01,10,11}, donde cada carácter representa el estado de un interruptor.

Sólo en el estado 11 la ampolleta está ON.

00 10

01 11

1

1

1

1

2 2 2 2

0 0

00

Page 90: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

•Marquemos el conjunto de estados “de aceptación” (los que encienden la ampolleta) con un doble círculo.

Máquinas con inputMáquinas con inputMáquinas con inputMáquinas con input

PILA

1

2

00 10

01 11

1

1

1

1

2 2 2 2

•Señalemos el estado inicial del sistema con una flecha (a veces sólo se pone un “>”).

•Esta máquina “acepta” el lenguaje L = { w*: w contiene una cantidad impar de 1 y de 2}

0 0

00

Page 91: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

AFD: Autómatas finitos deterministasAFD: Autómatas finitos deterministasAFD: Autómatas finitos deterministasAFD: Autómatas finitos deterministas

Un autómata finito determinista está definido por:

•Un conjunto finito de estados internos, S={q0,..., qn}•Un alfabeto de entrada, •Una función de transición de estados, d:SS•Un estado inicial q0S•Un subconjunto de estados de aceptación, FS

AFD y Lenguajes:El lenguaje aceptado por un AFD es el conjunto de palabras en * tales que, a partir del estado inicial y siguiendo la función de transición, se llega a un estado de aceptación.

Page 92: Introducción a la Informática Teórica ILI 255. ILI 255 YO: Andrés Moreira amoreira@inf.utfsm.cl andres.moreira@usm.cl “Investigador Joven” Oficina F130,

AFD: Autómatas finitos deterministasAFD: Autómatas finitos deterministasAFD: Autómatas finitos deterministasAFD: Autómatas finitos deterministas

¿Cuál es el lenguaje aceptado por este AFD?

5

3

4

2

1a

a

a

a

a

b

bb

b

b