Document Sample
longest Powered By Docstoc
					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
●   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
     –   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
          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
          ●   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)

Shared By: