Color-coding

From testwiki
Jump to navigation Jump to search

Template:About In computer science and graph theory, the term color-coding refers to an algorithmic technique which is useful in the discovery of network motifs. For example, it can be used to detect a simple path of length Template:Mvar in a given graph. The traditional color-coding algorithm is probabilistic, but it can be derandomized without much overhead in the running time.

Color-coding also applies to the detection of cycles of a given length, and more generally it applies to the subgraph isomorphism problem (an NP-complete problem), where it yields polynomial time algorithms when the subgraph pattern that it is trying to detect has bounded treewidth.

The color-coding method was proposed and analyzed in 1994 by Noga Alon, Raphael Yuster, and Uri Zwick.[1][2]

Results

The following results can be obtained through the method of color-coding:

The method

To solve the problem of finding a subgraph H=(VH,EH) in a given graph Template:Math, where Template:Mvar can be a path, a cycle, or any bounded treewidth graph where |VH|=O(log|V|), the method of color-coding begins by randomly coloring each vertex of Template:Mvar with k=|VH| colors, and then tries to find a colorful copy of Template:Mvar in colored Template:Mvar. Here, a graph is colorful if every vertex in it is colored with a distinct color. This method works by repeating (1) random coloring a graph and (2) finding colorful copy of the target subgraph, and eventually the target subgraph can be found if the process is repeated a sufficient number of times.

Suppose a copy of Template:Mvar in Template:Mvar becomes colorful with some non-zero probability Template:Mvar. It immediately follows that if the random coloring is repeated Template:Math times, then this copy is expected to become colorful once. Note that though Template:Mvar is small, it is shown that if |VH|=O(log|V|), Template:Mvar is only polynomially small. Suppose again there exists an algorithm such that, given a graph Template:Mvar and a coloring which maps each vertex of Template:Mvar to one of the Template:Mvar colors, it finds a copy of colorful Template:Mvar, if one exists, within some runtime Template:Math. Then the expected time to find a copy of Template:Mvar in Template:Mvar, if one exists, is O(rp).

Sometimes it is also desirable to use a more restricted version of colorfulness. For example, in the context of finding cycles in planar graphs, it is possible to develop an algorithm that finds well-colored cycles. Here, a cycle is well-colored if its vertices are colored by consecutive colors.

Example

An example would be finding a simple cycle of length Template:Mvar in graph Template:Math.

By applying random coloring method, each simple cycle has a probability of k!/kk>ek to become colorful, since there are kk ways of coloring the Template:Mvar vertices on the cycle, among which there are k! colorful occurrences. Then an algorithm (described next) can be used to find colorful cycles in the randomly colored graph Template:Mvar in time O(Vω), where ω is the matrix multiplication constant. Therefore, it takes ekO(Vω) overall time to find a simple cycle of length Template:Mvar in Template:Mvar.

The colorful cycle-finding algorithm works by first finding all pairs of vertices in Template:Mvar that are connected by a simple path of length Template:Math, and then checking whether the two vertices in each pair are connected. Given a coloring function Template:Math to color graph Template:Mvar, enumerate all partitions of the color set Template:Math into two subsets Template:Math of size k/2 each. Note that Template:Mvar can be divided into Template:Math and Template:Math accordingly, and let Template:Math and Template:Math denote the subgraphs induced by Template:Math and Template:Math respectively. Then, recursively find colorful paths of length k/21 in each of Template:Math and Template:Math. Suppose the boolean matrix Template:Math and Template:Math represent the connectivity of each pair of vertices in Template:Math and Template:Math by a colorful path, respectively, and let Template:Mvar be the matrix describing the adjacency relations between vertices of Template:Math and those of Template:Math, the boolean product A1BA2 gives all pairs of vertices in Template:Mvar that are connected by a colorful path of length Template:Math. Thus, the recursive relation of matrix multiplications is t(k)2kt(k/2), which yields a runtime of 2O(k)Vω. Although this algorithm finds only the end points of the colorful path, another algorithm by Alon and Naor[4] that finds colorful paths themselves can be incorporated into it.

Derandomization

The derandomization of color-coding involves enumerating possible colorings of a graph Template:Mvar, such that the randomness of coloring Template:Mvar is no longer required. For the target subgraph Template:Mvar in Template:Mvar to be discoverable, the enumeration has to include at least one instance where the Template:Mvar is colorful. To achieve this, enumerating a Template:Mvar-perfect family Template:Mvar of hash functions from Template:Math to Template:Math is sufficient. By definition, Template:Mvar is Template:Mvar-perfect if for every subset Template:Mvar of Template:Math where |S|=k, there exists a hash function Template:Mvar in Template:Mvar such that Template:Math is perfect. In other words, there must exist a hash function in Template:Mvar that colors any given Template:Mvar vertices with Template:Mvar distinct colors.

There are several approaches to construct such a Template:Mvar-perfect hash family:

  1. The best explicit construction is by Moni Naor, Leonard J. Schulman, and Aravind Srinivasan,[5] where a family of size ekkO(logk)log|V| can be obtained. This construction does not require the target subgraph to exist in the original subgraph finding problem.
  2. Another explicit construction by Jeanette P. Schmidt and Alan Siegel[6] yields a family of size 2O(k)log2|V|.
  3. Another construction that appears in the original paper of Noga Alon et al.[2] can be obtained by first building a Template:Mvar-perfect family that maps Template:Math to Template:Math followed by building another Template:Mvar-perfect family that maps Template:Math to Template:Math In the first step, it is possible to construct such a family with Template:Math random bits that are almost Template:Math-wise independent,[7][8] and the sample space needed for generating those random bits can be as small as kO(1)log|V|. In the second step, it has been shown by Jeanette P. Schmidt and Alan Siegel[6] that the size of such Template:Mvar-perfect family can be 2O(k). Consequently, by composing the Template:Mvar-perfect families from both steps, a Template:Mvar-perfect family of size 2O(k)log|V| that maps from Template:Math to Template:Math can be obtained.

In the case of derandomizing well-coloring, where each vertex on the subgraph is colored consecutively, a Template:Mvar-perfect family of hash functions from Template:Math to Template:Math is needed. A sufficient Template:Mvar-perfect family which maps from Template:Math to Template:Math can be constructed in a way similar to the approach 3 above (the first step). In particular, it is done by using Template:Math random bits that are almost Template:Math independent, and the size of the resulting Template:Mvar-perfect family will be kO(k)log|V|.

The derandomization of color-coding method can be easily parallelized, yielding efficient NC algorithms.

Applications

Recently, color-coding has attracted much attention in the field of bioinformatics. One example is the detection of signaling pathways in protein-protein interaction (PPI) networks. Another example is to discover and to count the number of motifs in PPI networks. Studying both signaling pathways and motifs allows a deeper understanding of the similarities and differences of many biological functions, processes, and structures among organisms.

Due to the huge amount of gene data that can be collected, searching for pathways or motifs can be highly time consuming. However, by exploiting the color-coding method, the motifs or signaling pathways with k=O(logn) vertices in a network Template:Mvar with Template:Mvar vertices can be found very efficiently in polynomial time. Thus, this enables us to explore more complex or larger structures in PPI networks.

Further reading

References

Template:Reflist

  1. Alon, N., Yuster, R., and Zwick, U. 1994. Color-coding: a new method for finding simple paths, cycles and other small subgraphs within large graphs. In Proceedings of the Twenty-Sixth Annual ACM Symposium on theory of Computing (Montreal, Quebec, Canada, May 23–25, 1994). STOC '94. ACM, New York, NY, 326–335. DOI= http://doi.acm.org/10.1145/195058.195179
  2. 2.0 2.1 Alon, N., Yuster, R., and Zwick, U. 1995. Color-coding. J. ACM 42, 4 (Jul. 1995), 844–856. DOI= http://doi.acm.org/10.1145/210332.210337
  3. Coppersmith–Winograd Algorithm
  4. Alon, N. and Naor, M. 1994 Derandomization, Witnesses for Boolean Matrix Multiplication and Construction of Perfect Hash Functions. Technical Report. UMI Order Number: CS94-11., Weizmann Science Press of Israel.
  5. Naor, M., Schulman, L. J., and Srinivasan, A. 1995. Splitters and near-optimal derandomization. In Proceedings of the 36th Annual Symposium on Foundations of Computer Science (October 23–25, 1995). FOCS. IEEE Computer Society, Washington, DC, 182.
  6. 6.0 6.1 Template:Cite journal
  7. Naor, J. and Naor, M. 1990. Small-bias probability spaces: efficient constructions and applications. In Proceedings of the Twenty-Second Annual ACM Symposium on theory of Computing (Baltimore, Maryland, United States, May 13–17, 1990). H. Ortiz, Ed. STOC '90. ACM, New York, NY, 213-223. DOI= http://doi.acm.org/10.1145/100216.100244
  8. Alon, N., Goldreich, O., Hastad, J., and Peralta, R. 1990. Simple construction of almost k-wise independent random variables. In Proceedings of the 31st Annual Symposium on Foundations of Computer Science (October 22–24, 1990). SFCS. IEEE Computer Society, Washington, DC, 544-553 vol.2. Template:Doi