@MISC{_chapter14, author = {}, title = {Chapter 14 Labeling Schemes}, year = {} }

Share

OpenURL

Abstract

Imagine you want to repeatedly query a huge graph, e.g., a social or a road network. For example, you might need to find out whether two nodes are connected, or what the distance between two nodes is. Since the graph is so large, you distribute it among multiple servers in your data center. 14.1 Adjacency Theorem 14.1. It is possible to assign labels of size 2 log n bits to nodes in a tree so that for every pair u, v of nodes, it is easy to tell whether u is adjacent to v by just looking at u and v’s labels. Proof. Choose a root in the tree arbitrarily so that every non-root node has a parent. The label of each node u consists of two parts: The ID of u (from 1 to n), and the ID of u’s parent (or nothing if u is the root). Remarks: • What we have constructed above is called a labeling scheme, more precisely a labeling scheme for adjacency in trees. Formally, a labeling scheme is defined as follows. Definition 14.2. A labeling scheme consists of an encoder e and a decoder d. The encoder e assigns to each node v a label e(v). The decoder d receives the labels of the nodes in question and returns an answer to some query. The largest size (in bits) of a label assigned to a node is called the label size of the labeling scheme. Remarks: • In Theorem 14.1, the decoder receives two node labels e(u) and e(v), and its answer is Yes or No, depending on whether u and v are adjacent or not. The label size is 2 log n. • The label size is the complexity measure we are going to focus on in this chapter. The run-time of the encoder and the decoder are two other complexity measures that are studied in the literature.