Comprimiendo Grafos de la Web

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

Download "Comprimiendo Grafos de la Web"

Transcripción

1 Mapa Comprimiendo Grafos de la Web Gonzalo Navarro Centro de Investigación de la Web Departamento de Ciencias de la Computación Universidad de Chile En colaboración con los estudiantes Francisco Claude y Rodrigo González

2 Mapa Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

3 Mapa Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

4 Mapa Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

5 Mapa Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

6 Mapa Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

7 I Motivación Estructuras de Datos Compactas Modificadas para ocupar poco espacio. Y eso no es compresión? Deben retener su funcionalidad y acceso directo. Para qué, si la memoria es tan barata? Mejora el rendimiento debido a la jerarquía de memoria. Cada vez más populares por motivos tecnológicos.

8 I Motivación Estructuras de Datos Compactas Modificadas para ocupar poco espacio. Y eso no es compresión? Deben retener su funcionalidad y acceso directo. Para qué, si la memoria es tan barata? Mejora el rendimiento debido a la jerarquía de memoria. Cada vez más populares por motivos tecnológicos.

9 I Motivación Estructuras de Datos Compactas Modificadas para ocupar poco espacio. Y eso no es compresión? Deben retener su funcionalidad y acceso directo. Para qué, si la memoria es tan barata? Mejora el rendimiento debido a la jerarquía de memoria. Cada vez más populares por motivos tecnológicos.

10 I Motivación Estructuras de Datos Compactas Modificadas para ocupar poco espacio. Y eso no es compresión? Deben retener su funcionalidad y acceso directo. Para qué, si la memoria es tan barata? Mejora el rendimiento debido a la jerarquía de memoria. Cada vez más populares por motivos tecnológicos.

11 I Motivación Estructuras de Datos Compactas Modificadas para ocupar poco espacio. Y eso no es compresión? Deben retener su funcionalidad y acceso directo. Para qué, si la memoria es tan barata? Mejora el rendimiento debido a la jerarquía de memoria. Cada vez más populares por motivos tecnológicos.

12 I Motivación Estructuras de Datos Compactas Modificadas para ocupar poco espacio. Y eso no es compresión? Deben retener su funcionalidad y acceso directo. Para qué, si la memoria es tan barata? Mejora el rendimiento debido a la jerarquía de memoria. Cada vez más populares por motivos tecnológicos.

13 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

14 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

15 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

16 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

17 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

18 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

19 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

20 I Motivación Compresión de Grafos Util para ejecutar, en memoria principal, algoritmos sobre grafos grandes. Algoritmos como qué? Descubrir comunidades, calcular PageRank, minería de grafos,... (más ejemplos en la charla de Claudio) Consideraremos las operaciones más básicas: Obtener los vecinos de un nodo u: v, (u, v) E. Obtener los vecinos reversos de un nodo u: v, (v, u) E. Calcular el grado interior/exterior de un nodo u. Verificar la existencia de arista (u, v) in E.

21 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

22 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Entropía (Empírica) Entropía binaria: si hay n 0 ceros y n 1 unos en B (n 0 + n 1 = n = B ) H 0 (B) = n 0 n log n n 0 + n 1 n log n n 1 Entropía de orden cero: si hay n a ocurrencias de a en S, H 0 (S) = a Σ n a n log n n a Cota inferior a cualquier codificación de Σ que asigne siempre el mismo código al mismo símbolo.

23 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Entropía (Empírica) Entropía binaria: si hay n 0 ceros y n 1 unos en B (n 0 + n 1 = n = B ) H 0 (B) = n 0 n log n n 0 + n 1 n log n n 1 Entropía de orden cero: si hay n a ocurrencias de a en S, H 0 (S) = a Σ n a n log n n a Cota inferior a cualquier codificación de Σ que asigne siempre el mismo código al mismo símbolo.

24 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Entropía (Empírica) Entropía binaria: si hay n 0 ceros y n 1 unos en B (n 0 + n 1 = n = B ) H 0 (B) = n 0 n log n n 0 + n 1 n log n n 1 Entropía de orden cero: si hay n a ocurrencias de a en S, H 0 (S) = a Σ n a n log n n a Cota inferior a cualquier codificación de Σ que asigne siempre el mismo código al mismo símbolo.

25 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Entropía (Empírica) Entropía de orden k: si S A son los caracteres que siguen a las ocurrencias de A en S, H k (S) = 1 n A Σ k S A H 0 (S A ) Cota inferior a codificaciones que consideran los k símbolos precedentes.

26 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Entropía (Empírica) Entropía de orden k: si S A son los caracteres que siguen a las ocurrencias de A en S, H k (S) = 1 n A Σ k S A H 0 (S A ) Cota inferior a codificaciones que consideran los k símbolos precedentes.

27 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

28 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Matriz de Incidencia a b c a b c d e a b c d e d e

29 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Matriz de Incidencia Con n nodos y e aristas, ocupa n 2 bits. Responde existencia en tiempo O(1). Encuentra todos los vecinos directos/reversos en O(n). Calcula grado interior/exterior en O(n).

30 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Matriz de Incidencia Con n nodos y e aristas, ocupa n 2 bits. Responde existencia en tiempo O(1). Encuentra todos los vecinos directos/reversos en O(n). Calcula grado interior/exterior en O(n).

31 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Matriz de Incidencia Con n nodos y e aristas, ocupa n 2 bits. Responde existencia en tiempo O(1). Encuentra todos los vecinos directos/reversos en O(n). Calcula grado interior/exterior en O(n).

32 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Matriz de Incidencia Con n nodos y e aristas, ocupa n 2 bits. Responde existencia en tiempo O(1). Encuentra todos los vecinos directos/reversos en O(n). Calcula grado interior/exterior en O(n).

33 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Lista de Adyacencia b a: d,c,b a: b a b: c: d,c,a d b: c: a a,b,e c d: d: a,b,c,e e: d,c e: d e

34 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Lista de Adyacencia Con n nodos y e aristas, ocupa n log e + e log n bits. Encuentra cada vecino en tiempo O(1). Calcula grado exterior en tiempo O(1). Responde existencia en tiempo O(n). Necesita otro tanto para los reversos.

35 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Lista de Adyacencia Con n nodos y e aristas, ocupa n log e + e log n bits. Encuentra cada vecino en tiempo O(1). Calcula grado exterior en tiempo O(1). Responde existencia en tiempo O(n). Necesita otro tanto para los reversos.

36 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Lista de Adyacencia Con n nodos y e aristas, ocupa n log e + e log n bits. Encuentra cada vecino en tiempo O(1). Calcula grado exterior en tiempo O(1). Responde existencia en tiempo O(n). Necesita otro tanto para los reversos.

37 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Lista de Adyacencia Con n nodos y e aristas, ocupa n log e + e log n bits. Encuentra cada vecino en tiempo O(1). Calcula grado exterior en tiempo O(1). Responde existencia en tiempo O(n). Necesita otro tanto para los reversos.

38 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Lista de Adyacencia Con n nodos y e aristas, ocupa n log e + e log n bits. Encuentra cada vecino en tiempo O(1). Calcula grado exterior en tiempo O(1). Responde existencia en tiempo O(n). Necesita otro tanto para los reversos.

39 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Relaciones Binarias Con técnicas muy novedosas de estructuras sucintas para relaciones binarias se puede conseguir e log(n 2 /e) (1 + o(1)) bits y responder todo en tiempo O(log log n). Obtiene lo mejor de los dos mundos pero aún no es demasiado bueno para la Web.

40 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Relaciones Binarias Con técnicas muy novedosas de estructuras sucintas para relaciones binarias se puede conseguir e log(n 2 /e) (1 + o(1)) bits y responder todo en tiempo O(log log n). Obtiene lo mejor de los dos mundos pero aún no es demasiado bueno para la Web.

41 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Relaciones Binarias Con técnicas muy novedosas de estructuras sucintas para relaciones binarias se puede conseguir e log(n 2 /e) (1 + o(1)) bits y responder todo en tiempo O(log log n). Obtiene lo mejor de los dos mundos pero aún no es demasiado bueno para la Web.

42 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Relaciones Binarias Con técnicas muy novedosas de estructuras sucintas para relaciones binarias se puede conseguir e log(n 2 /e) (1 + o(1)) bits y responder todo en tiempo O(log log n). Obtiene lo mejor de los dos mundos pero aún no es demasiado bueno para la Web.

43 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Relaciones Binarias Con técnicas muy novedosas de estructuras sucintas para relaciones binarias se puede conseguir e log(n 2 /e) (1 + o(1)) bits y responder todo en tiempo O(log log n). Obtiene lo mejor de los dos mundos pero aún no es demasiado bueno para la Web.

44 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Representación de Grafos Algunos ejemplos de bpe s (crawls reales) Grafo n e Matriz Lista 2 x Lista Rel. Bin UK 18.5M 298M 1.15M EU 860K 19M 39K Arabic 23M 640M 827K Indochina 7M 194M 253K

45 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Grafos Planares y Variantes Con n nodos, tienen O(n) aristas. Distintas técnicas para comprimirlos a O(n) bits. Algunas permiten acceso directo. Hay algunos resultados para tipos especiales de grafos. Es improbable que tengan algún impacto en grafos Web.

46 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Grafos Planares y Variantes Con n nodos, tienen O(n) aristas. Distintas técnicas para comprimirlos a O(n) bits. Algunas permiten acceso directo. Hay algunos resultados para tipos especiales de grafos. Es improbable que tengan algún impacto en grafos Web.

47 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Grafos Planares y Variantes Con n nodos, tienen O(n) aristas. Distintas técnicas para comprimirlos a O(n) bits. Algunas permiten acceso directo. Hay algunos resultados para tipos especiales de grafos. Es improbable que tengan algún impacto en grafos Web.

48 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Grafos Planares y Variantes Con n nodos, tienen O(n) aristas. Distintas técnicas para comprimirlos a O(n) bits. Algunas permiten acceso directo. Hay algunos resultados para tipos especiales de grafos. Es improbable que tengan algún impacto en grafos Web.

49 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Grafos Planares y Variantes Con n nodos, tienen O(n) aristas. Distintas técnicas para comprimirlos a O(n) bits. Algunas permiten acceso directo. Hay algunos resultados para tipos especiales de grafos. Es improbable que tengan algún impacto en grafos Web.

50 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Separadores de Grafos Mejor exponente: Blandford [PhD Thesis, 2006] Encontrar zonas que se pueden desconectar cortando unas pocas aristas. Renumerar los nodos y comprimirlos separadamente. Pueden obtener bits por arista (bpe) y ser más rápidos que la versión descomprimida (por efectos de caché). Para vecinos reversos necesitan el grafo traspuesto.

51 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Separadores de Grafos Mejor exponente: Blandford [PhD Thesis, 2006] Encontrar zonas que se pueden desconectar cortando unas pocas aristas. Renumerar los nodos y comprimirlos separadamente. Pueden obtener bits por arista (bpe) y ser más rápidos que la versión descomprimida (por efectos de caché). Para vecinos reversos necesitan el grafo traspuesto.

52 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Separadores de Grafos Mejor exponente: Blandford [PhD Thesis, 2006] Encontrar zonas que se pueden desconectar cortando unas pocas aristas. Renumerar los nodos y comprimirlos separadamente. Pueden obtener bits por arista (bpe) y ser más rápidos que la versión descomprimida (por efectos de caché). Para vecinos reversos necesitan el grafo traspuesto.

53 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Separadores de Grafos Mejor exponente: Blandford [PhD Thesis, 2006] Encontrar zonas que se pueden desconectar cortando unas pocas aristas. Renumerar los nodos y comprimirlos separadamente. Pueden obtener bits por arista (bpe) y ser más rápidos que la versión descomprimida (por efectos de caché). Para vecinos reversos necesitan el grafo traspuesto.

54 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Separadores de Grafos Mejor exponente: Blandford [PhD Thesis, 2006] Encontrar zonas que se pueden desconectar cortando unas pocas aristas. Renumerar los nodos y comprimirlos separadamente. Pueden obtener bits por arista (bpe) y ser más rápidos que la versión descomprimida (por efectos de caché). Para vecinos reversos necesitan el grafo traspuesto.

55 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

56 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

57 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

58 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

59 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

60 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

61 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Distribución sesgada de grados interior/exterior (power laws). Una lista de adyacencia tiene baja entropía. Localidad de referencia: la mayoría de los links apuntan al mismo site. Listar los nodos en orden lexicográfico de URL. Usar técnicas de codificación de gaps para comprimir las listas. Modelo de copia: los links que salen se parecen a los de alguna otra página. Encontrar una página similar y codificar diferencialmente.

62 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Mejor exponente: Boldi y Vigna [WWW 2006]. 3 bpe para compresión pura 6 bpe para recuperar cada vecino directo o reverso dentro del microsegundo Esto considera el grafo y su traspuesto

63 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Mejor exponente: Boldi y Vigna [WWW 2006]. 3 bpe para compresión pura 6 bpe para recuperar cada vecino directo o reverso dentro del microsegundo Esto considera el grafo y su traspuesto

64 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Mejor exponente: Boldi y Vigna [WWW 2006]. 3 bpe para compresión pura 6 bpe para recuperar cada vecino directo o reverso dentro del microsegundo Esto considera el grafo y su traspuesto

65 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Compresión de Grafos Los Grafos Web son Muy Compresibles Mejor exponente: Boldi y Vigna [WWW 2006]. 3 bpe para compresión pura 6 bpe para recuperar cada vecino directo o reverso dentro del microsegundo Esto considera el grafo y su traspuesto

66 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Mapa Motivación Entropía Grafos y Compresión Rank, Select, y Autoíndices : Autoindexamiento I: Rank/Select de Símbolos

67 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

68 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

69 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

70 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

71 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

72 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

73 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select Binarios Sea B[1, n] un array de bits. rank b (B, i) = número de b s en B[1, i]. select b (B, i) = posición del i-ésimo b en B. b = 1 por defecto, rank 1 (B, i) = i rank 0 (B, i). Ambos se pueden resolver en tiempo constante usando o( B ) bits además de B. E incluso con nh 0 (B) + o(n) bits en total. Existen implementaciones prácticas.

74 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select de Símbolos Sea S[1, n] una secuencia sobre el alfabeto Σ de tamaño σ. rank a (S, i) = número de a s en S[1, i]. select a (S, i) = posición del i-ésimo a en S. Además, obtener S[i] si la estructura reemplaza S. Wavelet trees (generalizados): nh 0 (S) + o(n log σ) bits, tiempo O(1 + log σ log log n ). Más rápido: n log σ + o(n log σ) bits, O(log log σ) rank y acceso, O(1) select.

75 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select de Símbolos Sea S[1, n] una secuencia sobre el alfabeto Σ de tamaño σ. rank a (S, i) = número de a s en S[1, i]. select a (S, i) = posición del i-ésimo a en S. Además, obtener S[i] si la estructura reemplaza S. Wavelet trees (generalizados): nh 0 (S) + o(n log σ) bits, tiempo O(1 + log σ log log n ). Más rápido: n log σ + o(n log σ) bits, O(log log σ) rank y acceso, O(1) select.

76 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select de Símbolos Sea S[1, n] una secuencia sobre el alfabeto Σ de tamaño σ. rank a (S, i) = número de a s en S[1, i]. select a (S, i) = posición del i-ésimo a en S. Además, obtener S[i] si la estructura reemplaza S. Wavelet trees (generalizados): nh 0 (S) + o(n log σ) bits, tiempo O(1 + log σ log log n ). Más rápido: n log σ + o(n log σ) bits, O(log log σ) rank y acceso, O(1) select.

77 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select de Símbolos Sea S[1, n] una secuencia sobre el alfabeto Σ de tamaño σ. rank a (S, i) = número de a s en S[1, i]. select a (S, i) = posición del i-ésimo a en S. Además, obtener S[i] si la estructura reemplaza S. Wavelet trees (generalizados): nh 0 (S) + o(n log σ) bits, tiempo O(1 + log σ log log n ). Más rápido: n log σ + o(n log σ) bits, O(log log σ) rank y acceso, O(1) select.

78 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select de Símbolos Sea S[1, n] una secuencia sobre el alfabeto Σ de tamaño σ. rank a (S, i) = número de a s en S[1, i]. select a (S, i) = posición del i-ésimo a en S. Además, obtener S[i] si la estructura reemplaza S. Wavelet trees (generalizados): nh 0 (S) + o(n log σ) bits, tiempo O(1 + log σ log log n ). Más rápido: n log σ + o(n log σ) bits, O(log log σ) rank y acceso, O(1) select.

79 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Rank y Select Rank y Select de Símbolos Sea S[1, n] una secuencia sobre el alfabeto Σ de tamaño σ. rank a (S, i) = número de a s en S[1, i]. select a (S, i) = posición del i-ésimo a en S. Además, obtener S[i] si la estructura reemplaza S. Wavelet trees (generalizados): nh 0 (S) + o(n log σ) bits, tiempo O(1 + log σ log log n ). Más rápido: n log σ + o(n log σ) bits, O(log log σ) rank y acceso, O(1) select.

80 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Comprimidos para Texto Funcionalidad Estructuras de datos comprimidas para un texto T = t 1... t n. Sobre un alfabeto Σ de tamaño σ. Operaciones básicas soportadas: Dadas posiciones l, r, mostrar el área de texto tl... t r. Dado un patrón P = p 1... p m, contar las ocurrencias de P en T. Ubicar cada una de esas occ ocurrencias.

81 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Comprimidos para Texto Funcionalidad Estructuras de datos comprimidas para un texto T = t 1... t n. Sobre un alfabeto Σ de tamaño σ. Operaciones básicas soportadas: Dadas posiciones l, r, mostrar el área de texto tl... t r. Dado un patrón P = p 1... p m, contar las ocurrencias de P en T. Ubicar cada una de esas occ ocurrencias.

82 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Comprimidos para Texto Funcionalidad Estructuras de datos comprimidas para un texto T = t 1... t n. Sobre un alfabeto Σ de tamaño σ. Operaciones básicas soportadas: Dadas posiciones l, r, mostrar el área de texto tl... t r. Dado un patrón P = p 1... p m, contar las ocurrencias de P en T. Ubicar cada una de esas occ ocurrencias.

83 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Comprimidos para Texto Funcionalidad Estructuras de datos comprimidas para un texto T = t 1... t n. Sobre un alfabeto Σ de tamaño σ. Operaciones básicas soportadas: Dadas posiciones l, r, mostrar el área de texto tl... t r. Dado un patrón P = p 1... p m, contar las ocurrencias de P en T. Ubicar cada una de esas occ ocurrencias.

84 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Comprimidos para Texto Funcionalidad Estructuras de datos comprimidas para un texto T = t 1... t n. Sobre un alfabeto Σ de tamaño σ. Operaciones básicas soportadas: Dadas posiciones l, r, mostrar el área de texto tl... t r. Dado un patrón P = p 1... p m, contar las ocurrencias de P en T. Ubicar cada una de esas occ ocurrencias.

85 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Comprimidos para Texto Funcionalidad Estructuras de datos comprimidas para un texto T = t 1... t n. Sobre un alfabeto Σ de tamaño σ. Operaciones básicas soportadas: Dadas posiciones l, r, mostrar el área de texto tl... t r. Dado un patrón P = p 1... p m, contar las ocurrencias de P en T. Ubicar cada una de esas occ ocurrencias.

86 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Reemplazan el texto y además lo indexan. Es posible hacerlo usando nh k (T ) bits sin el texto. Existen muchos autoíndices comprimidos para texto. Ej. contar en tiempo O(m log σ), ubicar cada ocurrencia en tiempo O(log n), mostrar en tiempo O(log n + l log σ).

87 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Reemplazan el texto y además lo indexan. Es posible hacerlo usando nh k (T ) bits sin el texto. Existen muchos autoíndices comprimidos para texto. Ej. contar en tiempo O(m log σ), ubicar cada ocurrencia en tiempo O(log n), mostrar en tiempo O(log n + l log σ).

88 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Reemplazan el texto y además lo indexan. Es posible hacerlo usando nh k (T ) bits sin el texto. Existen muchos autoíndices comprimidos para texto. Ej. contar en tiempo O(m log σ), ubicar cada ocurrencia en tiempo O(log n), mostrar en tiempo O(log n + l log σ).

89 I Entropía Grafos y Compresión Rank, Select, y Autoíndices Autoíndices Reemplazan el texto y además lo indexan. Es posible hacerlo usando nh k (T ) bits sin el texto. Existen muchos autoíndices comprimidos para texto. Ej. contar en tiempo O(m log σ), ubicar cada ocurrencia en tiempo O(log n), mostrar en tiempo O(log n + l log σ).

90 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

91 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

92 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

93 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

94 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

95 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

96 I : Idea General Concatenar las listas de adyacencia en un texto. Construir un autoíndice comprimido sobre ese texto. Mostrar: vecinos de un nodo Ubicar: vecinos reversos de un nodo Contar: grado interior de un nodo La entropía de orden k de este texto captura el modelo de copia. La entropía de orden cero captura la distribución sesgada de grado interior.

97 I Comparación Experimental Usando el Compressed Suffix Array de Sadakane como autoíndice. Contra los resultados de Boldi y Vigna. Sobre el mismo crawl UK, 18.5 Mnodos, 292 Mlinks. Vecinos: resultados comparables. Reversos: perdemos por 10X

98 I Comparación Experimental Usando el Compressed Suffix Array de Sadakane como autoíndice. Contra los resultados de Boldi y Vigna. Sobre el mismo crawl UK, 18.5 Mnodos, 292 Mlinks. Vecinos: resultados comparables. Reversos: perdemos por 10X

99 I Comparación Experimental Usando el Compressed Suffix Array de Sadakane como autoíndice. Contra los resultados de Boldi y Vigna. Sobre el mismo crawl UK, 18.5 Mnodos, 292 Mlinks. Vecinos: resultados comparables. Reversos: perdemos por 10X

100 I Comparación Experimental Usando el Compressed Suffix Array de Sadakane como autoíndice. Contra los resultados de Boldi y Vigna. Sobre el mismo crawl UK, 18.5 Mnodos, 292 Mlinks. Vecinos: resultados comparables. Reversos: perdemos por 10X

101 I Comparación Experimental Usando el Compressed Suffix Array de Sadakane como autoíndice. Contra los resultados de Boldi y Vigna. Sobre el mismo crawl UK, 18.5 Mnodos, 292 Mlinks. Vecinos: resultados comparables. Reversos: perdemos por 10X

102 I time per neighbor (ms) Retrieving neighbors space (bpe) ours BV BV (fwd)

103 I time per neighbor (ms) Retrieving reverse neighbors space (bpe) ours BV

104 I Usando Rank y Select de Símbolos Consideremos de nuevo la secuencia T de listas de adyacencia. Guardamos bitmap H[1, e] marcando los comienzos de listas. Precalculamos rank y select para las secuencias T y H.

105 I Usando Rank y Select de Símbolos Consideremos de nuevo la secuencia T de listas de adyacencia. Guardamos bitmap H[1, e] marcando los comienzos de listas. Precalculamos rank y select para las secuencias T y H.

106 I Usando Rank y Select de Símbolos Consideremos de nuevo la secuencia T de listas de adyacencia. Guardamos bitmap H[1, e] marcando los comienzos de listas. Precalculamos rank y select para las secuencias T y H.

107 I a b c a: b: c: d: e: d,c,b d,c,a d d,c d e T = d c b d c a d d c H =

108 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

109 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

110 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

111 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

112 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

113 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

114 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

115 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

116 I Usando Rank y Select de Símbolos Es fácil traducir todas las operaciones: grado interior (v): rankv (T, e). grado exterior (v): select(h, v + 1) select(h, v). vecinos(v): mostrar T [select(h, v)...] hasta que H[i + 1] = 1. vecinos reversos(v): rank(h, selectv (T, i)), para i s sucesivos. existe(u, v): rank v (T, select(h, u + 1) 1) rank v (T, select(h, u)) = 1. Podemos obtener el grafo traspuesto con espacio extra sublineal (por ejemplo con tiempo O(log log n)). O lo podemos comprimir a orden cero (Wavelet tree, tiempo O(log n/ log log n)). La compresión no es gran cosa (σ es demasiado grande!).

117 I Dónde Estamos? Estructuras prácticas (Blandford) con bpe, sin penalidad aparente. Necesitarían unos 30 bpe para reversos. Estructuras prácticas (Boldi & Vigna) con 3 6 bpe, tiempos razonables, incluye reversos. Estructura teórica (relaciones binarias) con n log(n 2 /e) bits para todo, tiempos O(log log n), bpe como mínimo. Inventamos otra (rank/select) con e log n bits para todo, tiempos O(log log n), bpe como mínimo. Para qué seguir escuchando esta charla?

118 I Dónde Estamos? Estructuras prácticas (Blandford) con bpe, sin penalidad aparente. Necesitarían unos 30 bpe para reversos. Estructuras prácticas (Boldi & Vigna) con 3 6 bpe, tiempos razonables, incluye reversos. Estructura teórica (relaciones binarias) con n log(n 2 /e) bits para todo, tiempos O(log log n), bpe como mínimo. Inventamos otra (rank/select) con e log n bits para todo, tiempos O(log log n), bpe como mínimo. Para qué seguir escuchando esta charla?

119 I Dónde Estamos? Estructuras prácticas (Blandford) con bpe, sin penalidad aparente. Necesitarían unos 30 bpe para reversos. Estructuras prácticas (Boldi & Vigna) con 3 6 bpe, tiempos razonables, incluye reversos. Estructura teórica (relaciones binarias) con n log(n 2 /e) bits para todo, tiempos O(log log n), bpe como mínimo. Inventamos otra (rank/select) con e log n bits para todo, tiempos O(log log n), bpe como mínimo. Para qué seguir escuchando esta charla?

120 I Dónde Estamos? Estructuras prácticas (Blandford) con bpe, sin penalidad aparente. Necesitarían unos 30 bpe para reversos. Estructuras prácticas (Boldi & Vigna) con 3 6 bpe, tiempos razonables, incluye reversos. Estructura teórica (relaciones binarias) con n log(n 2 /e) bits para todo, tiempos O(log log n), bpe como mínimo. Inventamos otra (rank/select) con e log n bits para todo, tiempos O(log log n), bpe como mínimo. Para qué seguir escuchando esta charla?

121 I Dónde Estamos? Estructuras prácticas (Blandford) con bpe, sin penalidad aparente. Necesitarían unos 30 bpe para reversos. Estructuras prácticas (Boldi & Vigna) con 3 6 bpe, tiempos razonables, incluye reversos. Estructura teórica (relaciones binarias) con n log(n 2 /e) bits para todo, tiempos O(log log n), bpe como mínimo. Inventamos otra (rank/select) con e log n bits para todo, tiempos O(log log n), bpe como mínimo. Para qué seguir escuchando esta charla?

122 I Dónde Estamos? Estructuras prácticas (Blandford) con bpe, sin penalidad aparente. Necesitarían unos 30 bpe para reversos. Estructuras prácticas (Boldi & Vigna) con 3 6 bpe, tiempos razonables, incluye reversos. Estructura teórica (relaciones binarias) con n log(n 2 /e) bits para todo, tiempos O(log log n), bpe como mínimo. Inventamos otra (rank/select) con e log n bits para todo, tiempos O(log log n), bpe como mínimo. Para qué seguir escuchando esta charla?

123 I Vuelta a Compresión Pura Hay una forma elegante y efectiva de comprimir T? Re-Pair: encontrar el par más repetido en T y reemplazarlo por un nuevo símbolo, hasta que todos los pares sean únicos.

124 I Vuelta a Compresión Pura Hay una forma elegante y efectiva de comprimir T? Re-Pair: encontrar el par más repetido en T y reemplazarlo por un nuevo símbolo, hasta que todos los pares sean únicos.

125 I Re-Pair a a a b c a a b a a a b c a b d a b d a a 4 A a b a b b c c a b d d a a a A c a A a a A c A d A d

126 I Re-Pair a a A c a A a a A c A d A d a a 2 a A 3 A c 2 c a 1 A d 2 c A 1 d A 1 A B a b a A a B c B a B c A d A d

127 I Re-Pair a B c B a B c A d A d a B 2 B c 2 c B 1 B a 1 c A 1 A d 2 d A 1 A B C a b a A A d a B c B a B c C C

128 I Re-Pair a B c B a B c C C a B 2 B c 2 c B 1 B a 1 c C 1 C C 1 A B C D a b a A A d B c a DB a DC C

129 I Re-Pair a DB a DC C a D 2 DB 1 B a 1 DC 1 C C 1 A B C D E a b a A A d B c a D E B E C C diccionario secuencia comprimida

130 I Re-Pair Comprime bien, descomprime rápido. Aprovecha la propiedad de copia. Comprime mejor si se codifica T diferencialmente. Mejoramos Re-Pair mismo. Estructura de datos sucinta para el diccionario. Método aproximado para secuencias muy grandes.

131 I Re-Pair Comprime bien, descomprime rápido. Aprovecha la propiedad de copia. Comprime mejor si se codifica T diferencialmente. Mejoramos Re-Pair mismo. Estructura de datos sucinta para el diccionario. Método aproximado para secuencias muy grandes.

132 I Re-Pair Comprime bien, descomprime rápido. Aprovecha la propiedad de copia. Comprime mejor si se codifica T diferencialmente. Mejoramos Re-Pair mismo. Estructura de datos sucinta para el diccionario. Método aproximado para secuencias muy grandes.

133 I Re-Pair Comprime bien, descomprime rápido. Aprovecha la propiedad de copia. Comprime mejor si se codifica T diferencialmente. Mejoramos Re-Pair mismo. Estructura de datos sucinta para el diccionario. Método aproximado para secuencias muy grandes.

134 I Re-Pair Comprime bien, descomprime rápido. Aprovecha la propiedad de copia. Comprime mejor si se codifica T diferencialmente. Mejoramos Re-Pair mismo. Estructura de datos sucinta para el diccionario. Método aproximado para secuencias muy grandes.

135 I Re-Pair Comprime bien, descomprime rápido. Aprovecha la propiedad de copia. Comprime mejor si se codifica T diferencialmente. Mejoramos Re-Pair mismo. Estructura de datos sucinta para el diccionario. Método aproximado para secuencias muy grandes.

136 I Mejorando Re-Pair con Estructuras de Datos Sucintas

137 I Mejorando Re-Pair con Estructuras de Datos Sucintas

138 I Mejorando Re-Pair con Estructuras de Datos Sucintas

139 I Re-Pair El Re-Pair original corre en tiempo lineal, pero necesita 20e bytes! Si se usa menos espacio es lentísimo. Diseñamos una versión aproximada para grafos muy grandes. Los resultados son bastante cercanos al método exacto. La técnica se adapta bien a memoria secundaria.

140 I Re-Pair El Re-Pair original corre en tiempo lineal, pero necesita 20e bytes! Si se usa menos espacio es lentísimo. Diseñamos una versión aproximada para grafos muy grandes. Los resultados son bastante cercanos al método exacto. La técnica se adapta bien a memoria secundaria.

141 I Re-Pair El Re-Pair original corre en tiempo lineal, pero necesita 20e bytes! Si se usa menos espacio es lentísimo. Diseñamos una versión aproximada para grafos muy grandes. Los resultados son bastante cercanos al método exacto. La técnica se adapta bien a memoria secundaria.

142 I Re-Pair El Re-Pair original corre en tiempo lineal, pero necesita 20e bytes! Si se usa menos espacio es lentísimo. Diseñamos una versión aproximada para grafos muy grandes. Los resultados son bastante cercanos al método exacto. La técnica se adapta bien a memoria secundaria.

143 I Re-Pair El Re-Pair original corre en tiempo lineal, pero necesita 20e bytes! Si se usa menos espacio es lentísimo. Diseñamos una versión aproximada para grafos muy grandes. Los resultados son bastante cercanos al método exacto. La técnica se adapta bien a memoria secundaria.

144 I Re-Pair El espacio que sobre en memoria principal se usa para una tabla hash. Se recorre la secuencia y se almacenan los pares y frecuencias. Cuando la tabla se llena se dejan de insertar pares nuevos. Al final se recorre la tabla y se eligen los K más frecuentes para reemplazar de una sóla vez. A la siguiente iteración tenemos más espacio para la tabla

145 I Re-Pair El espacio que sobre en memoria principal se usa para una tabla hash. Se recorre la secuencia y se almacenan los pares y frecuencias. Cuando la tabla se llena se dejan de insertar pares nuevos. Al final se recorre la tabla y se eligen los K más frecuentes para reemplazar de una sóla vez. A la siguiente iteración tenemos más espacio para la tabla

146 I Re-Pair El espacio que sobre en memoria principal se usa para una tabla hash. Se recorre la secuencia y se almacenan los pares y frecuencias. Cuando la tabla se llena se dejan de insertar pares nuevos. Al final se recorre la tabla y se eligen los K más frecuentes para reemplazar de una sóla vez. A la siguiente iteración tenemos más espacio para la tabla

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN SOLUCIONES EFICIENTES PARA RANK Y SELECT EN SECUENCIAS BINARIAS TESIS PARA OPTAR AL GRADO DE GRADO

Más detalles

Estructuras de Datos Compactas

Estructuras de Datos Compactas Estructuras de Datos Compactas Gonzalo Navarro www.dcc.uchile.cl/gnavarro gnavarro@dcc.uchile.cl Departamento de Ciencias de la Computación (DCC) Universidad de Chile Sponsors: Parte I: Secuencias Parte

Más detalles

Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación

Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación EJERCICIOS RESUELTOS DE ECUACIONES NO LINEALES Profesor: Jaime Álvarez Maldonado Ayudante: Rodrigo

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Compresión de Datos. Método de Huffman. Dpto. Informática

Compresión de Datos. Método de Huffman. Dpto. Informática Compresión de Datos Método de Huffman Manipulación y Preservación de Datos Dpto. Informática Ing. Mariano D'Agostino Introducción La compresión de datos es el proceso de convertir una cadena de datos de

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN ÁRBOLES DE SUFIJOS COMPRIMIDOS PARA TEXTOS ALTAMENTE REPETITIVOS MEMORIA PARA OPTAR AL TÍTULO

Más detalles

Complejidad de los Algoritmos

Complejidad de los Algoritmos Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de

Más detalles

Algoritmos para determinar Caminos Mínimos en Grafos

Algoritmos para determinar Caminos Mínimos en Grafos Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

Tablas de dispersión (hash tables)

Tablas de dispersión (hash tables) Tablas de dispersión (hash tables) La dispersión es una técnica empleada para realizar inserciones, eliminaciones y búsquedas en un tiempo promedio constante. La estructura de datos ideal para la tabla

Más detalles

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot Algoritmos de ordenación Análisis y Diseño de Algoritmos Algoritmos de ordenación Algoritmos básicos: Θ(n 2 ) Ordenación por inserción Ordenación por selección Ordenación por intercambio directo (burbuja)

Más detalles

Indexación de Datos en Recuperación de Información Geográfica

Indexación de Datos en Recuperación de Información Geográfica Laboratorio de Bases de Datos Universidade da Coruña A Coruña, España Indexación de Datos en Recuperación de Información Geográfica Diego Seco dseco@udc.es La Revolución de los Datos Valladolid, 24 de

Más detalles

Webir /09/2014

Webir /09/2014 17/09/2014 Temas Compresión de índices - vocabulario Compresión de índices lista de postings 2 Compresión de Vocabulario... ArbolArteriaArterioesclerosisArtrosis... Diccionario en un sólo String Lista

Más detalles

so de Photoshop Cur Copyleft - Jorge Sánchez 2006

so de Photoshop Cur Copyleft - Jorge Sánchez 2006 Curso de Photoshop Copyleft - Jorge Sánchez 2006 Imágenes Según la RAE. Imagen= Figura, representación, semejanza y apariencia de algo. Otra definición (WIKIPEDIA): Forma dibujada, pintada o esculpida,

Más detalles

Representación de datos y aritmética básica en sistemas digitales

Representación de datos y aritmética básica en sistemas digitales Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1 Sistemas de Numeración: Alfabeto:

Más detalles

Teoría de grafos y optimización en redes

Teoría de grafos y optimización en redes Teoría de grafos y optimización en redes José María Ferrer Caja Universidad Pontificia Comillas Definiciones básicas Grafo: Conjunto de nodos (o vértices) unidos por aristas G = (V,E) Ejemplo V = {,,,,

Más detalles

Procesamiento Digital de Imágenes. Compresión de imágenes

Procesamiento Digital de Imágenes. Compresión de imágenes FICH, UNL - Departamento de Informática - Ingeniería Informática Procesamiento Digital de Imágenes Guía de Trabajos Prácticos 8 Compresión de imágenes 2010 1. Objetivos Analizar las características y el

Más detalles

Inscripción en el Doctorado en Ciencias de la Computación Universidad Nacional de San Luis

Inscripción en el Doctorado en Ciencias de la Computación Universidad Nacional de San Luis Inscripción en el Doctorado en Ciencias de la Computación Universidad Nacional de San Luis TEMA: Índices en Memoria Secundaria para Búsquedas en Texto. TESISTA: Norma Edith Herrera ASESOR CIENTÍFICO: Dr.

Más detalles

Definición de Memoria

Definición de Memoria Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria

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

Tema 3. Análisis de costes

Tema 3. Análisis de costes Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información

Más detalles

Grafos. Amalia Duch Brown Octubre de 2007

Grafos. Amalia Duch Brown Octubre de 2007 Grafos Amalia Duch Brown Octubre de 2007 Índice 1. Definiciones Básicas Intuitivamente un grafo es un conjunto de vértices unidos por un conjunto de líneas o flechas dependiendo de si el grafo es dirigido

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7 Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Memoria virtual 1 Recordemos: Jerarquía de Memoria Registros Instr.

Más detalles

Algoritmo para Calcular Logaritmos

Algoritmo para Calcular Logaritmos Algoritmo para Calcular Logaritmos José Acevedo Jiménez Santiago, Rep. Dom. Calcular el logaritmo de un número hoy día es tarea sencilla, el uso de tablas y reglas para calcular el valor de los mismos

Más detalles

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos. Grafos Los grafos son estructuras que constan de vértices o nodos y de aristas o arcos que conectan los vértices entre sí. Un grafo G consiste en dos cosas: 1. Un conjunto V de elementos llamados nodos

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

Algoritmos de Strings. Héctor Navarro

Algoritmos de Strings. Héctor Navarro lgoritmos de Strings Héctor Navarro Substrings Dado un string T (posiblemente muy grande) y un patrón P (de tamaño menor), encontrar la primera (o todas) las apariciones de P en T Solución trivial de (NM)

Más detalles

Jerarquía de memoria - Motivación

Jerarquía de memoria - Motivación Jerarquía de memoria - Motivación Idealmente uno podría desear una capacidad de memoria infinitamente grande, tal que cualquier. palabra podría estar inmediatamente disponible Estamos forzados a reconocer

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

Más detalles

TEMA 12. CONVERSORES D/A y A/D

TEMA 12. CONVERSORES D/A y A/D TEMA 12. CONVESOES D/A y A/D http://www.tech-faq.com/wp-content/uploads/images/integrated-circuit-layout.jpg IEEE 125 Aniversary: http://www.flickr.com/photos/ieee125/with/2809342254/ TEMA 12. CONVESOES

Más detalles

Minería de Datos. Árboles de Decisión. Fac. Ciencias Ing. Informática Otoño de Dept. Matesco, Universidad de Cantabria

Minería de Datos. Árboles de Decisión. Fac. Ciencias Ing. Informática Otoño de Dept. Matesco, Universidad de Cantabria Minería de Datos Árboles de Decisión Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Otoño de 2012 Twenty questions Intuición sobre los árboles de decisión Juego

Más detalles

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN 1. INTRODUCCIÓN. SISTEMAS DE NUMERACIÓN EN. Sistema binario. Sistema octal. Sistema hexadecimal. 2. REPRESENTACIÓN DE TEXTOS.. Números naturales. Números enteros.

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

5to. ESTANDARES MATEMATICOS COMUNES FUNDAMENTALS

5to. ESTANDARES MATEMATICOS COMUNES FUNDAMENTALS Primeras Nueve Semanas Entienda el sistema de valor posicional 5.NBT.2 Explique patrones del numero cero del producto cuando se multiplica un numero por una potencia de 10 y explique patrones en el lugar

Más detalles

Análisis y Diseño de Algoritmos Tablas de Hash

Análisis y Diseño de Algoritmos Tablas de Hash Análisis y Diseño de Algoritmos Tablas de Hash Guillermo Morales-Luna Arturo Díaz Pérez CONTENIDO 1. Dispersión 2. Funciones de dispersión (a) Método de división (b) Método de multiplicación 3. Direccionamiento

Más detalles

Introducción general a la compresión de datos multimedia

Introducción general a la compresión de datos multimedia Introducción general a la compresión de datos multimedia Necesidad de la compresión La mayoría de las aplicaciones multimedia requieren volúmenes importantes de almacenamiento y transmisión. CD-ROM 640

Más detalles

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut 8.1 Para cada uno de los siguientes conjuntos, encontrar una desigualdad válida que agregada a la formulación

Más detalles

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación

Más detalles

REPRESENTACIONES GRÁFICAS

REPRESENTACIONES GRÁFICAS REPRESENTACIONES GRÁFICAS 1. Qué son? Son gráficos que permiten mostrar la respuesta en frecuencia de un sistema lineal. Son herramientas útiles para el análisis, síntesis y diseño. 2. Diagrama de Bode

Más detalles

Guía práctica de estudio 06: Lenguaje binario

Guía práctica de estudio 06: Lenguaje binario Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario

Más detalles

5.2. Sistemas de codificación en binario

5.2. Sistemas de codificación en binario 5.2. Sistemas de codificación en binario 5.2.1. Sistemas numéricos posicionales [ Wakerly 2.1 pág. 26] 5.2.2. Números octales y hexadecimales [ Wakerly 2.2 pág. 27] 5.2.3. Conversión general de sistemas

Más detalles

Expresiones regulares y distancia de edición.

Expresiones regulares y distancia de edición. Expresiones regulares y distancia de edición. Francisco Barreras QUANTIL S.A.S. 19 de agosto de 2015 Francisco Barreras (QUANTIL S.A.S.) Expresiones regulares y distancia de edición. 19 de agosto de 2015

Más detalles

Guía práctica de estudio 06: Lenguaje binario

Guía práctica de estudio 06: Lenguaje binario Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario

Más detalles

Métodos de Ordenamiento. Unidad VI: Estructura de datos

Métodos de Ordenamiento. Unidad VI: Estructura de datos Métodos de Ordenamiento Unidad VI: Estructura de datos Concepto de ordenación La ordenación de los datos consiste en disponer o clasificar un conjunto de datos (o una estructura) en algún determinado orden

Más detalles

29-05-2015 20-06-2015 1 20-06-2015 2 IV Unidad Se entiende por codificación en el contexto de la Ingeniería, al proceso de conversión de un sistema de datos de origen a otro sistema de datos de destino.

Más detalles

Convertir un AFND a un AFD

Convertir un AFND a un AFD Convertir un AFND a un AFD Existe una equivalencia entre los AFD y AFN, de forma que un autómata M es equivalente a un autómata M' si L(M) ) L(M'). Ejemplo: Los autómatas de la siguiente figura son equivalentes.

Más detalles

Tema: Los Grafos y su importancia para la optimización de redes.

Tema: Los Grafos y su importancia para la optimización de redes. Tema: Los Grafos y su importancia para la optimización de redes. Qué son los Grafos? Un grafo es una dupla G= {X,U}, donde X es un conjunto finito y no vacio de elementos llamados vértices y U es el conjunto

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Bootstrapping de Compiladores y Diagramas en T Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2012 Qué es un compilador?

Más detalles

Representación de la información

Representación de la información Laboratorio de Introducción a las Ciencias de la Computación Página 1 UNIERSIDAD CATÓLICA DE SANTA MARÍA PROGRAMA PROESIONAL DE INGENIERÍA DE SISTEMAS SESIÓN 2: Representación de la información OBJETIOS

Más detalles

Elementos Diagramas de Clases Clase:

Elementos Diagramas de Clases Clase: Diagramas de Clases Un diagrama de clases o estructura estática muestra el conjunto de clases y objeto importantes que forman parte de un sistema, junto con las relaciones existentes entre clases y objetos.

Más detalles

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008 ELO211: Sistemas Digitales Tomás rredondo Vidal 1er Semestre 2008 Este material está basado en: textos y material de apoyo: ontemporary Logic Design 1 st / 2 nd edition. Gaetano orriello and Randy Katz.

Más detalles

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Introducción a la Programación 11 O. Humberto Cervantes Maceda Introducción a la Programación 11 O Humberto Cervantes Maceda Recordando En la sesión anterior vimos que la información almacenada en la memoria, y por lo tanto aquella que procesa la unidad central de

Más detalles

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 índice Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 Capítulo 1: Introducción a c/e++ Introducción a C/C++ 13 Introducción 14 Primeros Pasos en C/C++ 15 Mi Primer Programa 15 Bibliotecas 17 Archivos

Más detalles

Grafos. Algoritmos y Estructuras de Datos III

Grafos. Algoritmos y Estructuras de Datos III Grafos Algoritmos y Estructuras de Datos III Grafos Un grafo G = (V, X ) es un par de conjuntos, donde V es un conjunto de puntos o nodos o vértices y X es un subconjunto del conjunto de pares no ordenados

Más detalles

Última modificación: 1 de julio de

Última modificación: 1 de julio de Contenido SEÑALES DIGITALES Y CAPACIDAD DE CANAL 1.- Señales digitales de 2 y más niveles. 2.- Tasa de bit e intervalo de bit. 3.- Ancho de banda de una señal digital. 4.- Límites en la tasa de transmisión.

Más detalles

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Tema 3: El Método Simplex. Algoritmo de las Dos Fases. Tema 3: El Método Simplex Algoritmo de las Dos Fases 31 Motivación Gráfica del método Simplex 32 El método Simplex 33 El método Simplex en Formato Tabla 34 Casos especiales en la aplicación del algoritmo

Más detalles

Crawling the Web. Presentado por

Crawling the Web. Presentado por Crawling the Web Presentado por Rocío o Luján n Cecchini 1 Introducción Qué es un crawler? Infraestructura Algunos algoritmos Métricas de evaluación 2 Qué es un web crawler? www... www... www... www...

Más detalles

Ejemplo, generación de #s aleatorios

Ejemplo, generación de #s aleatorios Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Iniciación a la informática

Iniciación a la informática Iniciación a la informática Nociones básicas sobre el uso de ordenadores El ordenador. Qué es el ordenador? Maquina capaz de procesar información, capaz de realizar multitud de operaciones distintas La

Más detalles

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices. ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo

Más detalles

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo. NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Índices de RI. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Índices de RI. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides Índices de RI UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides Qué es un Índice? Es la segunda etapa para abordar el tema de la RI. Es un archivo que contiene

Más detalles

COMUNICACIÓN DE DATOS

COMUNICACIÓN DE DATOS DEPARTAMENTO DE CIENCIA Y TECNOLOGÍA UNIVERSIDAD NACIONAL DE QUILMES Roque Sáenz Peña 352 (B1876BXD) Bernal Buenos Aires Argentina COMUNICACIÓN DE DATOS CODIFICACIÓN DE FUENTE Un problema de interés dentro

Más detalles

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} } Unidad 1 Parte 1 - Teoría de Grafos Introducción En este capítulo veremos la noción matemática de grafo y propiedades de los mismos. En capítulos subsiguientes veremos las estructuras de datos utilizadas

Más detalles

Bloques Aritméticos - Multiplicadores

Bloques Aritméticos - Multiplicadores Bloques Aritméticos - Multiplicadores La multiplicación es una operación cara (en términos de recursos) y lenta Este hecho ha motivado la integración de unidades completas de multiplicación en los DSPs

Más detalles

Fundamentos de Programación Visual Basic

Fundamentos de Programación Visual Basic Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280

Más detalles

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo. Análisis de Algoritmos Ingeniería Informática, EPS-UAM Información general Organización del curso: 13-15 (mínimo-máximo) semanas docentes: 30-33 clases teóricas. 9-12 clases de problemas 26-30 clases prácticas

Más detalles

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico Organización de computadoras Clase 11 Universidad Nacional de Quilmes Lic. Martínez Federico Qué vimos? Mascaras Qué vimos? Qué vimos? Mascaras Repeticiones controladas Qué vimos? Mascaras Repeticiones

Más detalles

2. Representación de números 1

2. Representación de números 1 2. Representación de números 1 Julio C. Carrillo E. Escuela de Matemáticas, UIS 2. Representación de números 2 1. Representación de punto flotante normalizada La notación científica es un tipo de representación

Más detalles

Implementación de Máquinas de Búsqueda I: Indices y Compresión

Implementación de Máquinas de Búsqueda I: Indices y Compresión Implementación de Máquinas de Búsqueda I: Indices y Compresión Gonzalo Navarro Centro de Investigación de la Web Universidad de Chile Mapa de la Charla Modelo booleano de Recuperación de Información (RI)

Más detalles

Laboratorio de MTP-I. Curso 2008-2009 Proyecto: Sistema de reserva y gestión de vuelos Noviembre 2008

Laboratorio de MTP-I. Curso 2008-2009 Proyecto: Sistema de reserva y gestión de vuelos Noviembre 2008 Laboratorio de MTP-I. Curso 2008-2009 Proyecto: Sistema de reserva y gestión de vuelos Noviembre 2008 1 OBJETIVO El objetivo del proyecto a implementar es desarrollar un sistema informático de reserva

Más detalles

Estructuras en LabVIEW.

Estructuras en LabVIEW. Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While

Más detalles

Sistemas de Ecuaciones. Lineales I

Sistemas de Ecuaciones. Lineales I Sistemas de Ecuaciones Lineales I Preliminares: Expresión matricial. Dificultades numéricas. 521230-1 - DIM Universidad de Concepción Expresión matricial Todo sistema de ecuaciones lineales puede escribirse

Más detalles

La eficiencia de los programas

La eficiencia de los programas La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos

Más detalles

Computación I Sistemas de Numeración. Curso 2015 Facultad de Ingeniería Universidad de la República

Computación I Sistemas de Numeración. Curso 2015 Facultad de Ingeniería Universidad de la República Computación I Sistemas de Numeración Curso 2015 Facultad de Ingeniería Universidad de la República Definición Conjunto de símbolos y reglas sobre ellos, que se utilizan para la representación de cantidades.

Más detalles

El Sistema de los Números Naturales. L. Rico

El Sistema de los Números Naturales. L. Rico Estructura Conceptual: El Sistema de los Naturales L. Rico J. L. Lupiáñez A. Marín Departamento Didáctica de la Matemática Universidad de Granada Las ideas que se encuentran en un primer listado, según

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Arquitectura de Ordenadores Tutor: Antonio Rivero Cuesta Unidad Didáctica 1 Representación de la Información y Funciones Lógicas Tema 1 Representación de la Información

Más detalles

Webir - 2014 10/09/2014

Webir - 2014 10/09/2014 Webir - 2014 10/09/2014 Temas Recuperación tolerante a errores de ortografía y otras inconsistencias Construcción de índices 2 Búsquedas con Comodines mon* - árbol de búsqueda para las palabras del vocabulario

Más detalles

CONOCIENDO EL TECLADO

CONOCIENDO EL TECLADO CONOCIENDO EL TECLADO El teclado esta dividido en varias partes Teclas de alfabeto y caracteres Teclas funcionales van del F1 a F12 Teclas especiales Teclas numéricas Teclas de navegación La ubicación

Más detalles

Aprender a desarrollar con JavaScript

Aprender a desarrollar con JavaScript Presentación del lenguaje JavaScript 1. Definición e histórico rápido 11 2. Requisitos previos para un aprendizaje sencillo del lenguaje 13 3. Herramientas necesarias 14 4. Posicionamiento de JavaScript

Más detalles

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten 22//22 REDES DE PETRI: PROPIEDADES Y MÉTODOS DE ANÁLISIS PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 22/3 REDES DE PETRI: PROPIEDADES

Más detalles

OPTIMIZACIÓN DE CÓDIGO

OPTIMIZACIÓN DE CÓDIGO OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.

Más detalles

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Programación entera: Ejemplos, resolución gráfica, relajaciones lineales Prof. José Niño Mora Investigación Operativa, Grado en Estadística y Empresa, 2011/12 Esquema Programación entera: definición, motivación,

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

Potencias y raíces Matemáticas 1º ESO

Potencias y raíces Matemáticas 1º ESO ÍNDICE Potencias y raíces Matemáticas 1º ESO 1. Potencias 2. Propiedades de potencias 3. Cuadrados perfectos 4. Raíces cuadradas 1. POTENCIAS Una potencia es una multiplicación en la que todos los factores

Más detalles

Proyecto 2: recorridos sobre grafos y componentes conexas

Proyecto 2: recorridos sobre grafos y componentes conexas Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI-2693. Laboratorio de Algoritmos y Estructuras III Trimestre Abril-Julio 2015 1. Introducción Proyecto 2: recorridos

Más detalles

de Operaciones Área Académica: Sistemas Computacionales Tema: Tipos de Modelos en Investigación Profesor: I.S.C. Guadalupe Hernández Coca

de Operaciones Área Académica: Sistemas Computacionales Tema: Tipos de Modelos en Investigación Profesor: I.S.C. Guadalupe Hernández Coca Área Académica: Sistemas Computacionales Tema: Tipos de Modelos en Investigación de Operaciones Profesor: I.S.C. Guadalupe Hernández Coca Periodo: Julio Diciembre 2011 Keywords: investigation of operations,

Más detalles

Búsquedas en Bases de Datos no Convencionales

Búsquedas en Bases de Datos no Convencionales Búsquedas en Bases de Datos no Convencionales Diego Arroyuelo, Verónica Ludueña y Nora Reyes - darroy,vlud,nreyes @unsl.edu.ar Dpto. de Informática - Universidad Nacional de San Luis - Tel.: 02652-420822-257

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

TEORÍA DE GRAFOS Ingeniería de Sistemas

TEORÍA DE GRAFOS Ingeniería de Sistemas TEORÍA DE GRAFOS Ingeniería de Sistemas Código: MAT-31114 AUTORES Ing. Daniel Zambrano Ing. Viviana Semprún UNIDADES DE LA ASIGNATURA» UNIDAD I. Relaciones» UNIDAD II. Estructuras Algebraicas» UNIDAD III.

Más detalles

El TAD Grafo. El TAD Grafo

El TAD Grafo. El TAD Grafo ! Esta representación resulta útil cuando el número de vértices se conoce previamente y permanecerá fijo durante la resolución del problema, pero resulta ineficiente si necesitamos añadir o eliminar vértices

Más detalles

Práctica 3 de Computación Científica I Proyecto: Algoritmo PageRank

Práctica 3 de Computación Científica I Proyecto: Algoritmo PageRank Práctica 3 de Computación Científica I Proyecto: Algoritmo PageRank Fecha de distribución: 04-05/11/2010 Fecha de entrega E3: 25-26/11/2010 Fecha de entrega E4: 09-10/12/2010 1. Ejercicios obligatorios

Más detalles

Análisis de cerchas Método de las uniones

Análisis de cerchas Método de las uniones Seminario de Modelación Matemática em Arquitectura Análisis de cerchas Método de las uniones Determinar las fuerzas internas de cada uno de los miembros de la siguiente cercha: /2 500 lb 250 lb Y 3/2 X

Más detalles

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

UNIDAD 6: SISTEMAS DE ECUACIONES

UNIDAD 6: SISTEMAS DE ECUACIONES UNIDAD 6: SISTEMAS DE ECUACIONES Continuamos con el estudio de la asignatura; ya hemos abordado cinco capítulos del programa de estudio: Los números reales, ecuaciones, desigualdades y algunas de las funciones

Más detalles

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas Sistemas numéricos MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Definición(1) Un sistema de representación numérica es un sistema de lenguaje que consiste en: un conjunto ordenado de símbolos

Más detalles