Color-coding

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "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:

  • For every fixed constant Template:Mvar, if a graph G = (V, E)Script error: No such module "Check for unknown parameters". contains a simple cycle of size Template:Mvar, then such a cycle can be found in:
  • For every fixed constant Template:Mvar, and every graph G = (V, E)Script error: No such module "Check for unknown parameters". that is in any nontrivial minor-closed graph family (e.g., a planar graph), if Template:Mvar contains a simple cycle of size Template:Mvar, then such cycle can be found in:
    • O(V)Script error: No such module "Check for unknown parameters". expected time, or
    • O(V log V)Script error: No such module "Check for unknown parameters". worst-case time.
  • If a graph G = (V, E)Script error: No such module "Check for unknown parameters". contains a subgraph isomorphic to a bounded treewidth graph which has O(log V)Script error: No such module "Check for unknown parameters". vertices, then such a subgraph can be found in polynomial time.

The method

To solve the problem of finding a subgraph H=(VH,EH) in a given graph G = (V, E)Script error: No such module "Check for unknown parameters"., 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:SfracScript error: No such module "Check for unknown parameters". 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 O(r)Script error: No such module "Check for unknown parameters".. 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 G = (V, E)Script error: No such module "Check for unknown parameters"..

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 k − 1Script error: No such module "Check for unknown parameters"., and then checking whether the two vertices in each pair are connected. Given a coloring function c : V → {1, ..., k} Script error: No such module "Check for unknown parameters". to color graph Template:Mvar, enumerate all partitions of the color set {1, ..., k} Script error: No such module "Check for unknown parameters". into two subsets C1, C2Script error: No such module "Check for unknown parameters". of size k/2 each. Note that Template:Mvar can be divided into V1Script error: No such module "Check for unknown parameters". and V2Script error: No such module "Check for unknown parameters". accordingly, and let G1Script error: No such module "Check for unknown parameters". and G2Script error: No such module "Check for unknown parameters". denote the subgraphs induced by V1Script error: No such module "Check for unknown parameters". and V2Script error: No such module "Check for unknown parameters". respectively. Then, recursively find colorful paths of length k/21 in each of G1Script error: No such module "Check for unknown parameters". and G2Script error: No such module "Check for unknown parameters".. Suppose the boolean matrix A1Script error: No such module "Check for unknown parameters". and A2Script error: No such module "Check for unknown parameters". represent the connectivity of each pair of vertices in G1Script error: No such module "Check for unknown parameters". and G2Script error: No such module "Check for unknown parameters". by a colorful path, respectively, and let Template:Mvar be the matrix describing the adjacency relations between vertices of V1Script error: No such module "Check for unknown parameters". and those of V2Script error: No such module "Check for unknown parameters"., the boolean product A1BA2 gives all pairs of vertices in Template:Mvar that are connected by a colorful path of length k − 1Script error: No such module "Check for unknown parameters".. 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 {1, ..., |V|} Script error: No such module "Check for unknown parameters". to {1, ..., k} Script error: No such module "Check for unknown parameters". is sufficient. By definition, Template:Mvar is Template:Mvar-perfect if for every subset Template:Mvar of {1, ..., |V|} Script error: No such module "Check for unknown parameters". where |S|=k, there exists a hash function Template:Mvar in Template:Mvar such that h : S → {1, ..., k} Script error: No such module "Check for unknown parameters". 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 {1, ..., |V|} Script error: No such module "Check for unknown parameters". to {1, ..., k2},Script error: No such module "Check for unknown parameters". followed by building another Template:Mvar-perfect family that maps {1, ..., k2} Script error: No such module "Check for unknown parameters". to {1, ..., k}.Script error: No such module "Check for unknown parameters". In the first step, it is possible to construct such a family with 2nlog kScript error: No such module "Check for unknown parameters". random bits that are almost 2log kScript error: No such module "Check for unknown parameters".-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 {1, ..., |V|} Script error: No such module "Check for unknown parameters". to {1, ..., k} Script error: No such module "Check for unknown parameters". 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 {1, ..., |V|} Script error: No such module "Check for unknown parameters". to {1, ..., k!} Script error: No such module "Check for unknown parameters". is needed. A sufficient Template:Mvar-perfect family which maps from {1, ..., |V|} Script error: No such module "Check for unknown parameters". to {1, ..., kk} Script error: No such module "Check for unknown parameters". can be constructed in a way similar to the approach 3 above (the first step). In particular, it is done by using nklog kScript error: No such module "Check for unknown parameters". random bits that are almost klog kScript error: No such module "Check for unknown parameters". 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

  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Citation/CS1".

References

<templatestyles src="Reflist/styles.css" />

  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. a b 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. a b Script error: No such module "Citation/CS1".
  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. Script error: No such module "CS1 identifiers".

Script error: No such module "Check for unknown parameters".