# longest

Document Sample

```					The Theory Clique @ Yale

Prolonging the Longest Path

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
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