Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por a∈R se entiende que a pertenece a R. Normalmente, podremos definir a un conjunto de dos maneras: Por extensión: Se enumeran en forma explı́cita los elementos que pertenecen al conjunto. Por ejemplo, A = {a, e, i, o, u} Esta forma de definir conjuntos funciona bien si el conjunto que queremos definir tiene un número finito de elementos. Por comprensión: Un conjunto se define por comprensión de la siguiente manera: {x | P (x)}, Jorge Baier Aranda, PUC 1 es decir, al conjunto pertenecen todos los elementos x que cumplen con la propiedad P . Alternativamente, podemos usar: {x ∈ A | P (x)} Ejemplos: 1. {n | n ∈ N y n es par}. 2. {p ∈ N | p es primo}. Es preciso observar que en la primera definición, la propiedad P no puede ser cualquier cosa. De hecho, la definición acepta definir conjuntos como el siguiente: R = {x | x 6∈ x}, es decir, el conjunto de todos los conjuntos que no pertenecen a sı́ mismos. Esta definición es contradictoria puesto que al hacernos la pregunta ¿R ∈ R? no obtenemos una respuesta. Jorge Baier Aranda, PUC 2 Supongamos que la respuesta es sı́. Luego, por definición del conjunto, R 6∈ R VW. Supongamos que la respuesta es no. Luego, R 6∈ R, y, por la definición de R, R debe pertenecer al conjunto R, es decir, R ∈ R! VW Esto nos deja la lección de que hay que ser cuidadoso con las propiedades que se escogen. La segunda definición de conjuntos es completamente segura cuando A es un conjunto fijo. Jorge Baier Aranda, PUC 3 Definiciones Elementales Si todos los elementos de un conjunto A pertenecen a un conjunto B, diremos que A está contenido en (o es subconjunto de) B. Esto se anota como A ⊆ B, o B ⊇ A. Dos conjuntos A y B (A = B) son iguales si y sólo si contienen los mismos elementos. Un conjunto A es subconjunto propio de B si y sólo si: A ⊆ B y A 6= B, que frecuentemente se escribe como: A(B Jorge Baier Aranda, PUC 4 Operaciones Elementales A ∪ B, es la unión de A y B, y se define por: {x | x ∈ A o x ∈ B} A ∩ B, es la intersección de A y B, y se define por: {x | x ∈ A y x ∈ B} A − B, es la diferencia de A y B, y se define por: {x | x ∈ A y x 6∈ B} A × B, es el producto cartesiano de A y B, y se define por: {(x, y) | x ∈ A y y ∈ B} Jorge Baier Aranda, PUC 5 2A, es el conjunto potencia de A y define por: {x | x ⊆ A} Jorge Baier Aranda, PUC 6 Relaciones Una relación binaria R entre dos conjuntos A y B es un subconjunto del producto cartesiano entre A y B, es decir, R ⊆ A × B. Si el par (a, b) ∈ R, normalmente se acostumbra a decir que aRb. Si (a, b) 6∈ R, entonces decimos que (a, b) 6∈ R (o a 6 Rb). Definición 1. Una relación binaria R sobre un conjunto A es un subconjunto de A × A. Nos interesarán algunas propiedades de las relaciones. Sea R una relación binaria sobre un conjunto A. R podrı́a tener alguna de las siguientes propiedades: Jorge Baier Aranda, PUC 7 Refleja: R es refleja si y sólo si: aRa, para todo a ∈ A. Simetrı́a: R es simétrica si y sólo si: aRb entonces bRa, para todo a, b ∈ A. Asimetrı́a: R es asimétrica si y sólo si: aRb entonces b 6 Ra, para todo a, b ∈ A. Antisimetrı́a: R es antisimétrica si y sólo si: aRb y bRa implica que a = b, para todo a, b ∈ A. Transitividad: R es transitiva si: aRb y bRc implica que aRc, para todo a, b, c ∈ A. Una relación de equivalencia es una relación simétrica, refleja y transitiva. Jorge Baier Aranda, PUC 8 Clausuras de Relaciones Si P representa una propiedad o una colección de propiedades de relación, entonces, la clausura-P de una relación binaria R sobre un conjunto A, es el subconjunto más pequeño de A × A, que cumple la propiedad y que contiene a R. Normalmente, la clausura refleja y transitiva de una relación R sobre un conjunto cualquiera A, se anota como R∗ y se puede construir a partir de R siguiendo las siguientes reglas: • • • • Si (a, b) ∈ R, entonces (a, b) ∈ R∗ (a, a) ∈ R∗, para todo a ∈ A. Si (a, b) ∈ R∗ y (b, c) ∈ R∗, entonces (a, c) ∈ R∗. Nada más pertenece R∗ Jorge Baier Aranda, PUC 9 Sea R = {(1, 3), (1, 1), (1, 4), (3, 2)}, definida sobre S = {1, 2, 3, 4}. Siguiendo las reglas de construcción de arriba se obtiene que: R∗ = {(1, 1), (2, 2), (3, 3), (4, 4), (1, 3), (1, 2), (1, 4), (3, 2)}. Jorge Baier Aranda, PUC 10 Conjuntos Infinitos No tiene mucho sentido hablar del “tamaño” de un conjunto infinito. Sin embargo, es razonable cuestionarse algunas cosas. Como por ejemplo: ¿Hay más racionales que naturales? ¿Son más los múltiplos de 2 que los de 4? ¿Quienes son más, los reales o los naturales? Para poder comparar tamaños de conjuntos infinitos se de define la noción de equinumeroso, con la idea intuitiva que dos conjuntos equinumerosos tienen “la misma” cantidad de elementos. Definición 2. [Conjuntos equinumerosos] Dos conjuntos A y B son equinumerosos si es que es posible definir una función biyectiva f :A→B Jorge Baier Aranda, PUC 11 Ejemplo: El conjunto de múltiplos de 2 y el de múltiplos de 4 son equinumerosos. La función biyectiva está dada por: f (2k) = 4k. Ejercicio: Demuestre que Z y N son equinumerosos. Ejercicio: Demuestre N y N × N son equinumerosos. Si A es un conjunto infinito, entonces se dice que A es contable si es que A y N son equinumerosos. Jorge Baier Aranda, PUC 12 Conjuntos incontables Hay muchos conjuntos que son incontables. El ejemplo más clásico es el caso de 2N (Teorema de Cantor). Demostración: En efecto, supongamos que 2N es contable. Esto significa que los elementos de 2N pueden ser enumerados como: 2N = {S0, S1, S2, . . .} Si esta construcción es válida entonces podrı́amos formar el siguiente conjunto: D = {n ∈ N | n 6∈ Sn} Debido a que D es un conjunto de naturales entonces deberı́a ser igual a Sk para algún k. La pregunta que nos hacemos es ¿k ∈ D? Sólo hay dos posibilidades: Jorge Baier Aranda, PUC 13 1. Supongamos que la respuesta es sı́. Entonces k ∈ Sk , pero por la definición de D, k 6∈ D, es decir k 6∈ Sk . VW 2. Supongamos que la respuesta es no. Entonces k 6∈ Sk y luego, dado que la propiedad de D se verifica, tenemos que k ∈ D y por lo tanto k ∈ Sk . VW. Podemos concluir que tal enumeración para 2N no existe y por lo tanto 2N es incontable. Jorge Baier Aranda, PUC 14 Inducción El principio de inducción matemática es esencial para demostrar propiedades de los números naturales. Sin embargo, este principio se puede usar en general para demostrar cualquier propiedad de conjuntos de elementos que se pueden construir inductivamente. Nos referiremos al principio de inducción en los naturales y a definciones inductivas. Jorge Baier Aranda, PUC 15 Inducción en los Naturales Sea P (n) una propiedad acerca de un número natural arbitrario n, por ejemplo: n X i=0 i= n(n + 1) 2 Si se logra establecer: 1. P (0). (caso base) 2. Si se cumple P (n) implica que se cumple P (n+1), para n ≥ 1 (paso inductivo). Una vez demostrados estos dos puntos, es posible concluir que la P (n) se cumple para cualquier natural n. Ejercicio: Demuestre que Jorge Baier Aranda, PUC Pn i=0 i = n(n+1) . 2 16 El principio de inducción completa establece que para demostrar una propiedad P sobre los naturales, basta con demostrar: 1. P (0). (caso base) 2. Si se cumple P (0), P (1), . . . , P (n) implica que se cumple P (n+1), para n ≥ 1 (paso inductivo). Jorge Baier Aranda, PUC 17 Definiciones Inductivas Las definiciones inductivas están inspiradas en el principio de inducción. Para definir una función (o propiedad) en forma inductiva se definen los casos básicos y luego los casos inductivos. En el caso básico se define la función (o propiedad) para los entes u objetos más simples1. El (o los) casos inductivos tienen como caracterı́stica que las definiciones de la función (propiedad) de un ente se hace en función de el valor de la función (propiedad) para entes más sencillos. La siguiente es una definición inductiva para la función factorial sobre los naturales: ( 1 si n = 0 f act(n) = n · f act(n − 1) en otro caso 1 Los que no se definen en términos de otros Jorge Baier Aranda, PUC 18 La serie de los números de Fibonacci también se puede definir de esta manera: 0 fn = 1 fn + fn−1 si n = 0 si n = 1 en otro caso El principio de inducción es especialmente adecuado para demostrar propiedades de funciones definidas en forma inductiva. Ejemplo: Demuestre que fn2 = fn−1 · fn+1 + (−1)n+1, para todo natural n ≥ 1 Jorge Baier Aranda, PUC 19 Grafos Un grafo finito no dirigido G = (V, E) es un par formado por: • V : Un conjunto de vértices, o nodos. • E: Un conjunto de pares no ordenados de vértices llamados aristas, o arcos. Ejemplo: V = {1, 2, 3, 4} E = {(i, j) | |i − j| = 1 o i = j} Corresponde a la siguiente representación gráfica: 1 2 3 4 Un camino en un grafo G = (V, E) es una secuencia de vértices v1, v2, . . . , vn tal que cada par (vi, vi+1) ∈ E para cada 1 ≤ i < n. Jorge Baier Aranda, PUC 20 Un grafo dirigido es un grado en el cual las aristas tienen un sentido. Formalmente, es un par (V, E) donde • V es un conjunto de vértices. • E es un conjunto de pares ordenados de elementos de V . Ejemplo: V = {1, 2, 3, 4} E = {i → j | i − j = 2 o i = j} Si el arco u → v ∈ E, entonces se dice que u es el antecesor de v y que u es el sucesor de v. Jorge Baier Aranda, PUC 21 Árboles Un árbol es un tipo especial de grafo dirigido, que cumple las siguientes propiedades: 1. Hay un nodo v que no tiene predecesores y desde el cual hay un camino a cada nodo del grafo. (Tiene una raı́z ). 2. Exceptuando a la raı́z, cada vértice tiene exactamente un predecesor. (Un nodo tiene a lo más un padre). En la jerga de árboles, se acostumbra decir padre en vez de antecesor e hijo en vez de sucesor. Adicionalmente, se puede suponer que los hijos de un mismo nodo están ordenados de izquierda a derecha. Jorge Baier Aranda, PUC 22 Símbolos, Alfabetos y Palabras Un sı́mbolo es una entidad abstracta que no definiremos formalmente. Una definción del diccionario de la RAE: Tipo de abreviación de carácter cientı́fico o técnico, constituida por signos no alfabetizables o por letras, y que difiere de la abreviatura en carecer de punto Los sı́mbolos que utilizaremos en este curso son dı́gitos y letras. Un alfabeto es un conjunto finito de sı́mbolos. Ejemplos: Alfabeto binario = {0, 1} Alfabeto romano = {a, b, c, d, e, . . .} Alfabeto griego = {α, β, γ, δ, . . .} Frecuentemente, usaremos la letra Σ para referirnos a alfabetos. Jorge Baier Aranda, PUC 23 Una palabra es una secuencia finita de sı́mbolos yuxtapuestos de algún alfabeto. La palabra ε es una palabra con 0 sı́mbolos. Se acostumbra llamarla palabra vacı́a El conjunto de las palabras sobre un alfabeto Σ puede ser definido por: • ε es una palabra. • Si w es una palabra, entonces wa es una palabra, para todo a ∈ Σ. Ejercicio: Demuestre que aba es una palabra sobre Σ = {a, b, c}. Un lenguaje formal sobre un alfabeto Σ es un conjunto (posiblemente infinito) de palabras sobre Σ. Jorge Baier Aranda, PUC 24 Por ejemplo, si Σ = {a, e, i, o, u}, los siguientes son lenguajes: L1 = {auu, eae, a} L2 = ∅ L3 = {ε, a, oa} Es importante notar la diferencia entre los lenguajes ∅ y {ε}. Jorge Baier Aranda, PUC 25 Convenciones Frecuentemente usaremos letras para designar tanto a sı́mbolos como palabras. Para distinguirlos usamos las siguientes convenciones: • Las letras minúsculas a, b, c y d serán usadas normalmente para designar sı́mbolos. • Las letras minúsculas u, v, w, x, y, z y w son usadas para designar palabras. • Las letras mayúsculas L, R y S son usadas para designar lenguajes. Jorge Baier Aranda, PUC 26 Largo El largo de una palabra w corresponde al número de sı́mbolos que ésta tiene y se anota como |w|. Ejemplo: |abaco| = 5. Podemos definir inductivamente la función largo por: • |ε| = 0, • |wa| = 1 + |w|, donde w es una palabra. Ejercicio: Usando la definición, demuestre que |abaco| = 5 Jorge Baier Aranda, PUC 27 Concatenación Es posible concatenar dos palabras a través de la operación de concatenación ◦. De esta manera, si w1 = ca y w2 = sa, w1 ◦ w2 = casa La función de concatenación se puede definir inductivamente mediante: • x ◦ ε = x, para toda palabra x. • x ◦ wa = (x ◦ w)a, donde a es un sı́mbolo y x y w son palabras. Ejemplo: Demuestre que ε ◦ x = x. Hacemos la demostración por inducción en el largo de x. Jorge Baier Aranda, PUC 28 • Caso base. x = ε (|x| = 0). ε◦x=ε◦ε =ε (por definición de largo) =x • Paso inductivo. Supongamos que la propiedad se cumple para toda palabra w, de largo k. Demostraremos que, entonces, la propiedad se cumple para cualquier palabra de largo k + 1. (Hipótesis inductiva: ε ◦ w = w.) Demostración: ε ◦ wa = (ε ◦ w)a (por definición de concatenación) = wa (por hipótesis inductiva) Ejercicio: Demuestre que |x ◦ y| = |x| + |y|. Ejercicio: Demuestre que (x ◦ y) ◦ z = x ◦ (y ◦ z). Jorge Baier Aranda, PUC 29 Reverso Frecuentemente interesa obtener el reverso de una palabra w. El reverso de una palabra w, escrito por wr , es una palabra que contiene los mismos elementos que w, pero con los sus sı́mbolos en secuencia inversa. La función reverso se define de la siguiente manera: • εr = ε. • (xa)r = axr , donde a ∈ Σ y x es una palabra sobre Σ. Ejercicio: Demuestre que (x ◦ y)r = y r ◦ xr . Jorge Baier Aranda, PUC 30 Concatenación de Lenguajes También es posible definir la función de concatenación para lenguajes. De esta manera: L1 ◦ L2 = {x ◦ y | x ∈ L1, y ∈ L2} Por ejemplo, si L1 = {aa, bda, } y L2 = {a, bb}, L1 ◦ L2 = {aaa, aabb, bdaa, bdabb, a, bb} Nótese que L ◦ ∅ = ∅ y que L ◦ {ε} = L (¿por qué?). La notación Li se ocupa para denotar al lenguaje que resulta de la concatenación de L i veces consigo mismo. Li se puede definir inductivamente por: L0 = {} Li+1 = Li ◦ L Jorge Baier Aranda, PUC 31 Clausura de Kleene La clausura de Kleene de un lenguaje L, que se anota como L∗, está definida por, ∞ [ L∗ = Li. i=0 Ejemplo: Si L = {a}, L∗ = {ε, a, aa, aaa, aaaa, aaaaa, . . .} Si L = {0, 1}, L∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, . . .} Generalizando, si Σ es un alfabeto cualquiera, entonces Σ∗ es el conjunto de todas las palabras sobre Σ. Normalmente, se utiliza la notación L+ como una abreviación de L ◦ L∗. Jorge Baier Aranda, PUC 32 Sufijos, Prefijos y Subpalabras Una palabra x es prefijo de una palabra w, si existe una palabra y tal que xy = w. Una palabra x es prefijo propio de una palabra w, si existe una palabra y, con |y| > 0 tal que xy = w. Una palabra x es sufijo de una palabra w, si existe una palabra y tal que yx = w. Una palabra x es sufijo propio de una palabra w, si existe una palabra y, con |y| > 0 tal que yx = w. Una palabra y es subpalabra de una palabra w, si existen palabras x y z tales que xyz = w. Jorge Baier Aranda, PUC 33