Document Sample

The Theory Clique @ Yale Prolonging the Longest Path Pradipta Prometheus Mitra April 8, 2004 Paths Problem ● Both the Shortest Path and Longest (Simple) Path problems are widely studied. ● In unweighted case, the shortest path problem can be solved in linear time (recent advances have made it possible for the weighted version as well) ● Longest Path is NP-complete ☹ ● Approximation ..... sigh Previous Results ● Monien and Bodlaender, both found algorithms to find a path of length (logL/loglogL) where L is the length of the longest path [1985, 1999] ● Alon, Yuster and Zwick found a O(n/logn) algorithm [1995] ● For Hamiltonian graphs, Vishwanathan found a algorithm with ratio O((logn/loglogn)²) [2000] ● This paper establishes the same O((logn/loglogn)²) ratio, albeit for general graphs [A Bjorkland and T Husfeldt, 2002] The Machinery ● Theorem 1[Bodlaender]: Given a graph, two of its vertices s, t and an inetegr k, one can find a k+-path from s to t in time O((2k)!22kn+e) [if it exists!] ● Corrolary: Given a graph, one of its vertices s and an inetegr k, one can find a k+-cycle through s in time O(((2k)!22kn+e)n) [if it exists!] ● A k+ path/cycle is a path/cycle that has length k or more. ● Lemma 1: If a connected graph contains a path of length r, then every vertex is an endpoint of a path of length atleast (½)r. ● The Idea: – Find cycles, find cycles.... – If these cycles are connected in someway, we found a path that includes at least half of each cycle. ● Lemma 2: Assume that a connected graph G contains a simple path P of length LG(v)>1 originating in vertex v. Then there exists a connected component G[W] of G[V-v] such that: – If G[W+v] contains no k+-cycle, through v, then every neighbor u∈W of v is the endpoint of a path of length LG(u) ≥ LG(v) – k – If C is a cycle in G[W+v] through v of length l(C) < LG[W+v](v), then there exists a connected componenet H of G[W-C] that contains a neighbor u of C-v in G[W+v]. Moreover, every such neighbor u is the endpoint of a path in H of length LH(u) ≥ LG(v)/(2lC) – 1 Proof Sketch ● Let P = p0(=v), p1, .... pr and r = LG(v) ● If u∈W is a neighbor of v, there is some path from u to P. The index of this vertex must be < k. Thus (u, pi), (pi, pr) form a path in H of length at least r-k+1 ● 2 cases – If P∩C = v then W-C contains the entire path and we get our result – If |P∩C| = s > 1, then an averaging angument helps. Homing on the Algorithm ● Say someone told us the value of L. Then we know that any vertex v is the head of a path length atleast r = L/2 ● Ofcourse we don't know r, but we can pretend to know it and try all possible values of r (bounded by n). So we try values of k(= ⌈2logr/loglogr⌉) 6,.....⌈2logn/loglogn⌉. ➢ The Algorithm Pick any vertex v∈V For every k = 6,.....⌈2logn/loglogn⌉ perform following 2 steps and return the longest path found Construct Tk(G, v) [We will see how] Find a longest weighted path in Tk(G,v) and return it. The Cycle Decomposition Tree Tk(G,v) G[V-v], execute step 2. 1. For every maximal component G[W] of 2. Search for a k+-cycle through v in G[W+v]. If cycle C found goto step 3, otherwise step 5. 3. Insert a cycle node <C,v> and the edge <v><C,v>. For every connected component H of G[W-C], execute step 4. 4. Choose neughbor u∈∈H of C-v, insert node <u> and edge <u><C,v>. Then goto step 1 to compute Tk(G[H],u) 5. Pick neighbor u∈∈G[W+v] of v, insert node <u> and the tree edge <v><u>, and recursively execute step 1 to compute Tk(G[W],u) Every singleton node has weight 1, cycles have weight ½l(C) We find the maximum weighted path through the tree Polynomial running time-Step 2 is polynomial and all others clearly are. Path in Tk(G,v) is a Path in G ● For singleton nodes <u> and <v>, <u> is a predecessor of <v> only if (u, v) is an edge ● Every cycle node has a singleton node as its predecessor. As a matter of fact, so is its sucessor (unless the cycle node is a leaf) ● Now take the subpath <u><C, u><v>. Now by construction v is a neighbor to some vertex in C other than u. Hence there is once path from v to u through C with length at least half the cycle. ● If the cycle if a leaf, we can get a path of length l(C)-1 The Performance Bound ● Lemma 3: If G contains a path of length r ≥ 28 (oops!) starting in v, then Tk= Tk(G, v) for k = ⌈2logr/loglogr⌉dsd contains a weigted path of length atleast (1/8)k2-(1/4)k -1. ● This, essentially proves the bound we want. ● Proof sketch: – Let for a node n, S(n) are its singleton children and C(n) are its cycle children. For a singleton node v, Lemma 2 asserts ● L(v) ≤ max{maxw∈S(v) L(w), max<C,v>∈C(v), w∈S(<C,v>) (2L(w)+2)l(C)} – Let a heavy path through the tree be x0,x1....xt. If xj is the first “cycle parent” then we can show L(xj) ≥ (7/8)r and also L(xj+2) ≥ r/k2 Performance Bound (Contd.) ● These bounds assume rv >= k3. Now the path must pass through s' >= ⌈(1/4)k-1⌉ cycle nodes before that is false. ● Hence the weighted path is atleast s(1/2k+1) >= (1/8)k2- (1/4)k -1 ● If there aren't many cycles, then there must be lot of singleton nodes (to make up the path) and we can prove a k2 bound. Extensions and Conclusions ● For bounded degree graphs, we can find a log2L/loglogL performance bound. ● For 3-connected graphs, we can find a “cycle” of length (logL/loglogL)2. ● The result for corollary 1 was recently improved so the algorithm bound improves as well to O(log2n/loglogn)

DOCUMENT INFO

Shared By:

Categories:

Tags:

Stats:

views: | 3 |

posted: | 11/6/2011 |

language: | English |

pages: | 12 |

OTHER DOCS BY xiuliliaofz

Docstoc is the premier online destination to start and grow small businesses. It hosts the best quality and widest selection of professional documents (over 20 million) and resources including expert videos, articles and productivity tools to make every small business better.

Search or Browse for any specific document or resource you need for your business. Or explore our curated resources for Starting a Business, Growing a Business or for Professional Development.

Feel free to Contact Us with any questions you might have.