A Linear Time Algorithm for Finding Three Edge

A Linear Time Algorithm for
Finding Three Edge-Disjoint Paths
in Eulerian Networks
Maxim A. Babenko
Ignat I. Kolesnichenko
Ilya P. Razenshteyn
Moscow State University
36th International Conference on Current Trends in Theory and
Practice of Computer Science
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
1 / 20
General Problem
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
2 / 20
General Problem
Given an undirected graph G = (V , E ) and k pairs of distinct
terminals {si , ti }, i = 1, . . . , k, find a collection of k paths P1 , . . . , Pk
such that Pi connects si with ti .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
2 / 20
General Problem
Given an undirected graph G = (V , E ) and k pairs of distinct
terminals {si , ti }, i = 1, . . . , k, find a collection of k paths P1 , . . . , Pk
such that Pi connects si with ti .
Two versions:
Paths Pi are node-disjoint.
Paths Pi are edge-disjoint.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
2 / 20
General Problem
Given an undirected graph G = (V , E ) and k pairs of distinct
terminals {si , ti }, i = 1, . . . , k, find a collection of k paths P1 , . . . , Pk
such that Pi connects si with ti .
Two versions:
Paths Pi are node-disjoint.
Paths Pi are edge-disjoint.
s1
s2
s3
Babenko, Kolesnichenko, Razenshtein (MSU)
P1
P2
P3
Finding Three Edge-Disjoint Paths
t1
t2
t3
SOFSEM 2010
2 / 20
Known results
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
3 / 20
Known results
The node-disjoint version is a more general one.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
3 / 20
Known results
The node-disjoint version is a more general one.
Both versions are solvable in polynomial time [Robertson,
Seymour 1995].
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
3 / 20
Known results
The node-disjoint version is a more general one.
Both versions are solvable in polynomial time [Robertson,
Seymour 1995].
The algorithms are complicated and have a high running time.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
3 / 20
Eulerian Case
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
4 / 20
Eulerian Case
We require paths Pi to be edge-disjoint.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
4 / 20
Eulerian Case
We require paths Pi to be edge-disjoint.
For each node v ∈ V we require that deg v be odd iff v is a
terminal (Eulerianess).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
4 / 20
Eulerian Case
We require paths Pi to be edge-disjoint.
For each node v ∈ V we require that deg v be odd iff v is a
terminal (Eulerianess).
Remark
This definition only makes sense if all the terminals are distinct. If
some of them may coincide then one must adjust it as follows: deg v is
odd iff v coincides with an odd number of terminals.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
4 / 20
Eulerian Case: k = 1
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
5 / 20
Eulerian Case: k = 1
Let k = 1, i.e. the network has a single pair of terminals {s1 , t1 }.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
5 / 20
Eulerian Case: k = 1
Let k = 1, i.e. the network has a single pair of terminals {s1 , t1 }.
A problem instance is feasible iff the terminals are in the same
connected component.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
5 / 20
Eulerian Case: k = 1
Let k = 1, i.e. the network has a single pair of terminals {s1 , t1 }.
A problem instance is feasible iff the terminals are in the same
connected component.
Checking for feasiblity and constructing P1 and be carried out in
linear time (trivial).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
5 / 20
Eulerian Case: k = 2
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
6 / 20
Eulerian Case: k = 2
Let k = 2, i.e. the network has two pairs of terminals: {s1 , t1 } and
{s2 , t2 }.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
6 / 20
Eulerian Case: k = 2
Let k = 2, i.e. the network has two pairs of terminals: {s1 , t1 } and
{s2 , t2 }.
Suppose s1 and t1 are in distinct connected components. Then
the instance is clearly infeasible.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
6 / 20
Eulerian Case: k = 2
Let k = 2, i.e. the network has two pairs of terminals: {s1 , t1 } and
{s2 , t2 }.
Suppose s1 and t1 are in distinct connected components. Then
the instance is clearly infeasible.
Otherwise, let P1 be an arbitrary s1 –t1 path. Then G − P is
Eulerian (w.r.t. the remaining terminals {s2 , t2 }), hence always
feasible.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
6 / 20
Eulerian Case: k = 2
Let k = 2, i.e. the network has two pairs of terminals: {s1 , t1 } and
{s2 , t2 }.
Suppose s1 and t1 are in distinct connected components. Then
the instance is clearly infeasible.
Otherwise, let P1 be an arbitrary s1 –t1 path. Then G − P is
Eulerian (w.r.t. the remaining terminals {s2 , t2 }), hence always
feasible.
Checking for feasiblity and constructing P1 , P2 and be carried out
in linear time (trivial).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
6 / 20
Our Contribution
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
7 / 20
Our Contribution
Let k = 3.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
7 / 20
Our Contribution
Let k = 3.
We give a linear-time algorithm for constructing P1 , P2 , P3 (if they
exist).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
7 / 20
Our Contribution
Let k = 3.
We give a linear-time algorithm for constructing P1 , P2 , P3 (if they
exist).
Three seems to be the largest value of k where some elementary
but non-trivial combinatorics works.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
7 / 20
Some Easy Observations
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
8 / 20
Some Easy Observations
Graph G may be assumed to be connected. (Components
containing no terminal may be dropped. If a component contains
some but not all terminals then the instance either infeasible or
reduces to k = 2 and k = 1.)
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
8 / 20
Some Easy Observations
Graph G may be assumed to be connected. (Components
containing no terminal may be dropped. If a component contains
some but not all terminals then the instance either infeasible or
reduces to k = 2 and k = 1.)
It suffices to construct a pair of edge-disjoint paths P1 and P2 (out
of three). The remaining problem reduces to k = 1 and, hence, is
always feasible.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
8 / 20
Feasibility Criterion
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
9 / 20
Feasibility Criterion
Consider the demand graph H with nodes T := {s1 , s2 , s3 , t1 , t2 , t3 }
and edges s1 t1 , s2 t2 , s3 t3 .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
9 / 20
Feasibility Criterion
Consider the demand graph H with nodes T := {s1 , s2 , s3 , t1 , t2 , t3 }
and edges s1 t1 , s2 t2 , s3 t3 .
Remark
An instance is Eulerian iff G + H is an Eulerian graph.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
9 / 20
Feasibility Criterion
Consider the demand graph H with nodes T := {s1 , s2 , s3 , t1 , t2 , t3 }
and edges s1 t1 , s2 t2 , s3 t3 .
Remark
An instance is Eulerian iff G + H is an Eulerian graph.
For a subset U ⊂ V let dG (U) (resp. dH (U)) be the number of edges
connecting U with V − U in graph G (resp. H).
Theorem
For k = 3 a problem instance is feasible iff dG (U) ≥ dH (U) for each
U ⊆ V (cut conditions).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
9 / 20
Feasibility Criterion
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
10 / 20
Feasibility Criterion
Remark
Proof of the above criterion was given by Schrijver. His method applies
reductio ad absurdum to the smallest counterexample and is
non-algorithmic.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
10 / 20
Feasibility Criterion
Remark
Proof of the above criterion was given by Schrijver. His method applies
reductio ad absurdum to the smallest counterexample and is
non-algorithmic.
Remark
In a general problem cut conditions are necessary but not sufficient.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
10 / 20
Checking for Feasibility
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
11 / 20
Checking for Feasibility
There are exponentally many subsets U ⊆ V .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
11 / 20
Checking for Feasibility
There are exponentally many subsets U ⊆ V .
Put U ∗ := U ∩ T and call U ∗ the signature of U.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
11 / 20
Checking for Feasibility
There are exponentally many subsets U ⊆ V .
Put U ∗ := U ∩ T and call U ∗ the signature of U.
There are finitely many signatures.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
11 / 20
Checking for Feasibility
There are exponentally many subsets U ⊆ V .
Put U ∗ := U ∩ T and call U ∗ the signature of U.
There are finitely many signatures.
We check feasibility for each signature separately.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
11 / 20
Checking for Feasibility
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
12 / 20
Checking for Feasibility
Recap: check that dG (U) ≥ dH (U) for each U ⊆ V .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
12 / 20
Checking for Feasibility
Recap: check that dG (U) ≥ dH (U) for each U ⊆ V .
Suppose the singature U ∗ = U ∩ T is fixed.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
12 / 20
Checking for Feasibility
Recap: check that dG (U) ≥ dH (U) for each U ⊆ V .
Suppose the singature U ∗ = U ∩ T is fixed.
ν := dH (U) = dH (U ∗ ), hence the right-hand side is fixed.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
12 / 20
Checking for Feasibility
Recap: check that dG (U) ≥ dH (U) for each U ⊆ V .
Suppose the singature U ∗ = U ∩ T is fixed.
ν := dH (U) = dH (U ∗ ), hence the right-hand side is fixed.
Checking that dG (U) ≥ ν for all U ⊆ V obeying U ∩ T = U ∗
reduces to a max-flow computation (takes linear time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
12 / 20
Checking for Feasibility
Recap: check that dG (U) ≥ dH (U) for each U ⊆ V .
Suppose the singature U ∗ = U ∩ T is fixed.
ν := dH (U) = dH (U ∗ ), hence the right-hand side is fixed.
Checking that dG (U) ≥ ν for all U ⊆ V obeying U ∩ T = U ∗
reduces to a max-flow computation (takes linear time).
Overall, checking the instance for feasiblity takes linear time.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
12 / 20
Local Moves
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
13 / 20
Local Moves
For a terminal t ∈ T and an edge e = tx ∈ E one may carry one a
local move along e, i.e. replace t with x and remove e from E .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
13 / 20
Local Moves
For a terminal t ∈ T and an edge e = tx ∈ E one may carry one a
local move along e, i.e. replace t with x and remove e from E .
Local moves preserve Eulerianess.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
13 / 20
Local Moves
For a terminal t ∈ T and an edge e = tx ∈ E one may carry one a
local move along e, i.e. replace t with x and remove e from E .
Local moves preserve Eulerianess.
If an instance is feasible then either s1 = t1 or s1 admits a local
move.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
13 / 20
Naive Approach
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
14 / 20
Naive Approach
Trace a path P1 from s1 to t1 by applying local moves to s1 that
preserve feasiblity.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
14 / 20
Naive Approach
Trace a path P1 from s1 to t1 by applying local moves to s1 that
preserve feasiblity.
Stop when s1 = t1 .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
14 / 20
Naive Approach
Trace a path P1 from s1 to t1 by applying local moves to s1 that
preserve feasiblity.
Stop when s1 = t1 .
The remaining problem corresponds to k = 2 and hence is
solvable in linear time.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
14 / 20
Naive Approach
How fast is this method?
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Naive Approach
How fast is this method?
Each feasibility check costs O(E ) time.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Naive Approach
How fast is this method?
Each feasibility check costs O(E ) time.
If a certain move was found to be infeasible at some stage then it
remains infeasbile.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Naive Approach
How fast is this method?
Each feasibility check costs O(E ) time.
If a certain move was found to be infeasible at some stage then it
remains infeasbile.
Each edge is checked at most once.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Naive Approach
How fast is this method?
Each feasibility check costs O(E ) time.
If a certain move was found to be infeasible at some stage then it
remains infeasbile.
Each edge is checked at most once.
O(E ) feasibility checks are totally necessary.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Naive Approach
How fast is this method?
Each feasibility check costs O(E ) time.
If a certain move was found to be infeasible at some stage then it
remains infeasbile.
Each edge is checked at most once.
O(E ) feasibility checks are totally necessary.
The overall running time is O(E 2 ).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Naive Approach
How fast is this method?
Each feasibility check costs O(E ) time.
If a certain move was found to be infeasible at some stage then it
remains infeasbile.
Each edge is checked at most once.
O(E ) feasibility checks are totally necessary.
The overall running time is O(E 2 ).
Can one do better?
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
15 / 20
Algorithm Outline
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Algorithm Outline
Check for feasibility of the initial problem instance (takes linear
time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Algorithm Outline
Check for feasibility of the initial problem instance (takes linear
time).
Construct an arbitrary node-simple path P1 from s1 to t1 (takes
linear time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Algorithm Outline
Check for feasibility of the initial problem instance (takes linear
time).
Construct an arbitrary node-simple path P1 from s1 to t1 (takes
linear time).
Apply the sequence of moves along P1 thus bringing s1 to t1 .
Consider the corresponding sequence of networks:
(G, H) = (G0 , H0 ), (G1 , H1 ), . . . , (Gm , Hm )
(here Hi are the demand graphs)
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Algorithm Outline
Check for feasibility of the initial problem instance (takes linear
time).
Construct an arbitrary node-simple path P1 from s1 to t1 (takes
linear time).
Apply the sequence of moves along P1 thus bringing s1 to t1 .
Consider the corresponding sequence of networks:
(G, H) = (G0 , H0 ), (G1 , H1 ), . . . , (Gm , Hm )
(here Hi are the demand graphs)
If (Gm , Hm ) is feasible then we are done (problem reduces to
k = 2) (takes linear time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Algorithm Outline
Check for feasibility of the initial problem instance (takes linear
time).
Construct an arbitrary node-simple path P1 from s1 to t1 (takes
linear time).
Apply the sequence of moves along P1 thus bringing s1 to t1 .
Consider the corresponding sequence of networks:
(G, H) = (G0 , H0 ), (G1 , H1 ), . . . , (Gm , Hm )
(here Hi are the demand graphs)
If (Gm , Hm ) is feasible then we are done (problem reduces to
k = 2) (takes linear time).
Otherwise, find an index j such that (Gj , Hj ) is still feasible
whereas (Gj+1 , Hj+1 ) is infeasible (takes linear time, employs
incremental reachability data structure).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Algorithm Outline
Check for feasibility of the initial problem instance (takes linear
time).
Construct an arbitrary node-simple path P1 from s1 to t1 (takes
linear time).
Apply the sequence of moves along P1 thus bringing s1 to t1 .
Consider the corresponding sequence of networks:
(G, H) = (G0 , H0 ), (G1 , H1 ), . . . , (Gm , Hm )
(here Hi are the demand graphs)
If (Gm , Hm ) is feasible then we are done (problem reduces to
k = 2) (takes linear time).
Otherwise, find an index j such that (Gj , Hj ) is still feasible
whereas (Gj+1 , Hj+1 ) is infeasible (takes linear time, employs
incremental reachability data structure).
Deal with (Gj , Hj ) (takes linear time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
16 / 20
Critical Instance
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
17 / 20
Critical Instance
Recap: (Gj , Hj ) is feasible, (Gj+1 , Hj+1 ) is infeasible.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
17 / 20
Critical Instance
Recap: (Gj , Hj ) is feasible, (Gj+1 , Hj+1 ) is infeasible.
Lemma
There exists and can be found in linear time a subset U ⊆ V such that
dGj (U) = dHj (U) = 2, Gj [U] is connected and |U ∩ Tj | = 2.
p1
u1
V −U
q1
v2
p2
u2
v2
q2
p3
q3
U
Here {p1 , q1 } , {p2 , q2 } , {p3 , q3 } are the pairs of corresponding
terminals. Terminal s1 is one of q1 , q2 , q3 , p3 .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
17 / 20
Dealing with Critical Instance
p1
u1
V −U
q1
v2
p2
u2
v2
q2
p3
q3
U
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
18 / 20
Dealing with Critical Instance
p1
u1
V −U
q1
v2
p2
u2
v2
q2
p3
q3
U
Construct a pair of paths from p1 , p2 to q1 , q2 in Gj (takes linear
time, existence follows from feasibility of (Gj , Hj )).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
18 / 20
Dealing with Critical Instance
p1
u1
V −U
q1
v2
p2
u2
v2
q2
p3
q3
U
Construct a pair of paths from p1 , p2 to q1 , q2 in Gj (takes linear
time, existence follows from feasibility of (Gj , Hj )).
If p1 turns out connected to q2 and p2 to q1 then apply a switch
using the subgraph Gj [U] (reduces to k = 2, takes linear time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
18 / 20
Dealing with Critical Instance
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
19 / 20
Dealing with Critical Instance
Two out of three requested paths (say, P1 and P2 ) are ready.
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
19 / 20
Dealing with Critical Instance
Two out of three requested paths (say, P1 and P2 ) are ready.
Remove the edge sets of P1 and P2 .
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
19 / 20
Dealing with Critical Instance
Two out of three requested paths (say, P1 and P2 ) are ready.
Remove the edge sets of P1 and P2 .
Construct P3 (reduces to k = 1, takes linear time).
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
19 / 20
Dealing with Critical Instance
Two out of three requested paths (say, P1 and P2 ) are ready.
Remove the edge sets of P1 and P2 .
Construct P3 (reduces to k = 1, takes linear time).
We are done!
Babenko, Kolesnichenko, Razenshtein (MSU)
Finding Three Edge-Disjoint Paths
SOFSEM 2010
19 / 20
Babenko, Kolesnichenko, Razenshtein (MSU)
Thank you!
Finding Three Edge-Disjoint Paths
SOFSEM 2010
20 / 20