Sei sulla pagina 1di 15

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacin Universidad Nacional Experimental de Guayana Maestra en Tecnologas

de la Informacin Asignatura: Anlisis y Diseo de Algoritmos

Realizado por: Isparraguirre, Lourdes. C.I: Marcano, Jacqueline. C.I: 14.118.609 Salazar, Carmen. C.I: Vasquez, Douglas. C.I: 15.781.752

Conjuntos Disjuntos

Ciudad Guayana, Febrero de 2008. Introduccin

Un conjunto es la agrupacin en un todo de objetos bien diferenciados en la mente o en la intuicin, por lo tanto, estos objetos son bien determinados y diferenciados. Es la reunin, agrupacin o coleccin de elementos bien definidos que tienen una propiedad en comn. Ejemplos: los alumnos de un colegio, los nmeros impares, los meses del ao, etc., siendo cada alumno del colegio, cada nmero impar, cada mes del ao, respectivamente, elementos de cada uno de los correspondientes conjuntos. Dos conjuntos son disjuntos si no tienen ningn elemento que pertenezca a ambos conjuntos al mismo tiempo. Ejemplo: Los dos conjuntos siguientes: {x/x es un nmero natural} {x/x es un da de la semana} Son disjuntos ya que no tienen ningn elemento comn.

Conjuntos Disjuntos

Conjuntos Disjuntos: Formalmente, dos conjuntos A y B son disjuntos si su interseccin es el conjunto vaco. Dos conjuntos son disjuntos cuando no tienen elementos comunes, es decir si, A B =

Los conjuntos de una tal coleccin son disjuntos por pares o mutuamente disjuntos si cualquier par de conjuntos distintos de ella son disjuntos. Formalmente, sea Ai un conjunto para cada i I (donde I es cualquier conjunto). La familia de conjuntos { Ai | i I} es disjunta por pares si para cada i, j I, con i j, Por ejemplo, la coleccin de conjuntos { {1}, {2}, {3},... } es disjunta por pares. Si la coleccin {Ai} es disjunta por pares, su interseccin es obviamente vaca:

Conjuntos Disjuntos

La implicacin inversa no es, sin embargo, cierta: la interseccin de la coleccin {{1, 2}, {2, 3}, {3, 1}} es vaca, pero la coleccin no es disjunta por pares; no hay, de hecho, dos conjuntos disjuntos en ella. Una particin de un conjunto X es una coleccin de subconjuntos no vacos {Ai | i I} de X, disjuntos por pares, tales que

Ejemplos: Conjuntos disjuntos Conjuntos no disjuntos

A = { 2, 4, 6 } B = { 1, 3, 5 }
A y B son disjuntos.

M = { o, p, q, r, s } N = { s, t, v, u }
M y N no son disjuntos.

C = { x/x es una letra del alfabeto } D = { x/x es un nmero }


C y D son disjuntos Representacin Grfica: A B

P = { x/x es una letra de la palabra aritmtica } Q = { x/x es una letra de la palabra algebra }
P y Q no son disjuntos

7 5 1

9 3 2

4 6 8

Como puedes observar los conjuntos A y B no tienen elementos comunes, por lo tanto son Conjuntos Disjuntos

PRIMER ENFOQUE

Conjuntos Disjuntos

Relaciones de equivalencia Una relacin R se define en un conjunto C si para todo par de elementos (a,b),a,b 2 C,a R b es verdadera o falsa. Una relacin de equivalencia es una relacin que satisface tres propiedades: reflexiva, simtrica y transitiva. Dada una relacin de equivalencia _, el problema natural es decidir si a _ b, para cualesquiera a y b. La clase de equivalencia de un elemento a 2 C es el subconjunto de C que contiene todos los elementos relacionados con a. Las clases de equivalencia forman una particin de C: todo elemento de C aparece en exactamente una clase de equivalencia. Para decidir si a _ b, slo necesitamos comprobar si a y b estn en la misma clase de equivalencia. Representacin de conjuntos disjuntos La representacin inicial es una coleccin con n conjuntos, cada uno con un elemento (todas las relaciones son falsas excepto las reflexivas). Cada conjunto tiene un elemento diferente, as que Ci Cj = 0 Mantenemos en un vector el nombre de la clase de equivalencia de cada elemento. Todos los elementos se numeran de 1 a n. As, al principio se tiene Ci = {i} para i = 1 hasta n. Todos los elementos se numeran de 1 a n. Cada subconjunto tomara su nombre de uno de sus elementos, su representante, por ejemplo: el valor ms pequeo. Mantenemos en un vector el nombre del subconjunto disjunto de cada elemento

Conjuntos Disjuntos

Operaciones validas La representacin inicial es una coleccin de n conjuntos, Ci. Cada conjunto tiene un elemento diferente, Ci \Cj = /0 As, al principio se tiene Ci = {i}. Hay dos operaciones vlidas. La bsqueda devuelve el nombre del conjunto (es decir, la clase de equivalencia) de un elemento dado. La unin combina dos clases de equivalencia que contienen a y b en una clase de equivalencia nueva, destruyndose las originales.

Pseudocodigo (i) - Bsqueda tipo Elemento = entero; Conj = entero;

Conjuntos Disjuntos

ConjDisj = vector [1..N] de entero funcion Buscar1 (C, x) : Conj devolver C[x] fin funcion La bsqueda es una simple consulta O(1). El nombre del conjunto devuelto por bsqueda es arbitrario. Todo lo que importa es que bsqueda(x)=bsqueda(y) si y solo si x e y estn en el mismo conjunto. Pseudocodigo (ii) - Unin procedimiento Unir1 (C, a, b) i := min (C[a], C[b]); j := max (C[a], C[b]); para k := 1 hasta N hacer si C[k] = j entonces C[k] := i fin para fin procedimiento La unin toma O(n). No importa, en lo que concierne a correccin, que conjunto retiene su nombre. Una secuencia de n1 uniones (la mxima, ya que entonces todo estar en un conjunto) tomara un tiempo de O(n2). La combinacin de m bsquedas y n1 uniones toma O(m+n2). Si tambin hubiese O(n2) operaciones bsqueda, el rendimiento sera bueno porque el tiempo de ejecucin total sera O(1) para cada operacin unin o bsqueda en el curso del algoritmo.

Conjuntos Disjuntos

SEGUNDO ENFOQUE Examinaremos una solucin al problema que hace fcil la unin, pero difcil la bsqueda. Se utiliza un rbol para representar cada conjunto, pues cada elemento en un rbol tiene la misma raz.
-

La raz se utiliza para nombrar el conjunto. La representacin de los rboles es fcil porque la nica informacin que necesitaremos es un apuntador al padre. Cada entrada p[i] en el vector representa el padre del elemento i. Si i es una raz, entonces p[i]=i

Una bsqueda sobre el elemento x se efecta devolviendo la raz del rbol que contiene x. Para ejecutar una unin de dos conjuntos se combinan ambos rboles haciendo que la raz de un rbol apunte a la raz del otro.

Conjuntos Disjuntos

funcion Buscar2 (C, x) : Conj r := x; mientras C[r] <> r hacer r := C[r] fin mientras; devolver r fin funcion Una bsqueda sobre el elemento x se efecta devolviendo la raz del rbol que contiene x. La bsqueda de un elemento x es proporcional a la profundidad del nodo con x. En el peor caso es O(n)

procedimiento Unir2 (C, raiz1, raiz2) { supone que raiz1 y raiz2 son races } si raz1 < raiz2 entonces C[raz2] := raz1 sino C[raz1] := raz2 fin procedimiento La unin de dos conjuntos se efecta combinando ambos apuntamos la raz de un rbol a la del otro. La unin toma O(1). La bsqueda de un elemento x es proporcional a la profundidad del nodo que representa a x; en el peor caso es O(n) rboles:

Conjuntos Disjuntos

La combinacin de m bsquedas y n1 uniones toma O(mn) en el peor de los casos. Unin por alturas Las uniones anteriores se efectuaban de modo arbitrario. Una mejora sencilla es realizar las uniones haciendo del profundo un sub rbol del rbol mas profundo. La altura se incrementa solo cuando se unen dos rboles de igual altura. rbol menos

Pseudocdigo procedimiento Unir3 (C, A, raiz1, raiz2) { supone que raiz1 y raiz2 son races } si A[raiz1] = A[raiz2] entonces A[raiz1] := A[raiz1] + 1; C[raiz2] := raiz1 sino si A[raiz1] > A[raiz2] entonces C[raiz2] := raiz1

10

Conjuntos Disjuntos

sino C[raiz1] := raiz2 fin procedimiento Se demuestra que si las uniones se hacen por altura, la profundidad de cualquier nodo nunca es mayor que log n. Un nodo est inicialmente a la profundidad 0. Cuando su profundidad se incrementa como resultado de una unin, se coloca en un rbol que es al menos el doble de grande que antes. As, su profundidad se puede incrementar a lo ms, log n veces Cuando su profundidad se incrementa como resultado de una unin, se coloca en un rbol al menos el doble de grande. As, su profundidad se puede incrementar a lo mas, log2(n) veces. El tiempo de ejecucin de una bsqueda es O(log(n)). Combinando m bsquedas y n1 uniones, O(mlog(n)+n). Eso implica que el tiempo de ejecucin de una operacin bsqueda es O(log n) y una secuencia de m bsquedas y n1 uniones tarda O(m log n +n )

Compresin de caminos La compresin de caminos se ejecuta durante una operacin bsqueda y es independiente de la estrategia con que se efecten las uniones. En la bsqueda de un elemento x, todo nodo en el camino de x a la raz cambia su padre por la raz. As, los accesos futuros sobre esos nodos compensarn el trabajo adicional de hacer la compresin de caminos.

11

Conjuntos Disjuntos

funcion Buscar3 (C, x) : Conj r := x; mientras C[r] <> r hacer r := C[r] fin mientras; i := x; mientras i <> r hacer j := C[i]; C[i]:= r; i := j fin mientras; devolver r fin funcion

Rangos La compresin de caminos no es del todo compatible con la unin por altura, porque se pueden cambiar las alturas de los rboles. Las alturas almacenadas para cada rbol se convierten en alturas estimadas (llamadas rangos), pero ocurre que la unin por rango es tan eficiente en teora como la unin por altura.

12

Conjuntos Disjuntos

Conclusin

13

Conjuntos Disjuntos

Bibliografa Gonzlez Carlomn, Antonio; Retculo completo de Boole, lgica matemtica, teora de conjuntos (2006); Universidad de Oviedo. Lipschutz, Seymour; Teora de conjuntos y temas afines (1992); McGraw-Hill / Interamericana de Espaa, S.A.; http://es.wikipedia.org/wiki/Conjuntos_disjuntos http://es.wikipedia.org/wiki/Teor%C3%ADa_de_conjuntos http://www.lfcia.org/~valderru/alg/conjuntos_disjuntos.pdf

14

Conjuntos Disjuntos

ndice Contenido Introduccin Conjuntos Disjuntos Primer Enfoque Relaciones de Equivalencia Representacin de Conjuntos Disjuntos Operaciones vlidas Pseudocdigo Bsqueda Pseudocdigo Unin Segundo Enfoque Pseudocdigo Bsqueda Pseudocdigo Unin Unin por Altura Compresin de camino Rangos Conclusin Bibliografa 7 8 9 10 11 12 13 3 4 5 5 6 Pag. 1 2

15

Potrebbero piacerti anche