Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos"

Transcripción

1 Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección de conjuntos disjuntos, permitiendo dos operaciones: (1) la unión de dos conjuntos de la colección y (2) conocer en qué conjunto se encuentra un elemento dado. Entre estas aplicaciones se cuentan el algoritmo de Kruskal para la determinación del árbol de expansión mínimo de un grafo, la inferencia de tipos, la determinación de las componentes conexas de un grafo, el reconocimiento de objetos en imágenes, étc... 2 Definición de la Estructura Una estructura de datos de conjuntos disjuntos (disjoint-set data structure) mantiene una colección de conjuntos disjuntos entre sí con elementos dentro de un cierto universo S = {S 1, S 2,...,S k } i, j {1,..., k} i j S i S j = U = {x 1,...,x n } Cada conjunto de la colección se identifica por un representante que puede ser un miembro cualquiera del conjunto. Solo se requiere que al consultar por el representante de un conjunto dos veces consecutivas sin modificar el conjunto el resultado sea el mismo. Sin perder generalidad se puede asumir que U = {1,..., n}. Si no fuera así se puede encontrar una función biyectiva que realice la traducción entre U y el conjunto {1,...,n}. Sean x, y U se desea implementar las siguientes operaciones: 1

2 MakeSet(x): Crea un nuevo conjunto cuyo único miembro (y representante) es x. Se requiere que x no esté en ningún conjunto de la estructura. pre: x U k i=1 S i pos: S = S {x} Union(x, y): Une los conjuntos que contienen a x y a y, digamos S x y S y. El representante del conjunto resultante puede ser cualquier miembro de S x S y. Como se requiere que la colección sea disjunta, se eliminan los conjuntos S x y S y de la colección S. pre: x S x y S y S x S y pos: S = S (S x S y ) {S x, S y } Find(x): Encuentra el representante del único conjunto al que pertenece x o 0 si x no está en ningún conjunto de la colección. pre: x U pos: (x S i i = 1,...,k Find(x) S i ) (x / k i=1 S i Find(x) = 0) En lo que sigue se intentará analizar el costo de diferentes implementaciones de la estructura al ejecutar una secuencia σ de m de estas operaciones, de las cuales n son operaciones MakeSet, q son operaciones Union y f son operaciones Find (Ver Tabla 1). Como los conjuntos son disjuntos, cada operación Union reduce el número de conjuntos en 1. Luego de n 1 operaciones Union solamente queda un conjunto, por lo tanto el número de operaciones Union es a lo sumo n 1. σ MakeSet Union Find Número de Operaciones m n q n 1 f = m (n + q) Tabla 1: Número de operaciones de cada tipo en la secuencia σ. Se considerará además que en cada una de las operaciones Union(x, y), x e y son los representantes de los conjuntos a los que pertencen. 3 Aplicación Una aplicación simple de la estructura de conjuntos disjuntos es determinar si dos vértices de un grafo no-dirigido pertenecen o no a la misma componente conexa. 1 procedure connected components (G) 2 foreach v V(G) 2

3 3 MakeSet (v ) ; 4 end 5 foreach (u, v) E(G) 6 if Find (u) Find (v) then 7 Union(u, v ) ; 8 end 9 end 10 end 1 procedure same component (u, v) 2 if Find (u) = Find (v) then 3 return True ; 4 else 5 return False ; 6 end 7 end Ejemplo a b c d e g h i Figura 1: Un grafo no-dirigido con 8 vértices y 3 componentes conexas. Paso Arista Procesada S 0 inicio {a} {b} {c} {d} {e} {g} {h} {i} 1 (a,b) {a, b} {c} {d} {e} {g} {h} {i} 2 (a,e) {a, b, e} {c} {d} {g} {h} {i} 3 (a,g) {a, b, e, g} {c} {d} {h} {i} 4 (c,d) {a, b, e, g} {c, d} {h} {i} 5 (c,i) {a, b, e, g} {c, d, i} {h} Tabla 2: Colección de conjuntos disjuntos luego de proecesar cada arista. La Tabla 2 muestra la colección S que mantiene la estructura en cada paso del procedimiento. Al finalizar, dos vértices se encuentran en el mismo conjunto de la colección si y solo sí se encuentran en la misma componente conexa. Luego, Find(u) = Find(v) si y solo si u y v están en la misma componente conexa. 3

4 La relación R donde u R v si y solo sí u y v están en la misma componente conexa es una relación de equivalencia. En general, siempre que se divide un grupo de objetos en conjuntos disjuntos, la relación R donde xry si y solo sí x e y están en el mismo conjunto es una relación de equivalencia. 4 Representación por Arreglos Una manera simple de implementar la estructura es utilizando un arreglo rep de tamaño n de tal forma que rep[x] indique el representante del conjunto al que pertence x. Se incializan todas las posiciones del arreglo rep en 0. La operación Makeset(x) asigna rep[x] := x. O(1). La operación Find(x) simplemente devuelve el valor de rep[x]. O(1). Para la operación Union(x, y) se recorre el arreglo rep y se cambian, por ejemplo, todas las posiciones iguales a y por x. O(n). 1 procedure MakeSet (x) 2 rep [ x ] := x ; 3 end 1 function Find ( x) 2 return rep [ x ] ; 3 end 1 procedure Union(x, y) 2 for i :=1 to n do 3 if rep [ i ] = y then 4 rep [ i ] := x ; 5 end 6 end 7 end El costo de m operaciones está dominado por la cantidad de operaciones Union, cada una de las cuales tiene costo O(n). El orden de una secuencia σ de m operaciones resulta O(n + qn + f). En el peor caso, q = n 1 = Θ(m) y la secuencia σ completa tiene un orden de tiempo de O(m 2 ). 4

5 (a) (b) rep rep b c d e f g h c c f c f f c b c d e f g h c c c c c c c Figura 2: (a) Representación por arreglos de los conjuntos {c, h, e, b} con c como representante y {f, g, d} con f como representante. (b) Resultado luego de ejecutar Union(c, f). 5 Representación por Listas Se puede mejorar el costo de la operación Union si en lugar de recorrer todas las entradas del arreglo rep se recorren solamente aquellas que corresponden a uno de los dos conjuntos. Esto se puede lograr representando los conjuntos mediante listas usando arreglos. Se representa la estructura usando un arreglo rep como en el caso anterior, un arreglo next que indica el sucesor de un elemento en la lista a la que pertenece y un arreglo last que almacena el último elemento de cada lista. El primer elemento de cada lista sirve como representante del conjunto. Se incializan todas las posiciones del arreglo rep en 0. La operación Makeset(x) crea una nueva lista que contiene solo al elemento x en O(1). La operación Find(x) simplemente devuelve el valor de rep[x]. O(1). Para la operación Union(x, y) se recorre, por ejemplo, la lista que comienza en x cambiando las entradas correspondientes en el arreglo rep por y y luego se concatena al final de la lista que comienza en y. (Fig. 3) c h e b f g d c h e b f g d (a) (b) Figura 3: (a) Representación en forma de lista de los conjuntos {c, h, e, b} y {f, g, d}. (b) Resultado luego de ejecutar Union(c, f). 5

6 1 procedure MakeSet (x) 2 rep [ x ] := x ; 3 next [ x ] := 0; 4 last [ x ] := x ; 5 end 1 function Find ( x) 2 return rep [ x ] ; 3 end 1 procedure Union(x, y) 2 p := x ; 3 do 4 rep [ p ] := y ; 5 p := next [ p ] ; 6 while p 0 7 next [ last [ y ] ] := x ; 8 last [ y ] := last [ x ] ; 9 end Para realizar una operación Union se recorre toda la lista x, lo que lleva un tiempo proporcional a la longitud de la lista. Se puede construir una secuencia de m operaciones que lleve tiempo Θ(m 2 ). Considere la secuencia de m operaciones con n = m/2 + 1 y q = m n = m/2 1 que se muestra en la Tabla 3. Operación Número de Actualizaciones a rep MakeSet(x 1 ) 1.. MakeSet(x n ) 1 Union(x 1, x 2 ) 1 Union(x 2, x 3 ) 2 Union(x 3, x 4 ) 3.. Union(x q 1, x q ) q 1 Tabla 3: Una secuencia de m operaciones que toma tiempo Θ(m 2 ). Cada operación MakeSet realiza una actualización a rep. La i-ésima operación Union realiza i actualizaciones. El número de actualizaciones en las q operaciones Union es q 1 i = Θ(q 2 ) i=1 6

7 El número total de actualizaciones es de orden Θ(n + q 2 ) = Θ(m 2 ) porque n = Θ(m) y q = Θ(m). En promedio cada una de las m operaciones tiene orden Θ(m). 5.1 Unión por Tamaño En la implementación anterior no se consideraba la longitud de cada lista al realizar una operación Union. Qué sucede si se considera y se actualizan siempre los representantes de la lista de menor tamaño? Claramente, la secuencia anterior de operaciones se ejecutaría en orden Θ(m). Aunque el anterior es un caso particular, se observa una mejora en general. 1 procedure Union(x, y) 2 if size [ x ] > size [ y ] then 3 swap (x, y ) ; 4 end 5 6 p := x ; 7 8 do 9 rep [ p ] := y ; 10 p := next [ p ] ; 11 while p 0 12 next [ last [ y ] ] := x ; 13 size [ y ] := size [ x ] + size [ y ] ; 14 end Teorema 5.1 Usando la representación por listas y la técnica de unión por tamaño una secuencia de m operaciones MakeSet, Union y Find, n de las cuales son operaciones MakeSet, toma tiempo O(m + n log n). Demostración Se trata de encontrar para cada elemento x una cota superior del número de veces que se actualiza rep[x]. Cada vez que se actualiza rep[x] al realizar una operación Union(S x, S y ) el elemento x se debe encontrar en la lista de menor tamaño: S x S y y la lista resultante tiene tamaño S x + S y 2 S x Es decir, cada vez que el conjunto al que pertence un elemento x participa en una unión, y se modifica rep[x], el elemento termina dentro de un conjunto que es al menos dos veces mayor. Luego de actualizar log k veces el representante de un elemento, el conjunto en el que está debe tener al menos k miembros. Como un conjunto no puede tener más de n elementos, a lo sumo se actualiza el representante de un elemento log n veces. El número de 7

8 actualizaciones en todas las operaciones Union es por lo tanto de orden O(q log n). Cada operación MakeSet y cada operación Find toma tiempo O(1), por lo tanto la secuencia completa toma tiempo O(n + q log n + f). En el peor caso, cuando n = Θ(m), q = Θ(m) y f = Θ(m), el orden es O(m log m). 6 Representación por Árboles Se puede representar la colección S como una colección de árboles donde cada árbol representa un conjunto y cada nodo es un miembro del conjunto. El representante de un conjunto es el nodo raíz en el árbol y para cada nodo solo se mantiene un puntero a su nodo padre en un arreglo llamado father (Fig. 4). c f f h e d c d b g h e g (a) b (b) Figura 4: Un bosque de conjuntos disjuntos. (a) Dos árboles representando los conjuntos de la Fig. 3. El árbol de la izquierda representa el conjunto {b, c, e, h}, con c como el representante, y el árbol de la derecha representa el conjunto {d, f, g} con f como representante. (b) El resultado luego de Union(c, f). Se incializan todas las posiciones del arreglo father en -1. La operación Makeset(x) crea un nuevo árbol que solo contiene al elemento x en O(1). La operación Find(x) recorre el árbol donde está x hasta la raíz para buscar el representante del conjunto. El orden temporal está dado por la altura del árbol. La operación Union(x, y) asigna, por ejemplo, f ather[x] := y en O(1). (Fig. 3) 1 procedure MakeSet (x) 2 father [ x ] := 0; 3 end 1 function Find ( x) 2 if father [ x ] = 1 then 3 return 0; 8

9 4 end; 5 while father [ x ] 0 do 6 x := father [ x ] ; 7 end 8 return x ; 9 end 1 procedure Union(x, y) 2 father [ x ] := y ; 3 end Hasta el momento, no se obtuvo ninguna mejora sobre la representación por listas en el orden de tiempo que lleva ejecutar una secuencia de m operaciones. Es posible crear una secuencia de aproximadamente m/3 operaciones MakeSet seguidas de aproximadamente m/3 operaciones Union de tal forma que se obtenga un único conjunto representado como un árbol lineal una cadena de nodos. Se puede encontrar luego una secuencia de aproximadamente m/3 operaciones Find cada una de las cuales lleve tiempo Θ(m/3). La secuencia completa se ejecutará en tiempo Θ(m 2 ). 6.1 Heurísticas Utilizando dos simples heurísticas en las operaciones Union y Find se puede mejorar el orden de tiempo para ejecutar una secuencia σ de m operaciones Unión por Tamaño La heurística de unión por tamaño no es más que una extensión de la heurística de unión por tamaño para la representación por listas. La idea consiste en modificar la operación Union para que agregue el árbol con menos nodos como subárbol del árbol con más nodos Compresión de Caminos Cada vez que se ejecuta una instrucción Find(x) se recorre el camino desde x hasta la raíz del árbol que lo contiene. Se puede mejorar el tiempo que llevarán futuras operaciones si durante la operación se convierte cada nodo en el camino de búsqueda en un hijo de la raíz. (Fig. 5) 6.2 Implementación La cantidad de nodos en el subárbol de un nodo x se conserva en size[x]. Cuando se aplica Union sobre dos árboles, el árbol de menor tamaño se convierte en un subárbol de la raíz del árbol con mayor tamaño. En caso de empate se realiza una elección arbitraria. 9

10 (a) f (b) f e e d c b a d c b a Figura 5: Efecto de la compresión de caminos sobre un árbol lineal. (a) (b) Árbol luego de ejecutar Find(a) utilizando compresión de caminos. Árbol original. 1 procedure MakeSet (x) 2 size [ x ] := 0; 3 end 1 function Find ( x) 2 r := x ; 3 while father [ r ] 0 do 4 r := father [ r ] ; 5 end 6 / r es ahora la raíz del árbol / 7 8 p := x ; 9 while p r do 10 t := father [ p ] ; 11 father [ p ] := r ; 12 p := t ; 13 end 14 return r ; 15 end 1 procedure Union(x, y) 2 if size [ x ] > size [ y ] then 3 father [ y ] := x ; 4 size [ x ] := size [ x ] + size [ y ] ; 10

11 5 else 6 father [ x ] := y ; 7 size [ y ] := size [ y ] + size [ x ] ; 8 end 9 end 6.3 Impacto de las Heurísticas Utilizando solamente la heurística de unión por tamaño, cada vez que un nodo se mueve a un nuevo árbol suceden dos cosas: La distancia del nodo a la raíz del árbol donde se encuentra se incrementa en uno. El nuevo árbol tiene al menos dos veces más nodos que el anterior. Si en total existen n elementos en el universo, ningún nodo puede moverse más de log n veces y por lo tanto la distancia de cualquier nodo a la raíz de su árbol no puede exceder log n y cada operación Find requiere tiempo O(logn). El impacto de la compresión de caminos es más difícil de analizar. Cuando se utilizan ambas heurísticas, el orden de complejidad temporal del peor caso es O(m α(m, n)), donde α(m, n) es una función que se define como una especie de inversa de la función de Ackermann y crece en forma extremadamente lenta. Para cualquier aplicación práctica concevible, resulta α(m, n) 4 y por lo tanto el orden de complejidad de la ejecución de una secuencia de m operaciones es prácticamente lineal. En lugar de probar que el orden de complejidad temporal del peor caso al ejecutar una secuencia σ de m operaciones es O(m α(m, n)) se puede probar más fácilmente una cota ligeramente menos ajustada, como se muestra a continuación. 6.4 Análisis de Complejidad Definición F y G Definimos las funciones F y G como sigue: F(k) = { 1 k = 0 2 F(k 1) k 1 (1) G(n) = min{k N F(k) n} (2) La función F crece muy rápidamente y la función G muy lentamente: n = G(n) 5 11

12 n F(n) = = = = = = Tabla 4: Primeros valores de F. n G(n) 0 n < n < n < n < n < n Tabla 5: Primeros valores de G(n). Definición σ σ es la secuencia de operaciones obtenida al eliminar de σ todas las operaciones Find. Definición F F es el bosque resultante luego de ejecutar σ. Definición T i T i es el subárbol con raíz en el nodo i dentro de F. Definición Rango El rango de un vértice i en F, r(i), es la altura de T i. Lema 6.1 Todo nodo i tiene al menos 2 r(i) descendientes, o equivalentemente T i 2 r(i). Demostración Por inducción sobre r(i) Caso Base: r(i) = 0 T i tiene al menos un vértice, i. Por lo tanto T i 1 = 2 0 = 2 r(i). Caso Inductivo: (HI) i F r(i) k T i 2 r(i) 12

13 Sea i un nodo con rango k. En algún momento tuvo rango menor que k y fue unido con otro árbol con raíz en un vértice j de rango k 1 y menos nodos: T i = T i + T j 2 T j 2 2k 1 = 2 k Corolario 6.2 Ningún vértice en F tiene rango mayor que log n. Lema 6.3 Existen a lo sumo n/2 r vértices de rango r en F Demostración Cada vértice de rango r tiene al menos 2 r descendientes. Los nodos de los subárboles de dos nodos en el bosque con el mismo rango son disjuntos. Hay n nodos en total, puede a lo sumo haber n/2 r nodos de rango r. Lema 6.4 Si en algún momento durante la ejecución de σ, w es un descendiente propio de v, entonces el rango de w es estrictamente menor que el rango de v. Demostración Si en algún momento un vértice w es descendiente propio de otro vértice v, lo será hasta que se termine de ejecutar la secuencia (no hay operaciones Find en σ ) y en el bosque resultante F su altura será estrictamente menor. Teorema 6.5 Una secuencia σ de m operaciones de las cuales n 2 son operaciones MakeSet se ejecuta en tiempo O(m G(n)). Demostración Como antes, con q indicaremos el número de operaciones Union y con f el número de operaciones Find. Como cada operación Union y cada operación MakeSet se realiza en tiempo de orden constante y q < n, todas las operaciones MakeSet y Union se realizan en orden O(n). Para acotar el costo de todas las operaciones Find se utiliza una técnica de contabilidad. El costo de ejecutar una sola operación Find se reparte entre la operación misma y algunos vértices en el camino de búsqueda. El costo total se calcula sumando los costos sobre todas las operaciones Find y sobre todos los vértices. Se dividen los rangos de los vértices en F en grupos. Los vértices de rango r se colocan en el grupo G(r). Los vértices con el mayor rango posible, log n. se colocan en el grupo G( log n ) G(n). G(0) = {0, 1} G(1) = {2} G(2) = {3, 4} G(3) = {5, 6,..., 16}... Para los vértices v en el camino de búsqueda de una operación Find(x) (sin contar el propio x), la política para repartir el costo es la siguiente: 13

14 1. Si v es una raíz, o father[v] está en un grupo diferente de v, se le carga una unidad de costo a la operación. 2. Si v y su padre están en el mismo grupo, se le carga una unidad a v Por el Lema 6.4 los vértices en un camino de búsqueda desde un nodo hasta la raíz del árbol crecen estrictamente en rango. Cómo a lo sumo hay G(n) grupos diferentes, ninguna operación Find puede tener costo mayor que G(n). Cada vez que se aplica la segunda regla en un vértice v, se le asigna un nuevo padre que debe tener un rango mayor por el Lema 6.4. Si v está en el grupo g > 0, solamente puede incrementarse su costo F(g) F(g 1) veces por la segunda regla antes de que adquiera un padre en un grupo de rango mayor a su propio rango (el costo de un vértice en el grupo 0 solo puede incrementarse una vez). Cuando pasa a tener un padre en un grupo de rango mayor, nunca más se incrementa su costo porque la segunda regla ya no es aplicable. Para obtener una cota superior de los costos de los vértices, se multiplica el máximo posible costo de un vértice en un grupo por el número de vértices en el grupo. Sea N(g) el número de vértices en el grupo g, por el Lema 6.3: N(g) F(g) r=f(g 1)+1 n/2 r (3) (n/2 F(g 1)+1 ) (1 + 1/2 + 1/4 + ) (4) (n/2 F(g 1)+1 ) 2 (5) = n/2 F(g 1) (6) = n/f(g) (7) El máximo costo para un vértice en el grupo g es menor o igual que F(g) F(g 1), luego el costo máximo de todos los vértices en el grupo g, C(g) resulta C(g) = (F(g) F(g 1)) N(g) (8) n (F(g) F(g 1)) (9) F(g) F(g 1) = n (10) F(g) n (11) Por lo tanto, como no puede haber más de G(n) grupos, el máximo costo asignado a todos los vértices es n G(n). Como el máximo costo asignado a una operación Find es G(n), el máximo costo asignado a todas las operaciones Find es f G(n). Por último, todas las 14

15 operaciones Find se ejecutan en tiempo O((n + f) G(n)). Por todo lo visto, la secuencia σ se ejecuta en tiempo O((n + f) G(n)) y como n + f m en tiempo O(m G(n)). Referencias [AHU74] Alfred V. Aho, J. E. Hopcroft, and Jeffrey D. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, [CSRL01] Thomas H. Cormen, Clifford Stein, Ronald L. Rivest, and Charles E. Leiserson. Introduction to Algorithms. McGraw-Hill Higher Education, [Sed92] Robert Sedgewick. Algorithms in C++. Addison-Wesley, ISBN:

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo fbonomo@dc.uba.ar do. Cuatrimestre 009 Árboles Un árbol es un grafo conexo y acíclico (sin ciclos). Un bosque es un grafo acíclico, o sea, una unión disjunta

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

Más detalles

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004 Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Matrices Invertibles y Elementos de Álgebra Matricial

Matrices Invertibles y Elementos de Álgebra Matricial Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices

Más detalles

Primer Parcial de Programación 3 (1/10/2009)

Primer Parcial de Programación 3 (1/10/2009) Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión

Más detalles

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia

Más detalles

Análisis amortizado El plan:

Análisis amortizado El plan: Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras

Más detalles

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Sorting++ Herman Schinca. Clase 21. 10 de Junio de 2011

Sorting++ Herman Schinca. Clase 21. 10 de Junio de 2011 Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

SUMA Y RESTA DE FRACCIONES

SUMA Y RESTA DE FRACCIONES SUMA Y RESTA DE FRACCIONES CONCEPTOS IMPORTANTES FRACCIÓN: Es la simbología que se utiliza para indicar que un todo será dividido en varias partes (se fraccionará). Toda fracción tiene dos partes básicas:

Más detalles

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

Tenemos 3 formas de juego, la bolsa de acciones, la polla y la polla extraordinaria.

Tenemos 3 formas de juego, la bolsa de acciones, la polla y la polla extraordinaria. Tenemos 3 formas de juego, la bolsa de acciones, la polla y la polla extraordinaria. Bolsa de acciones: En este juego el usuario podrá comprar y vender acciones en los eventos a los cuales se haya registrado,

Más detalles

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario

Más detalles

Apuntes Recuperación ante Fallas - Logging

Apuntes Recuperación ante Fallas - Logging Lic. Fernando Asteasuain -Bases de Datos 2008 - Dpto. Computación -FCEyN-UBA 1 Apuntes Recuperación ante Fallas - Logging Nota: El siguiente apunte constituye sólo un apoyo para las clases prácticas del

Más detalles

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas).

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). TEMA 5.- GRAFOS 5.1.- DEFINICIONES BÁSICAS Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). Gráficamente representaremos

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Algoritmos sobre Grafos

Algoritmos sobre Grafos Sexta Sesión 27 de febrero de 2010 Contenido Deniciones 1 Deniciones 2 3 4 Deniciones sobre Grafos Par de una lista de nodos y una lista de enlaces, denidos a su vez como pares del conjunto de nodos.

Más detalles

Métodos Heurísticos en Inteligencia Artificial

Métodos Heurísticos en Inteligencia Artificial Métodos Heurísticos en Inteligencia Artificial Javier Ramírez rez-rodríguez Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana Métodos Heurísticos en Inteligencia Artificial Los problemas de

Más detalles

Clase 32: Árbol balanceado AVL

Clase 32: Árbol balanceado AVL Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes

Más detalles

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos. UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.

Más detalles

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE INVENTARIO Y PROCESO Objetivos del capítulo Desarrollar una herramienta de software de planeación de inventario con los datos obtenidos del capítulo

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos XPath - XQuery 1 XML: XPath - XQuery Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos XPath - XQuery 2 XPath - XQuery Ambos son estándares para acceder y obtener datos

Más detalles

Programación de Sistemas

Programación de Sistemas Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

Espacios generados, dependencia lineal y bases

Espacios generados, dependencia lineal y bases Espacios generados dependencia lineal y bases Departamento de Matemáticas CCIR/ITESM 14 de enero de 2011 Índice 14.1. Introducción............................................... 1 14.2. Espacio Generado............................................

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

Una (muy) breve introducción a la teoría de la computación

Una (muy) breve introducción a la teoría de la computación Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio

Más detalles

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas: Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)

Más detalles

CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM

CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM 10 2.1 Introducción La dirección de un proyecto de gran magnitud no es una tarea fácil. Para los administradores este es uno de los trabajos

Más detalles

Práctico de Procesos, Hilos y Deadlock

Práctico de Procesos, Hilos y Deadlock Sistemas Operativos Práctico de Procesos, Hilos y Deadlock Universidad Nacional de Córdoba FaMAF Ejercicio 1.. Indique cuantas letras a imprime este programa, describiendo su funcionamiento. printf("a\n");

Más detalles

1. HABILIDAD MATEMÁTICA

1. HABILIDAD MATEMÁTICA HABILIDAD MATEMÁTICA SUCESIONES, SERIES Y PATRONES. HABILIDAD MATEMÁTICA Una serie es un conjunto de números, literales o dibujos ordenados de tal manera que cualquiera de ellos puede ser definido por

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

CLASE # 5 TÉCNICAS DE CAJA BLANCA

CLASE # 5 TÉCNICAS DE CAJA BLANCA CLASE # 5 TÉCNICAS DE CAJA BLANCA 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente

Más detalles

Universidad Diego Portales Facultad de Economía y Empresa. 1. Reputación. Apuntes de Teoría de Juegos Profesor: Carlos R. Pitta

Universidad Diego Portales Facultad de Economía y Empresa. 1. Reputación. Apuntes de Teoría de Juegos Profesor: Carlos R. Pitta En estas notas revisaremos los conceptos de reputación desde la perspectiva de información incompleta. Para ello usaremos el juego del ciempiés. Además, introduciremos los conceptos de juegos de señales,

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Estimado usuario. Tabla de Contenidos

Estimado usuario. Tabla de Contenidos Estimado usuario. El motivo del presente correo electrónico es mantenerle informado de las mejoras y cambios realizados en el software Orathor (Athor/Olimpo) en su versión 5.7.041 la cual ha sido recientemente

Más detalles

Funciones, x, y, gráficos

Funciones, x, y, gráficos Funciones, x, y, gráficos Vamos a ver los siguientes temas: funciones, definición, dominio, codominio, imágenes, gráficos, y algo más. Recordemos el concepto de función: Una función es una relación entre

Más detalles

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen

Más detalles

Seminario Profesional MS PROJECT 2010. MODULO 2: Introducción y organización de las tareas

Seminario Profesional MS PROJECT 2010. MODULO 2: Introducción y organización de las tareas MODULO 2: Introducción y organización de las tareas En este módulo aprenderemos a trabajar con las tareas, conoceremos los fundamentos básicos en la creación y organización de tareas en las secuencia más

Más detalles

Programación I: Funciones y módulos

Programación I: Funciones y módulos Programación I: Funciones y módulos Esteban De La Fuente Rubio 2 de abril de 23 Índice. Funciones.. Definición y llamado de funciones............................................. 2.2. Parámetros por omisión..................................................

Más detalles

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Guía Práctica para el Uso del Servicio de Software Zoho CRM Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición

Más detalles

Ingeniería en Informática

Ingeniería en Informática Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco? BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos

Más detalles

JOSÉ PERAZA, FÍSICA 2 JOSÉ PERAZA, FÍSICA 2 JOSÉ PERAZA, FÍSICA 2 Energía Potencial eléctrica

JOSÉ PERAZA, FÍSICA 2 JOSÉ PERAZA, FÍSICA 2 JOSÉ PERAZA, FÍSICA 2 Energía Potencial eléctrica Energía Potencial eléctrica Si movemos la carga q2 respecto a la carga q1 Recordemos que la diferencia en la energía tenemos que: potencial U cuando una partícula se mueve entre dos puntos a y b bajo la

Más detalles

Criptografía y Seguridad Computacional 2016-01. Clase 5: 30/03/2016. Tenemos el siguiente esquema donde se manda un mensaje con tag t de verificación:

Criptografía y Seguridad Computacional 2016-01. Clase 5: 30/03/2016. Tenemos el siguiente esquema donde se manda un mensaje con tag t de verificación: Criptografía y Seguridad Computacional 2016-01 Clase 5: 30/03/2016 Profesor: Fernando Krell Notas: Diego Peña 1. Seguridad en Verificación Tenemos el siguiente esquema donde se manda un mensaje con tag

Más detalles

Colegio Salesiano Don Bosco Academia Reparación Y Soporte Técnico V Bachillerato Autor: Luis Orozco. Subneteo

Colegio Salesiano Don Bosco Academia Reparación Y Soporte Técnico V Bachillerato Autor: Luis Orozco. Subneteo Subneteo La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas trabajen a nivel envío y recepción de paquetes como una red

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

Manual del Modelizador. 28 de enero de 2009

Manual del Modelizador. 28 de enero de 2009 Índice de contenidos Introducción... 1 Proceso de ejecución de modelos... 1 Origen de datos... 3 Detalles técnicos... 3 Lenguaje de programación... 3 Estructura de los modelos... 3 Biblioteca de clases...

Más detalles

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico q 1 q 2 Prof. Félix Aguirre 35 Energía Electrostática Potencial Eléctrico La interacción electrostática es representada muy bien a través de la ley de Coulomb, esto es: mediante fuerzas. Existen, sin embargo,

Más detalles

Tarea 4.2 Memoria Virtual

Tarea 4.2 Memoria Virtual 1 Tarea 4.2 1. Cuál es la diferencia entre paginación simple y paginación en memoria virtual? En memoria virtual no es necesario que todas las páginas estén en marcos de la memoria principal. Las páginas

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

Programación estructurada

Programación estructurada 3. Funciones Programación estructurada Cuando un programa crece: Es importante mantenerlo ordenado No repetir código Agrupar el código según su función Dar nombre a las operaciones comunes var cantidad

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Año 205 Deducción de algunos esfuerzos para una Distribución pseudo-aleatoria de datos Introducción Vamos a desarrollar algunos de los esfuerzos para estructuras que utilizan

Más detalles

Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ

Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ ERICK ANASTASIO FLORES 29/09/2010 UNIVERSIDAD AUTONOMA DE GUADALAJARA TECNOLOGIAS DE INFORMACION Qué

Más detalles

Matemáticas para la Computación

Matemáticas para la Computación Matemáticas para la Computación José Alfredo Jiménez Murillo 2da Edición Inicio Índice Capítulo 1. Sistemas numéricos. Capítulo 2. Métodos de conteo. Capítulo 3. Conjuntos. Capítulo 4. Lógica Matemática.

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

Procesadores de lenguaje Tema 5 Comprobación de tipos

Procesadores de lenguaje Tema 5 Comprobación de tipos Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Estructuras de Control - Diagrama de Flujo

Estructuras de Control - Diagrama de Flujo RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.

Más detalles

Una Solución (*) del Problema F Where Are My Genes

Una Solución (*) del Problema F Where Are My Genes Una Solución (*) del Problema F Where Are My Genes Viktor Khlebnikov (vkhlebn@pucp.edu.pe) Enero de 2006 (*) Esta solución fue desarrollada sin conocimiento de la solución del autor del problema. Comencemos

Más detalles

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. EL PLANO CARTESIANO. El plano cartesiano está formado

Más detalles

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),

Más detalles

QUÉ ES UN NÚMERO DECIMAL?

QUÉ ES UN NÚMERO DECIMAL? QUÉ ES UN NÚMERO DECIMAL? Un número decimal representa un número que no es entero, es decir, los números decimales se utilizan para representar a los números que se encuentran entre un número entero y

Más detalles

Pilas y Colas. Capítulo 3

Pilas y Colas. Capítulo 3 Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles