290 likes | 416 Vues
Our research focuses on random generation and enumeration of Proper Interval Graphs (P.I.G.), a subclass of interval graphs with a certain structure. Learn about counted algorithms to process huge data in bioinformatics, data mining, etc., discussing known algorithms, such as those by Arnold and Knuth. Discover how our innovative algorithms allow for efficient generation and enumeration of P.I.G., enhancing data analysis in various fields.
E N D
Random Generation and Enumeration of Proper Interval Graphs Toshiki Saitoh(JAIST) Katsuhisa Yamanaka(Univ. Electro-Communi.) Masashi Kiyomi(JAIST) Ryuhei Uehara(JAIST)
Introduction • Processing of huge amounts of data • Data mining, bioinformatics, etc • The data have a certain structure • Interval graphs in bioinformatics • Our problems (P.I.G. : proper interval graphs) • Random generation of P.I.G. • Enumeration of P.I.G. • P.I.G.: subclass of interval graphs • P.I.G. ⇒ strings of parentheses Generating Enumerating
Known Algorithms • Generation of a string of parentheses • D.B.Arnold and M.R.Sleep, 1980 • can’t generate P.I.G. uniformly at random • Enumeration of stringsof parentheses • D.E.Knuth, 2005 • can’t enumerate every P.I.G. in O(1) time Not one-to-one correspondence constant size of differencesin string ⇔ large size of differences in P.I.G.
Our Algorithms • Random Generation • Input: Natural number n • Output: Connected P. I. G. of n vertices • Uniformly at random • Using a counting algorithm • O(n+m) time (m: #edges) • Enumeration • Input: Natural number n • Output: All the connected P. I. G. of n vertices • Without duplication • Based on reverse search algorithm • O(1) time/graph
Interval Graphs • Have interval representations
Proper Interval Graphs • Have unit interval representations Every interval has the same length String representations
Unit Interval Representation Definition • String Representation • Encodes a unit interval representation by a string • Sweep the unit interval representation from left to right • Left endpoint → “(” : left parenthesis • Right endpoint → “)” : right parenthesis Right endpoints appear in order of their left endpoint appearances (( ())(())) ( ) ( ( ) ) ( ( ) ) String Representation
Each number is non-negative String Representation Height = # “(” - # “)” • Property of string rep. of P. I. G. of n vertices • Number of parentheses: 2n • Number of “(”: n Number of “)”: n • Non-negative • Each left parenthesis exists in the left side of its right parenthesis ( ( ( ) ) ( ( ) ) ) +1 +1 +1 -1 -1 +1 +1 -1 -1 -1 0 1 2 3 2 1 2 3 2 1 0 Height 0
String Representation • Property of string rep. of P. I. G. of n vertices • Number of parentheses: 2n • Number of “(”: nNumber of “)”: n • Non-negative • Each left parenthesis exists in the left side of its right parenthesis Negative height ( ( ) ) ) ( ? Not correspond to any interval rep.. 0
String Representation • Property of string rep. of P. I. G. of n vertices • Number of parentheses: 2n • Number of “(”: nNumber of “)”: n • Non-negative • Each left parenthesis exists in the left side of its right parenthesis Each component corresponds to each area that is bounded by 2 places whose heights are 0. There are more than 2 places whose heights are 0. ( ( ) ) ( ) Unit IntervalRep. Graph Rep. 0
String Representation • Observation 1 • String rep. of connected P. I. G. • Have exactly 2 places whose heights are 0. • The left end and the right end The string excepted both ends parentheses is non-negative ( ( ( ( ) ) ) ( ( ) ) ) ) 0 0
String Representation • Lemma 1. (X. Dell, P. Hell, J. Huang, 1996) • A connected P. I. G. has only one or two string rep. This graph has only two string representations. ( ( ) ( ( ) ( ) ) ) ( ( ) ( ( ) ( ) ) ) different strings Unit Interval Rep. Proper Interval Graph String Rep.
String Representation • Lemma 1. (X. Dell, P. Hell, J. Huang, 1996) • A connected P. I. G. has only one or two string rep. This graph has only one string representation. ( ( ) ( ( ) ) ( ) ) ( ( ) ( ( ) ) ( ) ) Proper Interval Graph Unit Interval Rep. String Rep. reversible
Random Generation Algorithm • Generate a string rep. uniformly at random • Using a counting algorithm • (Generalized) Catalan number ( ( ( ( ) ) ( ) ( ) ) ) String rep. : Path on the area 0 0
Adjust the Generation Probability String rep. Not easy Non-reversible strings Decrease the generation probability … ( ( ) ( ( ) ( ) ) ) ( ( ( ) ( ) ) ( ) ) … … Reversible strings … ( ( ) ( ( ) ) ( ) ) … A generation probability of a graph corresponding to non-reversible strings is higher than that of reversible one
Sn: # non-reversible strings Rn: # reversible strings Adjust the Generation Probability String rep. Non-reversible strings … ( ( ) ( ( ) ( ) ) ) ( ( ( ) ( ) ) ( ) ) … Case 1 … Reversible strings … ( ( ) ( ( ) ) ( ) ) … Case 2 … ( ( ) ( ( ) ) ( ) ) Uniformly at random …
“(” : “)” : Generalized Catalan Number Case 1 • Generation of a string uniformly at random • Generate parentheses from left • Select “(” or“)” ) ( ( ( ) ( ( ( ) ) ) ) p = C(k, hl) q = C(k, hr) Time complexity • String Rep.:O(n) • Graph Rep.:O(n+m) k: # remaining parentheses h: Height m: # edges
Generalized Catalan Number Case 2 Symmetric • Generation of reversible string uniformly at random • Generate a half of the string • Choose the height at the center • Generate parentheses from the left end • Select “(” or“)” ( ( p: complicated! k: # remaining parentheses h: Height
“(” : “)” : Generalized Catalan Number Case 2 • Generation of reversible string uniformly at random • Generate a half of the string from the center to the right end • Choose the height at the center • Generate parentheses from the center • Select “(” or“)” ) ) ( ) ) ) ) ( ) ) ) ) p = C(k, hl) q = C(k, hr) Time complexity • String Rep.:O(n) • Graph Rep.:O(n+m) k: # remaining parentheses h: Height m: # edges
Simple Enumeration Algorithm remove 1 edge • Huge memory • Low speed Not P.I.G. Has the obtained graph outputted?
Reverse Search Algorithm • Spanning Tree • Parent-child remove 1 edge • Our algorithm • Canonical string • O(1) time/graph • O(n) space ( ( ( ( ) )( ) ) ) ( ( ( ( ( ) ) ) ) ) ( ( ( ( ) () ) ) ) ( ( ( ) ( )( ) ) ) ( ( ( ( ) )) ( ) ) ( ( ( ) ) (( ) ) ) ( ( ( ) ( )) ( ) ) ( ( ( ) ) () ( ) ) ( ( ) ( ( )) ( ) ) Canonical string x≦ reverse of the x ( ( ) ( ) () ( ) )
Parent-Child Relation • Root: ( ( … ( ) ) … ) • Parent of canonical string x • Replace the leftmost “)(” of x with “()” • Parent of x iscanonical • The root is the ancestor of x ( ( ( ( ( ) ) ) ) ) ( ( ( ( ) ( ) ) )) ( ( ( ( ) ) ( ) )) ( ( ( ) ( ) ( ) )) ( ( ( ) ) ( ( ) ))
Tree (n=5) root child parent ( ( ( ( ( ) ) ) ) ) Enumeration of all the strings by traversing the tree from the root ( ( ( ( ) () ) ) ) ( ( ( ( ) )( ) ) ) Find child: O(1) time Output only the differences Prepostorder manner ( ( ( ) ( )( ) ) ) ( ( ( ( ) )) ( ) ) ( ( ( ) ) (( ) ) ) ( ( ( ) ( )) ( ) ) Output string:O(1) time ( ( ) ( ( )) ( ) ) ( ( ( ) ) () ( ) ) ( ( ) ( ) () ( ) )
Conclusion and Future Work • Random Generation and Enumeration of Connected Proper Interval Graphs of n vertices • Random Generation:O(n+m) time • Enumeration:O(1) time/graph • n vertices ⇒ at most n vertices • Random Generation and Enumeration of Interval Graphs