<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Color-coding</id>
	<title>Color-coding - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Color-coding"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Color-coding&amp;action=history"/>
	<updated>2026-09-11T17:17:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Color-coding&amp;diff=8203137&amp;oldid=prev</id>
		<title>imported&gt;David Eppstein: Undid revision 1257998436 by Pateldarshak10 (talk) a summary of the main idea is not an application</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Color-coding&amp;diff=8203137&amp;oldid=prev"/>
		<updated>2024-11-17T17:58:32Z</updated>

		<summary type="html">&lt;p&gt;Undid revision &lt;a href=&quot;/wiki143/index.php?title=Special:Diff/1257998436&quot; title=&quot;Special:Diff/1257998436&quot;&gt;1257998436&lt;/a&gt; by &lt;a href=&quot;/wiki143/index.php?title=Special:Contributions/Pateldarshak10&quot; title=&quot;Special:Contributions/Pateldarshak10&quot;&gt;Pateldarshak10&lt;/a&gt; (&lt;a href=&quot;/wiki143/index.php?title=User_talk:Pateldarshak10&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Pateldarshak10 (page does not exist)&quot;&gt;talk&lt;/a&gt;) a summary of the main idea is not an application&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{about|a technique in the design of graph algorithms|the use of color to display information|color code||Color code (disambiguation)}}&lt;br /&gt;
In [[computer science]] and [[graph theory]], the term &amp;#039;&amp;#039;&amp;#039;color-coding&amp;#039;&amp;#039;&amp;#039; refers to an [[algorithmic technique]] which is useful in the discovery of [[Network motif|network motifs]]. For example, it can be used to detect a [[Path (graph theory)|simple path]] of length {{mvar|k}} in a given [[graph theory|graph]]. The traditional color-coding algorithm is [[probabilistic algorithms|probabilistic]], but it can be [[Derandomization#Derandomization|derandomized]] without much overhead in the running time. &lt;br /&gt;
&lt;br /&gt;
Color-coding also applies to the detection of [[Cycle (graph theory)|cycles]] of a given length, and more generally it applies to the [[subgraph isomorphism|subgraph isomorphism problem]] (an [[NP-complete]] problem), where it yields [[polynomial time|polynomial time algorithms]] when the subgraph pattern that it is trying to detect has bounded  [[treewidth]].&lt;br /&gt;
&lt;br /&gt;
The color-coding method was proposed and analyzed in 1994 by [[Noga Alon]], [[Raphael Yuster]], and [[Uri Zwick]].&amp;lt;ref&amp;gt;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 &amp;#039;94. ACM, New York, NY, 326–335. DOI= http://doi.acm.org/10.1145/195058.195179&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;orig&amp;quot;&amp;gt;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&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Results==&lt;br /&gt;
The following results can be obtained through the method of color-coding:&lt;br /&gt;
&lt;br /&gt;
* For every fixed constant {{mvar|k}}, if a graph {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039; {{=}} (&amp;#039;&amp;#039;V&amp;#039;&amp;#039;, &amp;#039;&amp;#039;E&amp;#039;&amp;#039;)}} contains a simple cycle of size {{mvar|k}}, then such a cycle can be found in:&lt;br /&gt;
** &amp;lt;math&amp;gt;O(|V|^\omega)&amp;lt;/math&amp;gt; expected time, or&lt;br /&gt;
** &amp;lt;math&amp;gt;O(|V|^\omega \log |V|)&amp;lt;/math&amp;gt; worst-case time, where {{mvar|ω}} is the exponent of [[matrix multiplication]].&amp;lt;ref&amp;gt;[[Coppersmith–Winograd algorithm|Coppersmith–Winograd Algorithm]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* For every fixed constant {{mvar|k}}, and every graph {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039; {{=}} (&amp;#039;&amp;#039;V&amp;#039;&amp;#039;, &amp;#039;&amp;#039;E&amp;#039;&amp;#039;)}} that is in any nontrivial [[Minor (graph theory)#Minor-closed graph families|minor-closed graph family]] (e.g., a [[planar graph]]), if {{mvar|G}} contains a simple cycle of size {{mvar|k}}, then such cycle can be found in:&lt;br /&gt;
** {{math|&amp;#039;&amp;#039;O&amp;#039;&amp;#039;(&amp;#039;&amp;#039;V&amp;#039;&amp;#039;)}} expected time, or&lt;br /&gt;
** {{math|&amp;#039;&amp;#039;O&amp;#039;&amp;#039;(&amp;#039;&amp;#039;V&amp;#039;&amp;#039; log &amp;#039;&amp;#039;V&amp;#039;&amp;#039;)}} worst-case time.&lt;br /&gt;
* If a graph {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039; {{=}} (&amp;#039;&amp;#039;V&amp;#039;&amp;#039;, &amp;#039;&amp;#039;E&amp;#039;&amp;#039;)}} contains a subgraph isomorphic to a bounded [[treewidth]] graph which has {{math|&amp;#039;&amp;#039;O&amp;#039;&amp;#039;(log &amp;#039;&amp;#039;V&amp;#039;&amp;#039;)}} vertices, then such a subgraph can be found in [[polynomial time]].&lt;br /&gt;
&lt;br /&gt;
==The method==&lt;br /&gt;
To solve the problem of finding a subgraph &amp;lt;math&amp;gt;H = (V_H, E_H)&amp;lt;/math&amp;gt; in a given graph {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039; {{=}} (&amp;#039;&amp;#039;V&amp;#039;&amp;#039;, &amp;#039;&amp;#039;E&amp;#039;&amp;#039;)}}, where {{mvar|H}} can be a path, a cycle, or any bounded [[treewidth]] graph where &amp;lt;math&amp;gt;|V_H| = O(\log |V|)&amp;lt;/math&amp;gt;, the method of color-coding begins by randomly coloring each vertex of {{mvar|G}} with &amp;lt;math&amp;gt;k = |V_H|&amp;lt;/math&amp;gt; colors, and then tries to find a colorful copy of {{mvar|H}} in colored {{mvar|G}}. 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.&lt;br /&gt;
&lt;br /&gt;
Suppose a copy of {{mvar|H}} in {{mvar|G}} becomes colorful with some non-zero probability {{mvar|p}}. It immediately follows that if the random coloring is repeated {{math|{{sfrac|1|&amp;#039;&amp;#039;p&amp;#039;&amp;#039;}}}} times, then this copy is expected to become colorful once. Note that though {{mvar|p}} is small, it is shown that if &amp;lt;math&amp;gt;|V_H| = O(\log |V|)&amp;lt;/math&amp;gt;, {{mvar|p}} is only polynomially small. Suppose again there exists an algorithm such that, given a graph {{mvar|G}} and a coloring which maps each vertex of {{mvar|G}} to one of the {{mvar|k}} colors, it finds a copy of colorful {{mvar|H}}, if one exists, within some runtime {{math|&amp;#039;&amp;#039;O&amp;#039;&amp;#039;(&amp;#039;&amp;#039;r&amp;#039;&amp;#039;)}}. Then the expected time to find a copy of {{mvar|H}} in {{mvar|G}}, if one exists, is &amp;lt;math&amp;gt;O(\tfrac{r}{p})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
An example would be finding a simple cycle of length {{mvar|k}} in graph {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039; {{=}} (&amp;#039;&amp;#039;V&amp;#039;&amp;#039;, &amp;#039;&amp;#039;E&amp;#039;&amp;#039;)}}.&lt;br /&gt;
&lt;br /&gt;
By applying random coloring method, each simple cycle has a probability of &amp;lt;math&amp;gt;k!/k^k &amp;gt; e^{-k}&amp;lt;/math&amp;gt; to become colorful, since there are &amp;lt;math&amp;gt;k^k&amp;lt;/math&amp;gt; ways of coloring the {{mvar|k}} vertices on the cycle, among which there are &amp;lt;math&amp;gt;k!&amp;lt;/math&amp;gt; colorful occurrences. Then an algorithm (described next) can be used to find colorful cycles in the randomly colored graph {{mvar|G}} in time &amp;lt;math&amp;gt;O(V^\omega)&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; is the matrix multiplication constant. Therefore, it takes &amp;lt;math&amp;gt;e^k\cdot O(V^\omega)&amp;lt;/math&amp;gt; overall time to find a simple cycle of length {{mvar|k}} in {{mvar|G}}.&lt;br /&gt;
&lt;br /&gt;
The colorful cycle-finding algorithm works by first finding all pairs of vertices in {{mvar|V}} that are connected by a simple path of length {{math|&amp;#039;&amp;#039;k&amp;#039;&amp;#039; − 1}}, and then checking whether the two vertices in each pair are connected. Given a coloring function {{math|&amp;#039;&amp;#039;c&amp;#039;&amp;#039; : &amp;#039;&amp;#039;V&amp;#039;&amp;#039; → {1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;} }} to color graph {{mvar|G}}, enumerate all partitions of the color set {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;} }} into two subsets {{math|&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, &amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}} of size &amp;lt;math&amp;gt;k/2&amp;lt;/math&amp;gt; each. Note that {{mvar|V}} can be divided into {{math|&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and {{math|&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}} accordingly, and let {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}} denote the subgraphs induced by {{math|&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and {{math|&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}} respectively. Then, recursively find colorful paths of length &amp;lt;math&amp;gt;k/2 - 1&amp;lt;/math&amp;gt; in each of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}}. Suppose the boolean matrix {{math|&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and {{math|&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}} represent the connectivity of each pair of vertices in {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}} by a colorful path, respectively, and let {{mvar|B}} be the matrix describing the adjacency relations between vertices of {{math|&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;}} and those of {{math|&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;}}, the boolean product &amp;lt;math&amp;gt;A_1BA_2&amp;lt;/math&amp;gt; gives all pairs of vertices in {{mvar|V}} that are connected by a colorful path of length {{math|&amp;#039;&amp;#039;k&amp;#039;&amp;#039; − 1}}. Thus, the recursive relation of matrix multiplications is &amp;lt;math&amp;gt;t(k) \le 2^k\cdot t(k/2)&amp;lt;/math&amp;gt;, which yields a runtime of &amp;lt;math&amp;gt;2^{O(k)}\cdot V^\omega&amp;lt;/math&amp;gt;. Although this algorithm finds only the end points of the colorful path, another algorithm by Alon and Naor&amp;lt;ref&amp;gt;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.&amp;lt;/ref&amp;gt; that finds colorful paths themselves can be incorporated into it.&lt;br /&gt;
&lt;br /&gt;
==Derandomization==&lt;br /&gt;
The [[derandomization]] of color-coding involves enumerating possible colorings of a graph {{mvar|G}}, such that the randomness of coloring {{mvar|G}} is no longer required. For the target subgraph {{mvar|H}} in {{mvar|G}} to be discoverable, the enumeration has to include at least one instance where the {{mvar|H}} is colorful. To achieve this, enumerating a {{mvar|k}}-perfect family {{mvar|F}} of hash functions from {{math|{1, ..., {{!}}&amp;#039;&amp;#039;V&amp;#039;&amp;#039;{{!}}} }} to {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;} }} is sufficient. By definition, {{mvar|F}} is {{mvar|k}}-perfect if for every subset {{mvar|S}} of {{math|{1, ..., {{!}}&amp;#039;&amp;#039;V&amp;#039;&amp;#039;{{!}}} }} where &amp;lt;math&amp;gt;|S| = k&amp;lt;/math&amp;gt;, there exists a hash function {{mvar|h}} in {{mvar|F}} such that {{math|&amp;#039;&amp;#039;h&amp;#039;&amp;#039; : &amp;#039;&amp;#039;S&amp;#039;&amp;#039; → {1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;} }} is [[perfect hash|perfect]]. In other words, there must exist a hash function in {{mvar|F}} that colors any given {{mvar|k}} vertices with {{mvar|k}} distinct colors.&lt;br /&gt;
&lt;br /&gt;
There are several approaches to construct such a {{mvar|k}}-perfect hash family:&lt;br /&gt;
&lt;br /&gt;
# The best explicit construction is by [[Moni Naor]], [[Leonard J. Schulman]], and [[Aravind Srinivasan]],&amp;lt;ref&amp;gt;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.&amp;lt;/ref&amp;gt; where a family of size &amp;lt;math&amp;gt;e^k k^{O(\log k)} \log |V|&amp;lt;/math&amp;gt; can be obtained. This construction does not require the target subgraph to exist in the original subgraph finding problem.&lt;br /&gt;
# Another explicit construction by [[Jeanette P. Schmidt]] and Alan Siegel&amp;lt;ref name=&amp;quot;SS90&amp;quot;&amp;gt;{{cite journal | last1 = Schmidt | first1 = J. P. | last2 = Siegel | first2 = A. | year = 1990 | title = The spatial complexity of oblivious k-probe Hash functions | doi = 10.1137/0219054 | journal = SIAM J. Comput. | volume = 19 | issue = 5| pages = 775–786 }}&amp;lt;/ref&amp;gt; yields a family of size &amp;lt;math&amp;gt;2^{O(k)}\log^2 |V|&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Another construction that appears in the original paper of [[Noga Alon]] et al.&amp;lt;ref name=&amp;quot;orig&amp;quot; /&amp;gt; can be obtained by first building a {{mvar|k}}-perfect family that maps {{math|{1, ..., {{!}}&amp;#039;&amp;#039;V&amp;#039;&amp;#039;{{!}}} }} to {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;},}} followed by building another {{mvar|k}}-perfect family that maps {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;} }} to {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;}.}} In the first step, it is possible to construct such a family with {{math|2&amp;#039;&amp;#039;n&amp;#039;&amp;#039;log &amp;#039;&amp;#039;k&amp;#039;&amp;#039;}} random bits that are almost {{math|2log &amp;#039;&amp;#039;k&amp;#039;&amp;#039;}}-wise independent,&amp;lt;ref&amp;gt;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 &amp;#039;90. ACM, New York, NY, 213-223. DOI= http://doi.acm.org/10.1145/100216.100244&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;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. {{doi|10.1109/FSCS.1990.89575}}&amp;lt;/ref&amp;gt; and the sample space needed for generating those random bits can be as small as &amp;lt;math&amp;gt;k^{O(1)}\log |V|&amp;lt;/math&amp;gt;. In the second step, it has been shown by Jeanette P. Schmidt and Alan Siegel&amp;lt;ref name=&amp;quot;SS90&amp;quot;/&amp;gt; that the size of such {{mvar|k}}-perfect family can be &amp;lt;math&amp;gt;2^{O(k)}&amp;lt;/math&amp;gt;. Consequently, by composing the {{mvar|k}}-perfect families from both steps, a {{mvar|k}}-perfect family of size &amp;lt;math&amp;gt;2^{O(k)}\log |V|&amp;lt;/math&amp;gt; that maps from {{math|{1, ..., {{!}}&amp;#039;&amp;#039;V&amp;#039;&amp;#039;{{!}}} }} to {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;} }} can be obtained.&lt;br /&gt;
&lt;br /&gt;
In the case of derandomizing well-coloring, where each vertex on the subgraph is colored consecutively, a {{mvar|k}}-perfect family of hash functions from {{math|{1, ..., {{!}}&amp;#039;&amp;#039;V&amp;#039;&amp;#039;{{!}}} }} to {{math|{1, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;!} }} is needed. A sufficient {{mvar|k}}-perfect family which maps from {{math|{1, ..., {{!}}&amp;#039;&amp;#039;V&amp;#039;&amp;#039;{{!}}} }} to {{math|{1, ..., &amp;#039;&amp;#039;k&amp;lt;sup&amp;gt;k&amp;lt;/sup&amp;gt;&amp;#039;&amp;#039;} }} can be constructed in a way similar to the approach 3 above (the first step). In particular, it is done by using {{math|&amp;#039;&amp;#039;nk&amp;#039;&amp;#039;log &amp;#039;&amp;#039;k&amp;#039;&amp;#039;}} random bits that are almost {{math|&amp;#039;&amp;#039;k&amp;#039;&amp;#039;log &amp;#039;&amp;#039;k&amp;#039;&amp;#039;}} independent, and the size of the resulting {{mvar|k}}-perfect family will be &amp;lt;math&amp;gt;k^{O(k)}\log |V|&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The derandomization of color-coding method can be easily parallelized, yielding efficient [[NC (complexity)|NC]] algorithms.&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
Recently, color-coding has attracted much attention in the field of bioinformatics. One example is the detection of [[Wnt signaling pathway|signaling pathways]] in [[protein-protein interaction]] (PPI) networks. Another example is to discover and to count the number of [[Structural motif|motifs]] in PPI networks. Studying both [[Wnt signaling pathway|signaling pathways]] and [[Structural motif|motifs]] allows a deeper understanding of the similarities and differences of many biological functions, processes, and structures among organisms.&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;math&amp;gt;k=O(\log n)&amp;lt;/math&amp;gt; vertices in a network {{mvar|G}} with {{mvar|n}} vertices can be found very efficiently in polynomial time. Thus, this enables us to explore more complex or larger structures in PPI networks.&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite journal | last1 = Alon | first1 = N. | last2 = Dao | first2 = P. | last3 = Hajirasouliha | first3 = I. | last4 = Hormozdiari | first4 = F. | last5 = Sahinalp | first5 = S. C. | year = 2008 | title = Biomolecular network motif counting and discovery by color coding | doi = 10.1093/bioinformatics/btn163 | journal = Bioinformatics | volume = 24 | issue = 13| pages = i241–i249 | pmid=18586721 | pmc=2718641}}&lt;br /&gt;
* {{cite journal | last1 = Hüffner | first1 = F. | last2 = Wernicke | first2 = S. | last3 = Zichner | first3 = T. | year = 2008 | title = Algorithm Engineering for Color-Coding with Applications to Signaling Pathway Detection | doi = 10.1007/s00453-007-9008-7 | journal = Algorithmica | volume = 52 | issue = 2| pages = 114–132 | citeseerx = 10.1.1.68.9469 | s2cid = 81069 }}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Color-Coding}}&lt;br /&gt;
[[Category:Graph algorithms]]&lt;/div&gt;</summary>
		<author><name>imported&gt;David Eppstein</name></author>
	</entry>
</feed>