How to represent a graph in memory is a fundamental data structuring problem. In the usual representations, a graph is stored by representing explicitly all vertices and all edges. The names (labels) assigned to vertices are used only to encode the edges and betray nothing about the structure of the graph itself and hence are a "waste" of space. In this context, we present a general framework for labeling any graph so that adjacency between any two given vertices can be tested in constant time. The labeling schema assigns to each vertex a of a general graph a O(delta(x) log(3) n) bit label, where n is the number of vertices and delta(x) is x's degree. The adjacency test can be performed in 5 steps and the schema can be computed in polynomial time. This representation strictly contrasts with usual representations, i.e. adjacency matrix and adjacency list representations, which require O(n log n) bit label per vertex and constant time adjacency test, and O(delta(x) log n) bit label per vertex and O(log delta(x)) steps to test adjacency, respectively. Additionally, the labeling schema is implicit, that is: no pointers are used.
Talamo, M., Vocca, P. (1998). Compact implicit representation of graphs (extended abstract). In GRAPH-THEORETIC CONCEPTS IN COMPUTER SCIENCE (pp.164-176). BERLIN : SPRINGER-VERLAG BERLIN.
Compact implicit representation of graphs (extended abstract)
TALAMO, MAURIZIO;Vocca, P.
1998-01-01
Abstract
How to represent a graph in memory is a fundamental data structuring problem. In the usual representations, a graph is stored by representing explicitly all vertices and all edges. The names (labels) assigned to vertices are used only to encode the edges and betray nothing about the structure of the graph itself and hence are a "waste" of space. In this context, we present a general framework for labeling any graph so that adjacency between any two given vertices can be tested in constant time. The labeling schema assigns to each vertex a of a general graph a O(delta(x) log(3) n) bit label, where n is the number of vertices and delta(x) is x's degree. The adjacency test can be performed in 5 steps and the schema can be computed in polynomial time. This representation strictly contrasts with usual representations, i.e. adjacency matrix and adjacency list representations, which require O(n log n) bit label per vertex and constant time adjacency test, and O(delta(x) log n) bit label per vertex and O(log delta(x)) steps to test adjacency, respectively. Additionally, the labeling schema is implicit, that is: no pointers are used.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.