sngraph * Software óptimo para manipulación de redes libres de escala

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "sngraph * Software óptimo para manipulación de redes libres de escala"

Transcripción

1 sngraph * Software óptimo para manipulación de redes libres de escala R. Maestre-Martínez ** Unidad de Sistemas de Información Geográfica Centro de Ciencias Humanas y Sociales Consejo Superior de Investigaciones Científicas Madrid 200,España Abstract sngraph package provides a flexible and efficient tool for manage graphs representing scale-free network. Can be integrated into others informatic systems. It can be read easily from databases, for example using Hibernate, and build graphs using models. It can serve of bridge between data and software in order to make analisis, for example we can use Ucinet. Also permite design and implement new custom algorithms. Resumen El paquete de software sngraph proporciona una herramienta eficaz y flexible para la manipulación de grafos que representen redes de escala libre. Puede ser integrado en distintos sistemas informáticos. Permite leer desde base de datos fácilmente, a través de los conectores, como por ejemplo Hibernate, y construir grafos en base a modelos previamente definidos. Puede servir de puente entre los datos que se están analizando y programas del tipo Ucinet. Además permite la programación de nuevos algoritmos específicos. Keywords: Graphs, social networks, scale-free network, data structures. Palabras clave: Grafos, redes sociales, red libre de escala, estructuras de datos.. Introducción sngraph es una herramienta implementada en Java [Java, 200] en forma de paquete, lo que proporciona una interfaz apropiada para trabajar con redes desde un entorno de programación. Encapsula la manipulación de una matriz con métodos sencillos e intuitivos desde una clase principal, pero representa la matriz internamente con estructuras de datos que optimizan el rendimiento de la aplicación. Este paquete surge de la necesidad de representar redes sociales de cooperación en el marco del * Desarrollado en la Unidad de Sistemas de Información Geográfica (SIG) del Centro de Ciencias Humanas y Sociales del Consejo Superior de Investigaciones Científicas. **

2 proyecto SIG Dyncoopnet [Crespo, 200] de la European Science Foundation, redes que poseen una topología especial, proponiendo al equipo de investigación una herramienta flexible y eficiente para poder visualizar y compartir de forma sencilla distintos modelos de redes sociales de cooperación de una manera visual y sencilla en formato imagen (JPG, PNG, GIF, ect...). Además, y a partir de este paquete, se pueden realizar modelos para explotar bases de datos de una manera rápida y eficaz, y finalmente exportar los datos de las redes a programas que permitan un análisis más profundo. Puede integrarse con otros desarrollos de software, utilizando el paquete como herramienta puente entre sistemas, por ejemplo, en el proyecto Dyncoopnet se utilizó para leer los datos almacenados en PostgreSQL [PostgreSql, 200] a través de Hibernate, generar una red a partir de un modelo y exportar los datos para ser analizados con Ucinet [Steve Borgatti, 200] por un lado, y por otro con Graphivz [Ellson et al., 2003] para generar las redes en formato visual. Al estar programada en Java permite su ejecución en cualquier sistema que disponga de una maquina virtual de java, haciendo esta herramienta multipltaforma. 2. Qué es sngraph Este paquete no es una herramienta de análisis de redes, es una herramienta que permite crear grafos que representen redes con unas características especiales desde un nivel de programación y que puede usarse para exportar la información del grafo a otras herramientas que si incluyan algoritmos específicos de análisis [R. Hanneman, 2005] y herramientas de visualización. 3. Estructura de datos interna Se utilizan dos estructuras principales para gestionar las redes internamente, una es una tabla hash y la otra son listas enlazadas, una descripción completa de estas estructuras de datos puede encontrarse en [Thomas H. Cormen and Stein, 200], son ampliamente utilizadas para gestionar índices. Se justifica el uso de tablas hash y listas enlazadas debido a que en una estructura de datos de tipo matriz, tenemos que conocer de antemano el número de nodos para reservar espacio para cada uno de sus enlaces, y además si tenemos n nodos reservaríamos en memoria n n posiciones de memoria de tamaño x, donde x representa el tamaño en bytes del tipo de dato que representará el peso o la conexión entre vértices, aunque estos vértices nunca se utilicen. Este tipo de estructura no es óptima para gestionar redes libres de escala [Barabási and Bonabeau, 2003] en el que algunos nodos están altamente conectados, aunque de forma general el grado de conexión de los nodos es bajo lo que llevaría a desperdiciar muchas posiciones de memoria, esto justifica disponer de un paquete software a nivel programático específico que gestione correctamente este tipo de información y que permita programar algoritmos específicos para modelar la red antes de su análisis. En la figura [ ] se muestra la estructura de datos completa que utiliza el paquete sngraph. La función de colisión de la tabla hash es f (k) = k mód n, donde k N es la clave del nodo a insertar y n N es el tamaño de la tabla hash. Los nodos V n se irán posicionando por orden (es decir, enlazándose) dentro de la tabla hash en la posición que indica la función de colisión. La tabla hash nos permite redistribuir los enlaces según los nodos van creciendo en nuestro grafo en Referencias ESF: FP: 004DynCoopNet y Acciones Complementarias del Ministerio de Ciencia e Innovación: SEJ Este proyecto también está siendo financiado por el Programa MacroGrupos de la Comunidad de Madrid: Red de investigación: Sólo Madrid es Corte. La construcción de la Corte de la Monarquía Católica, Programa MacroGrupos de la Comunidad de Madrid. Referencia CAM: HUM E/HIST 2

3 V x V z 0 V n 2 n Figura. Estructuras de datos tiempo real, es decir, esta tabla hash irá creciendo cuando se supere un cierto umbral de uso, esto es dinámico, debido a que a priori puede no saberse el número de nodos que contendrá el grafo. Esto nos permite optimizar el peso real del grafo, guardando solamente los enlaces que existen entre nodos. La función de redistribución r(z) = z 5 se activa cuando r(z) > m donde z es el número de nodos 00 en la red y m es el tamaño del índice de la tabla hash. En la inicialización m = y lógicamente z = 0, cuando r(z) supere el umbral, se llamará a una función rebuildindex(s) con parámetro s que indica el nuevo tamaño del índice hash. Como se observa en el siguiente código, la función rebuildindex(s) crea una nueva estructura de datos desde cero con el muevo tamaño de índice para la tabla hash e inserta uno a uno los nodos redistribuyendo así los datos por la estructura. Siempre que se inserta un nuevo nodo, se comprueba si se ha superado el umbral. p r i v a t e v o i d r e b u i l d I n d e x ( i n t s i z e ) { 2 System. o u t. p r i n t l n ( " R e b u i l d i n g i n d e x " ) ; 3 L i s t < I n t e g e r > nodes = t h i s. g e t T a b l e ( ). g e t N o d e L i s t ( ) ; 4 t h i s. t a b l e = new Table ( s i z e ) ; 5 I t e r a t o r i = nodes. i t e r a t o r ( ) ; 6 w h i l e ( i. hasnext ( ) ) { 7 t h i s. g e t T a b l e ( ). i n s e r t N o d e ( new Node ( ( I n t e g e r ) i. n e x t ( ) ) ) ; 8 } 9 } Cuando un enlace se inserta entre dos nodos, se comprueba que existen los nodos, para ello se busca el índice hash correspondiente a la clave del nodo y se recorre su lista asociada hasta que se encuentre. Los nodos, como puede comprobarse en la figura [ ], tienen un puntero a otra estructura denominada AdjacentNode la cual guarda V x N que es la clave del nodo destino de la arista y V z R + que es el peso de esa arista, además dispone de otro puntero a la estructura AdjacentNode en forma de lista enlazada para indicar más aristas origen desde el nodo V n. 3

4 La inserción siempre se hace en orden, tanto en los nodos como en sus aristas, para ello se recorren las listas enlazadas buscando el lugar correcto para la inserción. Las búsquedas se cortan cuando la clave que se está buscando, tanto vértice como arista, no existe porque la clave actual es mayor o se ha encontrado, por lo que no se recorren las listas completamente, solo en el peor de los casos. 4. Diagrama de clases El diagrama de clases asociado puede consultarse en el anexo de figuras [ 4 ]. 5. Uso Para empezar a trabajar con el paquete, debemos importarlo al proyecto con la sentencia: import sngraph.node.sngraph; A partir de aquí tendremos que crear un objeto de la clase Sngraph, si nos fijamos no hay que establecer a priori el número de nodos por lo explicado anteriormente. En el código que se expone a continuación se muestra cómo insertar nodos y cómo insertar aristas con peso entre nodos. Hay que destacar que cuando insertamos una arista, podemos indicar que si existe la arista, añada el nuevo peso al ya existente true y, por el contrario, si el valor es f alse que inserte el nuevo valor sin tener en cuenta el anterior. Sngraph g = new Sngraph ( ) ; 2 3 g. i n s e r t N o d e ( ) ; 4 g. i n s e r t N o d e ( 8 ) ; 5 g. i n s e r t N o d e ( 9 ) ; 6 g. i n s e r t N o d e ( 4 ) ; g. i n s e r t W e i g h t B e t w e e n N o d e s (, 8, 2. 3, t r u e ) ; 0 g. i n s e r t W e i g h t B e t w e e n N o d e s (, 9,. 7 2, t r u e ) ; g. i n s e r t W e i g h t B e t w e e n N o d e s ( 8, 9, , t r u e ) ; 2 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 8, 4, 0. 4, t r u e ) ; 3 4 System. o u t. p r i n t l n ( g. t o G r a p h v i z ( ) ) ; 5 6 System. o u t. p r i n t l n ( " " ) ; 7 8 System. o u t. p r i n t l n ( g. t o U c i n e t ( n u l l ) ) ; que da como resultado el siguiente grafo expuesto en la figura [ 2 ] (prestar atención al grosor de las aristas) En la línea número 4 (System.out.println(g.toGraphviz());), podemos observar cómo podemos obtener el código del grafo para generar el grafo de la figura [ 2 ] d i g r a p h Grafo { 2 >8 [ l a b e l =" 2. 3 " s t y l e =" s e t l i n e w i d t h ( 2. 3 ) " ] ; 3 >9 [ l a b e l =". 7 2 " s t y l e =" s e t l i n e w i d t h (. 7 2 ) " ] ; 4 8 >9 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 5 8 >4 [ l a b e l =" 0. 4 " s t y l e =" s e t l i n e w i d t h ( 0. 4 ) " ] ; 6 } 4

5 Figura 2. Ejemplo para realizar la exportación a Ucinet, debemos utilizar el método de la línea 8 (System.out.println(g.toUcinet(null));), y obtendríamos: d l n = 4 format = e d g e l i s t 2 d a t a : cabe destacar que el grafo que genera para ucinet requiere de un vector con los identificadores asociados a los nodos que se insertaron en orden. Esto es,2 8,3 9,4 4. En el siguiente código se muestra la creación del vector de etiquetas v y la generación de código para ucinet. Vector < S t r i n g > l a b e l s = new Vector < S t r i n g > ( ) ; 2 3 l a b e l s. add ( " " ) ; 4 l a b e l s. add ( " 8 " ) ; 5 l a b e l s. add ( " 9 " ) ; 6 l a b e l s. add ( " 4 " ) ; 7 8 System. o u t. p r i n t l n ( " " ) ; 9 System. o u t. p r i n t l n ( g. t o U c i n e t ( l a b e l s ) ) ; la salida por pantalla sería la siguiente: d l n = 4 format = e d g e l i s t 2 l a b e l s : 3, 8, 9, 4 4 d a t a :

6 y la representación en Ucinet de este código es la mostrada a continuación en la figura [ 3 ]: Figura 3. Red generada para ucinet 6. Ejemplo completo En el ejemplo propuesto, se ha programado un algoritmo de backtracking [Knuth, 968] que irá mostrando todas las rutas posibles entre dos nodos dados del grafo. Se muestra el código, el grafo generado de manera visual por Graphivz y la salida de la ejecución. 2 i m p o r t j a v a. u t i l. V e c t o r ; 3 i m p o r t s n g r a p h. node. Sngraph ; 4 5 / 6 C o p y r i g h t Consejo S u p e r i o r de I n v e s t i g a c i o n e s C i e n t i f i c a s 8 C e n t r o de C i e n c i a s Humanas y S o c i a l e s 9 Unidad de s i s t e m a s de i n f o r m a c i o n g e o g r a f i c a 0 A t t r i b u t i o n Noncommercial 3. 0 Unported h t t p : / / creativecommons. org / l i c e n s e s / by nc / 3. 0 / / 2 / 3 Roberto Maestre M a r t i n e z < r o b e r t o. m a e s t r e AT cchs. c s i c. es > 5 / 6 p u b l i c c l a s s Uso { / / I n d i c a s i un nodo e s t a en e l v e c t o r de v i s i t a d o s 20 p r i v a t e s t a t i c boolean i s V i s i t a d o ( i n t i, Vector < I n t e g e r > v i s i t a d o s ) { 2 boolean c e n t = f a l s e ; 22 i n t c =0; 6

7 23 w h i l e ( c< v i s i t a d o s. s i z e ( ) &&! c e n t ) { 24 i f ( i == v i s i t a d o s. g e t ( c ) ) c e n t = t r u e ; 25 c ++; 26 } 27 r e t u r n c e n t ; 28 } / / P r o c e d i m i e n t o p a r a c a l c u l a r e l camino mas c o r t o e n t r e dos nodos 3 p u b l i c s t a t i c v o i d b a c k t r a c k i n g ( Sngraph g, Vector < I n t e g e r > v i s i t a d o s, Vector < I n t e g e r > camino, Vector < I n t e g e r > mejorcamino, i n t a c t u a l, i n t h a s t a, i n t N, double t o t a l, Vector <Double > m e j o r t o t a l ) { 32 / / Compruebo mejor s o l u c i o n 33 i f ( a c t u a l == h a s t a && t o t a l < m e j o r t o t a l. g e t ( 0 ) ) { 34 System. o u t. p r i n t l n ( " mejor e n c o n t r a d o, c o n s t e ="+ t o t a l ) ; 35 System. o u t. p r i n t l n ( camino ) ; 36 / / Copio e l mejor t o t a l y e l mejor camino 37 mejorcamino = new Vector < I n t e g e r > ( ) ; 38 f o r ( i n t x =0; x<camino. s i z e ( ) ; x ++) 39 mejorcamino. add ( camino. g e t ( x ) ) ; 40 m e j o r t o t a l. add ( 0, t o t a l ) ; 4 } e l s e { 42 / / C a l c u l o l o s nodos a l o s que puedo i r desde e l nodo a c t u a l 43 Vector < I n t e g e r > a=new Vector < I n t e g e r > ( ) ; 44 f o r ( i n t i =0; i <N; i ++) { 45 i f ( ( g. getweightbetweennodes ( a c t u a l, g. g e t N o d e L i s t ( ). g e t ( i ) )!= g. g e t I n f i n i t e V a l u e ( ) ) &&! i s V i s i t a d o ( g. g e t N o d e L i s t ( ). g e t ( i ), v i s i t a d o s ) ) 46 a. add ( g. g e t N o d e L i s t ( ). g e t ( i ) ) ; 47 } 48 / / Si hay nodos a l o s que pueda i r 49 i f ( a. s i z e ( ) >0) { 50 / / Los r e c o r r o 5 f o r ( i n t i =0; i <a. s i z e ( ) ; i ++) { 52 / / Anoto 53 t o t a l = t o t a l +g. getweightbetweennodes ( a c t u a l, a. g e t ( i ) ) ; 54 v i s i t a d o s. add ( a c t u a l ) ; 55 camino. add ( a. g e t ( i ) ) ; 56 / / Llamada 57 b a c k t r a c k i n g ( g, v i s i t a d o s, camino, mejorcamino, a. g e t ( i ), h a s t a, N, t o t a l, m e j o r t o t a l ) ; 58 / / Desanoto 59 t o t a l = t o t a l g. getweightbetweennodes ( a c t u a l, a. g e t ( i ) ) ; 60 v i s i t a d o s. remove ( v i s i t a d o s. s i z e ( ) ) ; 6 camino. remove ( camino. s i z e ( ) ) ; 62 } 63 } 64 } 65 } p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) throws E x c e p t i o n { 69 Sngraph g = new Sngraph ( ) ; 70 g. i n s e r t N o d e ( ) ; g. i n s e r t N o d e ( 8 ) ; g. i n s e r t N o d e ( 9 ) ; g. i n s e r t N o d e ( 2 ) ; g. i n s e r t N o d e ( 6 ) ; g. i n s e r t N o d e ( 2 4 ) ; g. i n s e r t N o d e ( 5 0 ) ; 7 g. i n s e r t N o d e ( 6 9 ) ; g. i n s e r t N o d e ( 7 0 ) ; g. i n s e r t N o d e ( 7 6 ) ; g. i n s e r t N o d e ( 7 9 ) ; g. i n s e r t N o d e ( 8 0 ) ; g. i n s e r t N o d e ( 8 9 ) ; g. i n s e r t N o d e ( 9 ) ; 7

8 72 g. i n s e r t N o d e ( 9 3 ) ; g. i n s e r t N o d e ( 9 4 ) ; g. i n s e r t N o d e ( 9 5 ) ; g. i n s e r t N o d e ( 0 0 ) ; g. i n s e r t N o d e ( 0 ) ; g. i n s e r t N o d e ( 0 3 ) ; g. i n s e r t N o d e ( 0 6 ) ; 73 g. i n s e r t N o d e ( 0 ) ; g. i n s e r t N o d e ( 5 ) ; g. i n s e r t N o d e ( 2 2 ) ; g. i n s e r t N o d e ( 2 9 ) ; g. i n s e r t N o d e ( 3 5 ) ; g. i n s e r t N o d e ( 4 0 ) ; g. i n s e r t N o d e ( 6 9 ) ; 74 g. i n s e r t N o d e ( 7 0 ) ; g. i n s e r t N o d e ( 7 6 ) ; g. i n s e r t W e i g h t B e t w e e n N o d e s (, 8, 2. 3, t r u e ) ; 77 g. i n s e r t W e i g h t B e t w e e n N o d e s (, 6,. 7 2, t r u e ) ; 78 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9, 2,. 0, t r u e ) ; 79 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 6, 24, 3. 2, t r u e ) ; 80 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 2 4, 50,. 0 5, t r u e ) ; 8 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 5 0, 9, 3. 2, t r u e ) ; 82 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9, 8, , t r u e ) ; 83 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 2, 6, , t r u e ) ; 84 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9 4, 22,. 7 2, t r u e ) ; 85 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9 5, 00,. 0 2, t r u e ) ; 86 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9 4, 95, 2, t r u e ) ; 87 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 0 0,, , t r u e ) ; 88 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 6 9, 8,. 2 6, t r u e ) ; 89 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 7 0, 76, , t r u e ) ; 90 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 0, 29,. 6 4, t r u e ) ; 9 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 2 9, 2, , t r u e ) ; 92 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 7 6, 50, , t r u e ) ; 93 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 8 9, 76, , t r u e ) ; 94 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 6, 22, , t r u e ) ; 95 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 4 0, 69,. 3 2, t r u e ) ; 96 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 2 9, 35, , t r u e ) ; 97 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 4 0, 40, 0. 2, t r u e ) ; 98 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 4 0, 94, 0. 6, t r u e ) ; 99 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9 4, 40, 0. 6, t r u e ) ; 00 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 9 5, 00, 0. 6, t r u e ) ; 0 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 0, 76, 0. 6, t r u e ) ; 02 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 2 4, 95, 0. 6, t r u e ) ; 03 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 0 0, 0,. 6, t r u e ) ; 04 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 8 9, 0, , t r u e ) ; 05 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 8 9, 70,. 3, t r u e ) ; 06 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 6, 89, 0. 4, t r u e ) ; 07 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 0, 69, , t r u e ) ; 08 g. i n s e r t W e i g h t B e t w e e n N o d e s ( 6 9, 69, , t r u e ) ; 09 0 System. o u t. p r i n t l n ( g. t o G r a p h v i z ( ) ) ; System. o u t. p r i n t l n ( " " ) ; 2 Vector < S t r i n g > l a b e l s = new Vector < S t r i n g > ( ) ; 3 l a b e l s. add ( " " ) ; l a b e l s. add ( " 8 " ) ; l a b e l s. add ( " 9 " ) ; l a b e l s. add ( " 2 " ) ; l a b e l s. add ( " 6 " ) ; l a b e l s. add ( " 24 " ) ; l a b e l s. add ( " 50 " ) ; 4 l a b e l s. add ( " 69 " ) ; l a b e l s. add ( " 70 " ) ; l a b e l s. add ( " 76 " ) ; l a b e l s. add ( " 79 " ) ; l a b e l s. add ( " 80 " ) ; l a b e l s. add ( " 89 " ) ; l a b e l s. add ( " 9 " ) ; 5 l a b e l s. add ( " 93 " ) ; l a b e l s. add ( " 94 " ) ; l a b e l s. add ( " 95 " ) ; l a b e l s. add ( " 00 " ) ; l a b e l s. add ( " 0 " ) ; l a b e l s. add ( " 03 " ) ; l a b e l s. add ( " 06 " ) ; 6 l a b e l s. add ( " 0 " ) ; l a b e l s. add ( " 5 " ) ; l a b e l s. add ( " 22 " ) ; l a b e l s. add ( " 29 " ) ; l a b e l s. add ( " 35 " ) ; l a b e l s. add ( " 40 " ) ; l a b e l s. add ( " 69 " ) ; 7 l a b e l s. add ( " 70 " ) ; l a b e l s. add ( " 76 " ) ; 8 System. o u t. p r i n t l n ( g. t o U c i n e t ( l a b e l s ) ) ; 9 System. o u t. p r i n t l n ( " " ) ; 20 g. p r i n t ( ) ; 8

9 2 System. o u t. p r i n t l n ( " " ) ; Vector <Double > m e j o r t o t a l =new Vector <Double > ( ) ; 24 m e j o r t o t a l. add ( Double.MAX_VALUE) ; 25 Vector < I n t e g e r > v i s i t a d o s =new Vector < I n t e g e r > ( ), camino=new Vector < I n t e g e r > ( ), mejorcamino =new Vector < I n t e g e r > ( ) ; 26 double t o t a l = 0. 0 ; 27 b a c k t r a c k i n g ( g, v i s i t a d o s, camino, mejorcamino,,50, g. g e t N o d e L i s t ( ). s i z e ( ), t o t a l, m e j o r t o t a l ) ; 28 System. o u t. p r i n t l n ( mejorcamino ) ; } } la salida de la ejecución del código anteriormente consta de varias partes:. Número de veces que se redistribuye el índice de la tabla hash 2. Salida para Graphivz 3. Salida para Ucinet 4. Representación de la estructura interna 5. Camino mínimos obtenidos por el backtracking / / Se r e d i s t r i b u y e e l i n d i c e R e b u i l d i n g i n d e x / / S a l i d a p a r a r e p r e s e n t a r e l g r a f o con Graphivz d i g r a p h Grafo { >8 [ l a b e l =" 2. 3 " s t y l e =" s e t l i n e w i d t h ( 2. 3 ) " ] ; >6 [ l a b e l =". 7 2 " s t y l e =" s e t l i n e w i d t h (. 7 2 ) " ] ; 9 >8 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 9 >2 [ l a b e l =". 0 " s t y l e =" s e t l i n e w i d t h (. 0 ) " ] ; 2 >6 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 6 >24 [ l a b e l =" 3. 2 " s t y l e =" s e t l i n e w i d t h ( 3. 2 ) " ] ; 6 >89 [ l a b e l =" 0. 4 " s t y l e =" s e t l i n e w i d t h ( 0. 4 ) " ] ; 6 >22 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 24 >50 [ l a b e l =". 0 5 " s t y l e =" s e t l i n e w i d t h (. 0 5 ) " ] ; 24 >95 [ l a b e l =" 0. 6 " s t y l e =" s e t l i n e w i d t h ( 0. 6 ) " ] ; 50 >9 [ l a b e l =" 3. 2 " s t y l e =" s e t l i n e w i d t h ( 3. 2 ) " ] ; 69 >8 [ l a b e l =". 2 6 " s t y l e =" s e t l i n e w i d t h (. 2 6 ) " ] ; 89 >0 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 89 >70 [ l a b e l =". 3 " s t y l e =" s e t l i n e w i d t h (. 3 ) " ] ; 89 >76 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 94 >95 [ l a b e l =" 2. 0 " s t y l e =" s e t l i n e w i d t h ( 2. 0 ) " ] ; 94 >22 [ l a b e l =". 7 2 " s t y l e =" s e t l i n e w i d t h (. 7 2 ) " ] ; 94 >40 [ l a b e l =" 0. 6 " s t y l e =" s e t l i n e w i d t h ( 0. 6 ) " ] ; 95 >00 [ l a b e l =". 8 " s t y l e =" s e t l i n e w i d t h (. 8 ) " ] ; 00 > [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 00 >0 [ l a b e l =". 6 " s t y l e =" s e t l i n e w i d t h (. 6 ) " ] ; 0 >76 [ l a b e l =" 0. 6 " s t y l e =" s e t l i n e w i d t h ( 0. 6 ) " ] ; 9

10 0 >29 [ l a b e l =". 6 4 " s t y l e =" s e t l i n e w i d t h (. 6 4 ) " ] ; 0 >69 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 29 >2 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 29 >35 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 40 >94 [ l a b e l =" 0. 6 " s t y l e =" s e t l i n e w i d t h ( 0. 6 ) " ] ; 40 >40 [ l a b e l =" 0. 2 " s t y l e =" s e t l i n e w i d t h ( 0. 2 ) " ] ; 40 >69 [ l a b e l =". 3 2 " s t y l e =" s e t l i n e w i d t h (. 3 2 ) " ] ; 69 >69 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 70 >76 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; 76 >50 [ l a b e l =" " s t y l e =" s e t l i n e w i d t h ( ) " ] ; } / / S a l i d a p a r a a n a l i z a r e l g r a f o con U c i n e t d l n = 30 f o r m a t = e d g e l i s t l a b e l s :, 8, 9, 2, 6, 2 4, 5 0, 6 9, 7 0, 7 6, 7 9, 8 0, 8 9, 9, 9 3, 9 4, 9 5, 0 0, 0, 0 3, 0 6, 0, 5, 2 2, 2 9, 3 5, 4 0, 6 9, 7 0, d a t a : / / R e p r e s e n t a c i o n de l a e s t r u c t u r a i n t e r n a de d a t o s 0

11 [ 0 ]= > 8 > 2 ( 6=2.72 ) > 6 ( 2 4 = 3. 2, 8 9 = 0. 4, 2 2 = ) > 24 ( 5 0 =.05,95=0.6 ) > 76 > 80 > 00 ( =3.56,0=.6 ) > 40 ( 9 4 = 0. 6, 4 0 = 0. 2, 6 9 =. 3 2 ) > 76 ( 50=0.76 ) [ ]= > ( 8 = 2. 3, 6 =. 7 2 ) > 9 ( 8 = , 2 =. 0 ) > 69 ( 8=.26 ) > 89 ( 0 = , 7 0 =. 3, 7 6 = ) > 93 > 0 ( 76=0.6 ) > 29 ( 2=2.26,35=2.32 ) > 69 ( 69=2.264 ) [ 2 ]= > 50 ( 9=3.2 ) > 70 > 94 ( 9 5 = 2. 0, 2 2 =. 7 2, 4 0 = 0. 6 ) > 06 > 0 ( 29=.64,69=0.54 ) > 22 > 70 ( 76=0.26 ) [ 3 ]= > 79 > 9 > 95 ( 00=. 8 ) > 03 > 5 > 35 / / Caminos minimos o b t e n i d o s con un a l g o r i t m o de b a c k t r a c k i n g programado en e l ejemplo mejor e n c o n t r a d o, c o s t e =5.97 [ 6, 24, 50] mejor e n c o n t r a d o, c o s t e =3.3 [ 6, 89, 0, 76, 50] mejor e n c o n t r a d o, c o s t e = [ 6, 89, 76, 50] el grafo generado para Graphivz puede verse en la figura [ 5] y para ucinet en la figura [ 6 ]. 7. Trabajo futuro. Generación de capas para SIG con redes georeferenciadas. 8. Copyrigth Attribution-NonCommercial 3.0 Unported. La licencia puede consultarse aquí: 9. Como citar... se construyó [Maestre-Martinez, 200] la red de ejemplo utilizando los pesos de parentesco y relaciones sngpraph, a u t h o r = {R. Maestre M a r t i n e z }, t i t l e = {{ sngpraph }}, howpublished = " \ u r l { h t t p : / / www. c s i c. es } ", y e a r = {200} }

12 0. Anexo Figuras sngraph -table : Table Sngraph +getinfinitevalue() : double +getnodelist() : List<Integer> +gettable() : Table +getweightbetweennodes(from : int, to : int) : double +insertnode(key : int) +insertweightbetweennodes(from : int, to : int, sumarize : boolean) +deleteweightbetweennodes(from : int, to : int) +print() -rebuildindex(size : int) +tographivz() : string +toucinet(labels : Vector<String>) : string 0..* 0.. AdjacentNode 0.. -key : int -next : AdjacentNode -weight : double 0.. Node -adjacentnode : AdjacentNode -key : int -next : Node -INFINITE : double -nodelist : List<Integer> -size : int -tablenodes : Node[] Table +gethash(key : int) : int +getinfinite() : double -getindexsize() : int +getnode(key : int) +getnodelist() : List<Integer> +getweight(from : int, to : int) : double +insertedge(from : int, to : int, sumarize : boolean) +deleteweightbetweennodes(from : int, to : int) +insertnode(node : Node) +printtable() Figura 4. Diagrama de clases 2

13 Figura 5. Ejemplo grafo Graphivz 3

14 Figura 6. Ejemplo grafo ucinet 4

15 Referencias [Barabási and Bonabeau, 2003] Barabási, A.-L. and Bonabeau, E. (2003). Scale-Free Networks. Sci. Amer. 288, Issue 5, 60. [Crespo, 200] Crespo, A. (200). Dyncoopnet. running-programmes/tect/projects/list-of-projects.html. [Ellson et al., 2003] Ellson, J., Gansner, E., Koutsofios, E., S.C.North, and G.Woodhull (2003). Graphviz and dynagraph static and dynamic graph drawing tools. In Junger, M. and Mutzel, P., editors, Graph Drawing Software, pages Springer-Verlag. [Java, 200] Java, O. (200). Java. index.html. [Knuth, 968] Knuth, D. E. (968). The Art of Computer Programming. Addison-Wesley. [PostgreSql, 200] PostgreSql (200). PostgreSql. [R. Hanneman, 2005] R. Hanneman, M. R. (2005). Introduction to social network methods. University of California, Riverside. [Steve Borgatti, 200] Steve Borgatti, Martin Everett, L. F. (200). Ucinet. analytictech.com/ucinet/. [Thomas H. Cormen and Stein, 200] Thomas H. Cormen, Charles E. Leiserson, R. L. R. and Stein, C. (200). Introduction to Algorithms. MIT Press, Masachussets, second edition edition. 5

2.3.2 Recursos electrónicos para historiadores. Bases de datos, representación y análisis de redes complejas de cooperación *

2.3.2 Recursos electrónicos para historiadores. Bases de datos, representación y análisis de redes complejas de cooperación * Máster Universitario en Historia de la Monarquía Hispánica, Noviembre 200. UCM. 2.3.2 Recursos electrónicos para historiadores. Bases de datos, representación y análisis de redes complejas de cooperación

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24 Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...

Más detalles

Ya se definió brevemente lo que es la minería de datos, pero ahora conviene

Ya se definió brevemente lo que es la minería de datos, pero ahora conviene CAPÍTULO 2 Minería de datos y Conceptos generales 2.1 Minería de datos Ya se definió brevemente lo que es la minería de datos, pero ahora conviene elaborar un poco más sobre el tema. Se comentó anteriormente

Más detalles

Qué es una red social?

Qué es una red social? IIC 2009 2011 www.iic.uam.es Instituto de Ingeniería del Conocimiento Introducción al Análisis de Redes Sociales Grupo de Procesos Empresariales con Efectos de Red Social (PEERS) Qué es una red social?

Más detalles

IV. Implantación del sistema.

IV. Implantación del sistema. IV. Implantación del sistema. Para hablar sobre el proceso de desarrollo del sistema de Recuperación de Información Visual propuesto, empezaremos hablando del hardware utilizado, las herramientas de software

Más detalles

Microsoft SQL Server Conceptos.

Microsoft SQL Server Conceptos. Microsoft Conceptos. Microsoft 2005 es una plataforma de base de datos a gran escala de procesamiento de transacciones en línea (OLTP) y de procesamiento analítico en línea (OLAP). La siguiente tabla muestra

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:

Más detalles

Gestión de proyectos

Gestión de proyectos Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El

Más detalles

Manual de uso Cmap Tools

Manual de uso Cmap Tools Manual de uso Cmap Tools AFED E-LEARNING VERSIÓN 1.0 29/11/2012 S I S T E M A D E G E S T I Ó N D E L A C A L I D A D Tabla de contenido Tabla de contenido...2 CmapTools: software para construir mapas

Más detalles

13º Unidad Didáctica. RAID (Redundant Array of Independent Disks) Eduard Lara

13º Unidad Didáctica. RAID (Redundant Array of Independent Disks) Eduard Lara 13º Unidad Didáctica RAID (Redundant Array of Independent Disks) Eduard Lara 1 RAID: INTRODUCCIÓN Sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replica los datos.

Más detalles

Sistemas Multimedia Distribuidos. Juan A. Sigüenza Departamento de Ingeniería Informática UAM

Sistemas Multimedia Distribuidos. Juan A. Sigüenza Departamento de Ingeniería Informática UAM Sistemas Multimedia Distribuidos Juan A. Sigüenza Departamento de Ingeniería Informática UAM Componentes de un Sistema Multimedia Distribuido Software de aplicación Almacenamiento de Documentos Almacenamiento

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012 TFC J2EE Aplicación Web para la gestión de facturación de una empresa de cerrajería Sara Gutiérrez Melero ITIG Junio de 2012 Consultor: Jose Juan Rodriguez Índice 1. Introducción Objetivos Planificación

Más detalles

arquitectura que maneja. Encontraremos también los diferentes servidores que

arquitectura que maneja. Encontraremos también los diferentes servidores que 3.1 INTRODUCCIÓN A lo largo de este capitulo será descrito ArcIMS, así como las características y arquitectura que maneja. Encontraremos también los diferentes servidores que proporciona ArcIMS, además

Más detalles

XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto 26 30 de 2013

XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto 26 30 de 2013 Taller Técnico Líder en soluciones geográficas empresariales XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto 26 30 de 2013 Flujos de trabajo con la Plataforma de ENVI Jenny Paola Vanegas Forero

Más detalles

Bystronic: Best choice.

Bystronic: Best choice. COLECCIÓN SOFTWARE BySoft 7 4 COLECCIÓN SOFTWARE BySoft 7 Construir y calcular piezas, elaborar planos de corte y programas de plegado, planificar y supervisar procesos de producción: ya no es posible

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

MANUAL DE AYUDA SOCIEDADES 2010 MACOS

MANUAL DE AYUDA SOCIEDADES 2010 MACOS MANUAL DE AYUDA SOCIEDADES 2010 MACOS Agencia Tributaria Centro de Atención Telefónica Departamento de INFORMÁTICA TRIBUTARIA ÍNDICE SOCIEDADES 2010 INTRODUCCIÓN... 3 Requisitos mínimos... 3 REQUISITOS

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Ministerio de Educación Base de datos en la Enseñanza. Glosario Ministerio de Educación Base de datos en la Enseñanza. Glosario Instituto de Tecnologías Educativas 2011 Glosario Glosario GLOSARIO Archivo Un archivo es un elemento que contiene información y que a su

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

CAPITULO 3 PLANIFICACIÓN DE RED

CAPITULO 3 PLANIFICACIÓN DE RED CAPITULO 3 PLANIFICACIÓN DE RED 3.1. INTRODUCCION En el presente capitulo se desarrollara el diseño del sistema GEPON; direccionamiento IP, selección de los materiales necesarios tanto en fibra como en

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. Aplicaciones del J2SE SDK1.4.2 de Sun. Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura

Más detalles

SRI UT01 Instalación de WMware Software de máquinas Virtuales Jorge García Delgado. Jorge García Delgado

SRI UT01 Instalación de WMware Software de máquinas Virtuales Jorge García Delgado. Jorge García Delgado SRI UT01 Instalación de WMware Software de máquinas Virtuales SRI UT01 Instalación de WMware Software de máquinas Virtuales INSTALACIÓN DE WMWARE 1. Iniciamos la instalación. 2. Nos sale un asistente,

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

Facultad de Ingeniería ISSN: 0121-1129 revista.ingenieria@uptc.edu.co. Universidad Pedagógica y Tecnológica de Colombia. Colombia

Facultad de Ingeniería ISSN: 0121-1129 revista.ingenieria@uptc.edu.co. Universidad Pedagógica y Tecnológica de Colombia. Colombia Facultad de Ingeniería ISSN: 0121-1129 revista.ingenieria@uptc.edu.co Universidad Pedagógica y Tecnológica de Colombia Colombia Amézquita-Mesa, Diego Germán; Amézquita-Becerra, Germán; Galindo-Parra, Omaira

Más detalles

UNIVERSIDAD DE OVIEDO

UNIVERSIDAD DE OVIEDO UNIVERSIDAD DE OVIEDO ESCUELA POLITÉCNICA DE INGENIERÍA DE GIJÓN MÁSTER EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE MÁSTER SPRING ROO ADD-ONS PARA PROTOTIPADO RÁPIDO JAVIER MENÉNDEZ ÁLVAREZ JULIO 2014 UNIVERSIDAD

Más detalles

Tema 1: Implementación del sistema de archivos

Tema 1: Implementación del sistema de archivos Tema 1: Implementación del sistema de archivos 1. Introducción 2. Implementación 3. Estructura del almacenamiento secundario Dpto. Tema Lenguajes 1: Implementación y Sistemas del Informáticos. sistema

Más detalles

Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6

Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6 Grados Ing. Inf. y Mat. Inf. Julio 201 Algoritmos y Estructura de Datos Página 1 de 6 Algoritmos y Estructura de Datos: Examen Julio (Solución) Grados Ing. Inf. y Mat. Inf. Julio 201 Departamento de Lenguajes,

Más detalles

%& %)& '$!%*+ $, %%%&$ %%

%& %)& '$!%*+ $, %%%&$ %% OBJETIVO!!"#$$ %& '(%"#% (% %& %)& '$!%*+ $, %%%&$ %% REQUERIMIENTOS SOFTWARE VERSIÓN LINK Java Development Kit (JDK) 6 http://java.sun.com NetBeans 6.1 http://www.netbeans.org MySQL 5.0 http://dev.mysql.com/

Más detalles

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASE DE DATOS QUÉ ES UNA BASE DE DATOS? BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de

Más detalles

Novedades en Crystal Reports XI

Novedades en Crystal Reports XI Novedades en Crystal Reports XI Introducción Introducción Esta sección proporciona información de alto nivel sobre los componentes, las funciones y las ventajas que ofrece la última versión de Crystal

Más detalles

TEMA: PROTOCOLOS TCP/IP

TEMA: PROTOCOLOS TCP/IP TEMA: PROTOCOLOS TCP/IP HISTORIA: El Protocolo de Internet (IP) y el Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por el informático estadounidense Vinton Cerf como parte de

Más detalles

Programación en Capas.

Programación en Capas. Programación en Capas. Ricardo J. Vargas Del Valle Universidad de Costa Rica, Ciencias de Computación e Informática, San José, Costa Rica, 506 ricvargas@gmail.com Juan P. Maltés Granados Universidad de

Más detalles

Manual de gestión de contenidos web en entorno Drupal. Versión sitio maestro para servicios 1.0

Manual de gestión de contenidos web en entorno Drupal. Versión sitio maestro para servicios 1.0 Manual de gestión de contenidos web en entorno Drupal Versión sitio maestro para servicios 1.0 Contenido Gestión de contenidos... 5 Crear contenidos... 5 Tipos de contenido... 5 Página básica o basic

Más detalles

Innovación para su Contact Center. Reporting Manager. Descubra el valor de negocio de sus datos y la actividad del Contact Center

Innovación para su Contact Center. Reporting Manager. Descubra el valor de negocio de sus datos y la actividad del Contact Center Innovación para su Contact Center Reporting Manager Descubra el valor de negocio de sus datos y la actividad del Contact Center ÍNDICE DATA SHEET 1. Introducción... 3 2. Características principales...

Más detalles

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella 2008 1 Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección

Más detalles

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril 2009. apoloval@gsyc.es. GSyC - 2009 Introducción 1

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril 2009. apoloval@gsyc.es. GSyC - 2009 Introducción 1 Sistema de Ficheros Sistemas Operativos - ITIG Álvaro Polo Valdenebro apoloval@gsyc.es Abril 2009 GSyC - 2009 Introducción 1 c 2009 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura de datos Tema 6: Tablas de dispersión (hashing) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Guía para la instalación de discos duro SATA y Configuración RAID

Guía para la instalación de discos duro SATA y Configuración RAID Guía para la instalación de discos duro SATA y Configuración RAID 1. Guía para la instalación de discos duro SATA... 2 1.1 Instalación de discos duros serie ATA (SATA)... 2 2. Guía para Configuracións

Más detalles

DISEÑO E IMPLEMENTACIÓN DE UNA BASE DE DATOS DE ESCORIALES ABANDONADOS DE LA REGIÓN DE ATACAMA

DISEÑO E IMPLEMENTACIÓN DE UNA BASE DE DATOS DE ESCORIALES ABANDONADOS DE LA REGIÓN DE ATACAMA 28 (2012) 14-19 DISEÑO E IMPLEMENTACIÓN DE UNA BASE DE DATOS DE ESCORIALES ABANDONADOS DE LA REGIÓN DE ATACAMA A. Nazer 1, O. Pavez 2, R. Arcos 1 1 Instituto Tecnológico, Universidad de Atacama, Copiapó,

Más detalles

Evaluación de Algoritmos de Ruteo de Paquetes en Redes de Computadoras. Fax: 54-2652-430224 Fax: 34-91-3367426

Evaluación de Algoritmos de Ruteo de Paquetes en Redes de Computadoras. Fax: 54-2652-430224 Fax: 34-91-3367426 Evaluación de Algoritmos de Ruteo de Paquetes en Redes de Computadoras Berón, Mario Marcelo Gagliardi, Edilma Olinda Departamento de Informática Facultad de Ciencias Físico, Matemáticas y Naturales Universidad

Más detalles

SWITCH ETHERNET CAPA 2. Justo Ramírez Martínez

SWITCH ETHERNET CAPA 2. Justo Ramírez Martínez SWITCH ETHERNET CAPA 2 Justo Ramírez Martínez ÍNDICE (I) Introducción Ethernet Bridging and Switching Dispositivos de conexión de redes Tipos de dispositivos Dispositivos de conexión de nivel 2 Puentes

Más detalles

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda

Más detalles

CURSORES EN SQL SERVER

CURSORES EN SQL SERVER Año del Centenario de Machu Picchu para el mundo CURSORES EN SQL SERVER Curso: IMPLEMENTACION DE BASE DE DATOS VII Ciclo Integrantes: Vásquez Paredes, Pablo Bustamante Auccasi, Janett Córdova Farfán, Carlos

Más detalles

Aprendizaje activo: flujos

Aprendizaje activo: flujos Clase 29 Aprendizaje activo: flujos La aplicación Logger 2 1 Objetivos En el marco de trabajo de la aplicación Logger, analizaremos tres formas de leer y escribir datos utilizando flujos de Java: 1. como

Más detalles

Módulo 2. Arquitectura

Módulo 2. Arquitectura Módulo 2. Arquitectura Introducción Objetivos o Analizar la arquitectura física y lógica de la plataforma Agrega. o Identificar los componentes más importantes de la arquitectura física. o Exponer las

Más detalles

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System Información del Producto: XenData X2500 LTO-6 Digital Video Archive System Actualizado: 26 de marzo de 2013 Presentación El sistema XenData X2500 incluye el software XenData6 Workstation que ofrece funcionalidades

Más detalles

Conjunto de computadores, equipos de comunicaciones y otros dispositivos que se pueden comunicar entre sí, a través de un medio en particular.

Conjunto de computadores, equipos de comunicaciones y otros dispositivos que se pueden comunicar entre sí, a través de un medio en particular. Que es una red? Conjunto de computadores, equipos de comunicaciones y otros dispositivos que se pueden comunicar entre sí, a través de un medio en particular. Cuantos tipos de redes hay? Red de área personal,

Más detalles

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB 3CM2 HIBERNATE EN UNA APLICACIÓN WEB 8 DE MAYO DE 2012 1. CREACION DE LA BASE DE DATOS Para llevar a cabo esta práctica se utiliza una base de datos MySQL llamada Sakila, una muestra gratis de base de

Más detalles

Servicio de instalación y puesta en marcha de HP StoreEasy 1000/3000 Network Storage

Servicio de instalación y puesta en marcha de HP StoreEasy 1000/3000 Network Storage Servicio de instalación y puesta en marcha de HP StoreEasy 1000/3000 Network Storage Servicios HP Datos técnicos El Servicio de instalación y puesta en marcha de HP StoreEasy 1000/3000 Network Storage

Más detalles

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences Índice 1 Compartir datos entre actividades con Shared Preferences (0.75 puntos)... 2 2 Actividad de preferencias (0.75

Más detalles

Arquitectura para análisis de información. Zombi es una arquitectura que proporciona de manera integrada los componentes

Arquitectura para análisis de información. Zombi es una arquitectura que proporciona de manera integrada los componentes Capítulo 4 Arquitectura para análisis de información propuesta 4.1 Arquitectura Zombi es una arquitectura que proporciona de manera integrada los componentes necesarios para el análisis de información

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

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

Universidad Nacional de Luján Departamento de Ciencias Básicas Programación III

Universidad Nacional de Luján Departamento de Ciencias Básicas Programación III Introducción al uso de JDBC, Swing y Firebird 2.5 en Java 6 Standard Edition Guillermo R. Cherencio gcherencio@unlu.edu.ar Implementación del patrón de diseño Model View Controller Pattern Objetivo: Implementaciónde

Más detalles

3.4. Reload Editor ( Guía de Uso).

3.4. Reload Editor ( Guía de Uso). 3.4. Reload Editor ( Guía de Uso). Anterior 3. Lors Management Siguiente 3.4. Reload Editor ( Guía de Uso). 3.4.1. Preguntas básicas sobre Reload Editor. - Qué hace el programa Reload Editor? RELOAD Editor

Más detalles

Software para la Manipulación de Bases de Datos Espaciales PostGIS PGVisualizer

Software para la Manipulación de Bases de Datos Espaciales PostGIS PGVisualizer I Jornadas de SIG Libre Girona, España Software para la Manipulación de Bases de Datos Espaciales PostGIS PGVisualizer Mariella Gutiérrez Valenzuela Universidad Católica de la Santísima Concepción. Chile

Más detalles

Manual de usuario para la parametrización de la integración Openbravo-Sugar

Manual de usuario para la parametrización de la integración Openbravo-Sugar Manual de usuario para la parametrización de la integración Openbravo-Sugar Fichero: Manual usuario - Integración Openbravo- Sugar - Spanish Versión: 1.0 Sevilla, 3 de febrero de 2010 Histórico de cambios

Más detalles

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010 INTRODUCCION Los objetos usados en aplicaciones JAVA mantienen su estado y comportamiento mientras la aplicación se halle en ejecución. Generalmente se necesita mantener el estado y comportamiento de los

Más detalles

Generación de código para Hibernate desde modelos UML

Generación de código para Hibernate desde modelos UML Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Apéndice A Herramientas utilizadas

Apéndice A Herramientas utilizadas Apéndice A Herramientas utilizadas A.1 Java Media Framework El Java Media Framework (JMF) es una interfaz para el desarrollo de aplicaciones (API) e incorpora el manejo de audio y video en el lenguaje

Más detalles

Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica

Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica Guía rápida de la Oficina Virtual (Solicit@V5) Área Web y Administración Electrónica HOJA DE CONTROL Título Nombre del Fichero Autores Guía rápida de la Oficina Virtual (Solicit@V5) UHU_GuiaRapidaSolicita_V5.pdf

Más detalles

GUÍA DOCENTE DE LA ASIGNATURA

GUÍA DOCENTE DE LA ASIGNATURA Grado en Ingeniería Civil GUÍA DOCENTE DE LA ASIGNATURA G331 - Informática y Programación Curso Académico 2013-2014 1 1. DATOS IDENTIFICATIVOS DE LA ASIGNATURA Título/s Centro Módulo / materia Código y

Más detalles

ARCHIVO DEL LABORATORIO DE DOCUMENTACIÓN GEOMÉTRICA DEL PATRIMONIO

ARCHIVO DEL LABORATORIO DE DOCUMENTACIÓN GEOMÉTRICA DEL PATRIMONIO LABORATORIO DE DOCUMENTACIÓN GEOMÉTRICA DEL PATRIMONIO Grupo de Investigación en Patrimonio Construido -GPAC- (UPV-EHU) Aulario de las Nieves, edificio de Institutos Universitarias C/ Nieves Cano 33, 01006

Más detalles

Dispositivos de Red Hub Switch

Dispositivos de Red Hub Switch Dispositivos de Red Tarjeta de red Para lograr el enlace entre las computadoras y los medios de transmisión (cables de red o medios físicos para redes alámbricas e infrarrojos o radiofrecuencias para redes

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

Más detalles

Requisitos del Software Aplicativo Móvil SISTEMAS INTELIGENTES EN RED S.A.S.

Requisitos del Software Aplicativo Móvil SISTEMAS INTELIGENTES EN RED S.A.S. Requisitos del Software Aplicativo Móvil SISTEMAS INTELIGENTES EN RED S.A.S. Desarrollo de Aplicativo Móvil 2 Índice 1. INTRODUCCIÓN... 3 2. OBJETIVO... 3 3. MÓDULO MENSAJERÍA... 3 3.1. Actores... 3 3.2.

Más detalles

Plantilla para las VIII Jornadas de SIG libre.

Plantilla para las VIII Jornadas de SIG libre. VIII JORNADAS DE SIG LIBRE Plantilla para las VIII Jornadas de SIG libre. M. Arias de Reyna Domínguez (1) (1) Ingeniera Informática, GeoCat bv, Bennekom, Países Bajos, maria.arias@geocat.net RESUMEN GeoCat

Más detalles

Lenguaje de Script para Aventuras Gráficas y Presentaciones Interactivas.

Lenguaje de Script para Aventuras Gráficas y Presentaciones Interactivas. Lenguaje de Script para Aventuras Gráficas y Presentaciones Interactivas. (Documentación Preliminar) 5º Concurso Universitario de Software Libre Miguel Angel Pescador Santirso 1/13 LSAGPI- Documentación

Más detalles

Básico de Arquitectura del Computador. Ing. Irvin Cuervo

Básico de Arquitectura del Computador. Ing. Irvin Cuervo Básico de Arquitectura del Computador El Computador Hardware Software El Computador Qué es y qué hace un computador? Un computador es básicamente una máquina cuya función principal es procesar información.

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

Construcción de un componente que permita manipular un gráfico para su almacenamiento como texto en una base de datos

Construcción de un componente que permita manipular un gráfico para su almacenamiento como texto en una base de datos La crisis corporativa: desencuentro entre la ética y la economía neoclásica Construcción de un componente que permita manipular un gráfico para su almacenamiento como texto en una base de datos Construction

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Manual de usuario de Windows Live Writer

Manual de usuario de Windows Live Writer Manual de usuario de Windows Live Writer Índice 0.- Introducción. 3 1.- Descarga e Instalación. 4 2.- Conexión a un blog. 7 3.- Interfaz de Windows Live Writer. 12 4.- Creación de un Post. 13 5.- Creación

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Instituto Tecnológico y de Estudios Superiores de Monterrey Práctica de Laboratorio 4 Implementación de un NAPT

Instituto Tecnológico y de Estudios Superiores de Monterrey Práctica de Laboratorio 4 Implementación de un NAPT Instituto Tecnológico y de Estudios Superiores de Monterrey Práctica de Laboratorio 4 Implementación de un NAPT Marco teórico: La red más grande del mundo, Internet, ha tenido un gran crecimiento en la

Más detalles

Camara IP Bullet Secucore 2 Megapixeles WiFi 1080p 6828BL. www.secucore.com.mx contacto@secucore.com.mx

Camara IP Bullet Secucore 2 Megapixeles WiFi 1080p 6828BL. www.secucore.com.mx contacto@secucore.com.mx Camara IP Bullet Secucore 2 Megapixeles WiFi 1080p 6828BL Conexiones del equipo. 1 Conector de alimentación entrada de 12 volts. 2 Conector RJ45 funciona para establecer comunicación con una PC, HVR o

Más detalles

La Tecnología Informatica aplicada a los centros escolares. LEPRE. Herramienta digital Jclic. Lic. Cruz Jorge Fernández Aramburo.

La Tecnología Informatica aplicada a los centros escolares. LEPRE. Herramienta digital Jclic. Lic. Cruz Jorge Fernández Aramburo. Gobierno del Estado de Durango Secretaría de Educación ESCUELA NORMAL PROFESOR CARLOS A. CARRILLO La Tecnología Informatica aplicada a los centros escolares. LEPRE Herramienta digital Jclic Lic. Cruz Jorge

Más detalles

WAN y Enrutamiento WAN

WAN y Enrutamiento WAN WAN y Enrutamiento WAN El asunto clave que separa a las tecnologías WAN de las LAN es la capacidad de crecimiento, no tanto la distancia entre computadoras Para crecer, la WAN consta de dispositivos electrónicos

Más detalles

REDES INFORMATICAS: Protocolo IP

REDES INFORMATICAS: Protocolo IP REDES INFORMATICAS: Protocolo IP 1. PRINCIPIOS BÁSICOS DE IP El protocolo IP se basa en tres principios básicos: Un direccionamiento de los ordenadores. Un tipo de dato: el datragrama IP. Un algoritmo

Más detalles

Productividad de Negocio

Productividad de Negocio Productividad de Negocio Integración entre las diferentes versiones de Office y SharePoint Productividad de Negocio Integración entre las diferentes versiones de Office y SharePoint Tabla de contenido

Más detalles

Introducción al LabVIEW

Introducción al LabVIEW Introducción al LabVIEW Qué es LabVIEW? LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un entorno de desarrollo basado en programación gráfica. Utiliza símbolos gráficos en lugar de lenguaje

Más detalles

Área Académica: Sistemas Computacionales

Área Académica: Sistemas Computacionales Área Académica: Sistemas Computacionales Tema: Modelo OSI Profesor: Efraín Andrade Hernández Periodo: Julio Diciembre 2011 Keywords: OSI Model Tema: Modelo OSI Abstract During the last two decades have

Más detalles

The MineSight Planning Database

The MineSight Planning Database The MineSight Planning Database Su Centro de Datos de Planificación de Mina Quizás no haya nada más crucial para la integración del proceso general de una mina que contar con un centralizador confiable

Más detalles

ADO.NET. Arquitectura de ADO.NET

ADO.NET. Arquitectura de ADO.NET ADO.NET ADO.NET proporciona acceso coherente a orígenes de datos como SQL Server y XML, así como a orígenes de datos expuestos mediante OLE DB y ODBC. Las aplicaciones de consumidor que comparten datos

Más detalles

Sistema para la administración integral de los Programas Académicos de Postgrado

Sistema para la administración integral de los Programas Académicos de Postgrado Eighth LACCEI Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2010) Innovation and Development for the Americas, June 1-4, 2010, Arequipa, Perú Sistema para la administración

Más detalles

Javier Velásquez Maldonado velasquezj7@hotmail.com. Jhoanna Isabel Lansinot Tocain jlansinot@yahoo.com

Javier Velásquez Maldonado velasquezj7@hotmail.com. Jhoanna Isabel Lansinot Tocain jlansinot@yahoo.com DISEÑO, DESARROLLO E IMPLANTACIÓN DE UNA APLICACIÓN WEB PARA LA AUTOMATIZACIÓN DE LA INFORMACIÓN DE LA IGLESIA EVANGÉLICA INDÍGENA ECUATORIANA DE LA ALIANZA CRISTIANA Y MISIONERA. Javier Velásquez Maldonado

Más detalles

API de java. (http://download.oracle.com/javase/6/docs/api/) Guía de alumno Laboratorio 9. Recursos disponibles en moodle para este día.

API de java. (http://download.oracle.com/javase/6/docs/api/) Guía de alumno Laboratorio 9. Recursos disponibles en moodle para este día. PROGRAMACIÓN Laboratorio 9 Guía del Alumno 1 LABORATORIO 9: JAVA.IO - ENTRADA/SALIDA JAVA.NET - URL Versión:2013-05- 20 Conocimientos previos Temario visto en las clases de teoría. Se recomienda haber

Más detalles

IVista: es la interfaz con la que el Presentador se comunica con la vista.

IVista: es la interfaz con la que el Presentador se comunica con la vista. Capítulo 3 MODELO DE DISEÑO 3.1 Arquitectura Modelo-Vista-Presentador La arquitectura Modelo-Vista-Presentador (MVP) [11] separa el modelo, la presentación y las acciones basadas en la interacción con

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

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents

Más detalles