Polynomial-time algorithms for the Longest Induced Path and
Induced Disjoint Paths problems on graphs of bounded mim-width∗
Lars Jaffke†1 , O-joung Kwon‡2 , and Jan Arne Telle1

arXiv:1708.04536v2 [] 28 Sep 2017

1

Department of Informatics, University of Bergen, Norway.
{lars.jaffke, jan.arne.telle}@uib.no
2
Logic and Semantics, Technische Universität Berlin, Berlin, Germany.
ojoungkwon@gmail.com

September 29, 2017

Abstract
We give the first polynomial-time algorithms on graphs of bounded maximum induced
matching width (mim-width) for problems that are not locally checkable. In particular, we give
nO(w) -time algorithms on graphs of mim-width at most w, when given a decomposition, for the
following problems: Longest Induced Path, Induced Disjoint Paths and H-Induced
Topological Minor for fixed H. Our results imply that the following graph classes have
polynomial-time algorithms for these three problems: Interval and Bi-Interval graphs,
Circular Arc, Permutation and Circular Permutation graphs, Convex graphs, kTrapezoid, Circular k-Trapezoid, k-Polygon, Dilworth-k and Co-k-Degenerate
graphs for fixed k.

1

Introduction

Ever since the definition of the tree-width of graphs emerged from the Graph Minors project of
Robertson and Seymour, bounded-width structural graph decompositions have been a successful
tool in designing fast algorithms for graph classes on which the corresponding width-measure is
small. Over the past few decades, many more width-measures have been introduced, see e.g. [11] for
an excellent survey and motivation for width-parameters of graphs. In 2012, Vatshelle [20] defined
the maximum induced matching width (mim-width for short) which measures how easy it is to
decompose a graph along vertex cuts with bounded maximum induced matching size on the bipartite
graph induced by edges crossing the cut. One interesting aspect of this width-measure is that its
modeling power is much stronger than tree-width and clique-width and many well-known and deeply
studied graph classes such as Interval graphs and Permutation graphs have (linear) mim-width
1, with decompositions that can be found in polynomial time [2, 20], while their clique-width can
∗

The work was done while the authors were at Polytechnic University of Valencia, Spain.
Supported by the Bergen Research Foundation (BFS).
‡
Supported by the European Research Council (ERC) under the European Union’s Horizon 2020 research and
innovation programme (ERC consolidator grant DISTRUCT, agreement No. 648527).
†

1

be proportional to the square root of the number of vertices. Hence, designing an algorithm for a
problem Π that runs in XP time parameterized by mim-width yields polynomial-time algorithms for
Π on several interesting graph classes at once.
For Locally Checkable Vertex Subset and Vertex Partitioning (LC-VSVP) problems,
a class introduced [19] to capture many well-studied algorithmic problems in a unified framework,
Belmonte and Vatshelle [2] and Bui-Xuan et al. [3] provided XP-algorithms on graphs of bounded
mim-width. LC-VSVP problems include many NP-hard problems such as Maximum Independent
Set, Minimum Dominating Set, and q-Coloring. A common feature of these problems is that
they (as the name suggests) can be checked locally: Take q-Coloring for example. Here, we want
to determine whether there is a q-partition of the vertex set of an input graph such that each part
induces an independent set. The latter property can be checked individually for each vertex by
inspecting only its direct neighborhood.
Until now, the only problems known to be XP-time solvable on graphs of bounded mim-width
were of the type LC-VSVP. It is therefore natural to ask whether similar results can be shown
for problems concerning graph properties that are not locally checkable. In this paper, we mainly
study problems related to finding induced paths in graphs, namely Longest Induced Path,
Induced Disjoint Paths and H-Induced Topological Minor. Although their ‘non-induced’
counterparts are more deeply studied in the literature, also these induced variants have received
considerable attention. Below, we briefly survey results for exact algorithms to these three problems
on graph classes studied so far.
For the first problem, Gavril [8] showed that Longest Induced Path can be solved in
polynomial time for graphs without induced cycles of length at least q for fixed q (the running
time was improved by Ishizeki et al. [12]), while Kratsch et al. [15] solved the problem on AT-free
graphs in polynomial time. Kang et al. [13] recently showed that those classes have unbounded
mim-width. However, graphs of bounded mim-width are not necessarily graphs without cycles of
length at least k or AT-free graphs. The second problem derives from the well-known Disjoint
Paths problem which is solvable in O(n3 ) time if the number of paths k is a fixed constant, as
shown by Robertson and Seymour [17], while if k is part of the input it is NP-complete on graphs of
linear mim-width 1 (interval graphs) [16]. In contrast, Induced Disjoint Paths is NP-complete
already for k = 2 paths [14]. In this paper we consider the number of paths k as part of the input.
Under this restriction Induced Disjoint Paths is NP-complete on claw-free graphs, as shown by
Fiala et al. [7], while Golovach et al. [10] gave a linear-time algorithm for circular-arc graphs. For
the third problem, H-Induced Topological Minor, we consider H to be a fixed graph. This
problem, and also Induced Disjoint Paths, were both shown solvable in polynomial time on
chordal graphs by Belmonte et al. [1], and on AT-free graphs by Golovach et al. [9].
We show that Longest Induced Path, Induced Disjoint Paths and H-Induced Topological Minor for fixed H can be solved in time nO(w) given a branch decomposition of mim-width
w. Since bounded mim-width decompositions, usually mim-width 1 or 2, can be computed in
polynomial-time for all well-known graph classes having bounded mim-width [2], our results thus
provide unified polynomial-time algorithms for these problems on the following classes of graphs:
Interval and Bi-Interval graphs, Circular Arc, Permutation and Circular Permutation
graphs, Convex graphs, k-Trapezoid, Circular k-Trapezoid, k-Polygon, Dilworth-k and
Co-k-Degenerate graphs for fixed k, all graph classes of bounded mim-width [2].1
1
In [2], results are stated in terms of d-neighborhood equivalence, but in the proof, they actually gave a bound
on mim-width or linear mim-width. Note that Interval, Permutation and k-Trapezoid graphs are AT-free, so

2

The problem of computing the mim-width of general graphs was shown to be W[1]-hard [18] and
no algorithm for computing the mim-width of a graph in XP time is known. Furthermore, there is
no polynomial-time constant-factor approximation for mim-width unless NP = ZPP [18].
What makes our algorithms work is an analysis of the structure induced by a solution to
the problem on a cut in the branch decomposition. There are two ingredients. First, in all the
problems we investigate, we are able to show that for each cut induced by an edge of the given
branch-decomposition of an input graph, it is sufficient to consider induced subgraphs of size at most
O(w) as intersections of solutions and the set of edges crossing the cut, where w is the mim-width
of the branch decomposition. For instance, in the Longest Induced Paths problem, an induced
path is a target solution, and Figure 1 describes a situation where an induced path crosses a cut.
We argue that an induced path cannot cross a cut many times if there is no large induced matching
between vertex sets A and B of the cut (A, B). Such an intersection is always an induced disjoint
union of paths. Thus, we enumerate all subgraphs of size at most O(w), which are induced disjoint
unions of paths, and these will be used as indices of our table.
However, a difficulty arises if we recursively ask for a given cut and such an intersection of size
at most O(w), whether there is an induced disjoint union of paths of certain size in the union of
one part and edges crossing the cut, whose intersection on the crossing edges is the given subgraph.
The reason is that there are unbounded number of vertices in each part of the cut that are not
contained in the given subgraph of size O(w) but still have neighbors in the other part. We need to
control these vertices in such a way that they do not further create an edge in the solution. We
control these vertices using vertex covers of the bipartite graph induced by edges crossing the cut.
Roughly speaking, if there is a valid partial solution, then there is a vertex cover of such a bipartite
graph, which meets all other edges not contained in the given subgraph. The point is that there
are only nO(w) many minimal vertex covers of such a bipartite graph with maximum matching size
w. We discuss this property in Section 2. Based on these two results, each table will consist of a
subgraph of size O(w) and a vertex cover of the remaining part of the bipartite graph, and we check
whether there is a (valid) partial solution to the problem with respect to given information. We
can argue that we need to store at most nO(w) table entries in the resulting dynamic programming
scheme and that each of them can be computed in time nO(w) as well.
The strategy for Induced Disjoint Paths is very similar to the one for Longest Induced
Path. The only thing to additionally consider is that in the disjoint union of paths, which is guessed
as the intersection of a partial solution and edges crossing a cut, we need to remember which path
is a subpath of the path connecting a given pair. We lastly provide a one-to-many reduction from
H-Induced Topological Minor to Induced Disjoint Paths, that runs in polynomial time,
and show that it can be solved in time nO(w) . Similar reductions have been shown earlier (see
e.g. [1, 9]) but we include it here for completeness.

2

Preliminaries

We assume the reader to be familiar with the basic notions in graph theory and parameterized
complexity and refer to [4, 5, 6] for an introduction.
For integers a and b with a ≤ b, we let [a..b] ..= {a, a + 1, . . . , b} and if a is positive, we define

[a] ..= [1..a]. Throughout the paper, a graph G on vertices V (G) and edges E(G) ⊆ V (G)
is
2
assumed to be finite, undirected and simple. For graphs G and H we say that G is a subgraph of H,
polynomial-time algorithms for all three problems were already known [9].

3

if V (G) ⊆ V (H) and E(G) ⊆ E(H) and we write G ⊆ H. For avertex set X ⊆ V (G), we denote
by G[X] the subgraph induced by X, i.e. G[X] ..= (X, E(G) ∩ X2 ). If H ⊆ G and X ⊆ V (G) then
we let H[X] ..= H[X ∩ V (H)]. We use the shorthand G − X for G[V (G) \ X]. For two (disjoint)
vertex sets X, Y ⊆ V (G), we denote by G[X, Y ] the bipartite subgraph of G with bipartition (X, Y )
such that for x ∈ X, y ∈ Y , x and y are adjacent in G if and only if they are adjacent in G[X, Y ].
A cut of G is a bipartition (A, B) of its vertex set. For a vertex v ∈ V (G), we denote by N [v] the
set of neighbors of v in G, i.e. N [v] ..= {w ∈ V (G) | {v, w} ∈ E(G)}. A set M of edges is a matching
if no two edges in M share an end vertex, and a matching {a1 b1 , . . . , ak bk } is induced if there are
no other edges in the subgraph induced by {a1 , b1 , . . . , ak , bk }. For an edge e = {v, w} ∈ E(G), the
operation of contracting e is to remove the edge e from G and identifying v and w.

2.1

Branch Decompositions and Mim-Width

A pair (T, L) of a subcubic tree T and a bijection L from V (G) to the set of leaves of T is called a
branch decomposition. For each edge e of T , let T1e and T2e be the two connected components of
T − e, and let (Ae1 , Ae2 ) be the vertex bipartition of G such that for each i ∈ {1, 2}, Aei is the set
of all vertices in G mapped to leaves contained in Tie by L. The mim-width of (T, L), denoted by
mimw(T, L), is defined as maxe∈E(T ) mim(Ae1 ), where for a vertex set A ⊆ V (G), mim(A) denotes
the maximum size of an induced matching in G[A, V (G) \ A]. The minimum mim-width over all
branch decompositions of G is called the mim-width of G. If |V (G)| ≤ 1, then G does not admit a
branch decomposition, and the mim-width of G is defined to be 0.
To avoid confusion, we refer to elements in V (T ) as nodes and elements in V (G) as vertices
throughout the rest of the paper. Given a branch decomposition, one can subdivide an arbitrary edge
and let the newly created vertex be the root of T , in the following denoted by r. Throughout the
following we assume that each branch decomposition has a root node of degree two. For two nodes
t, t0 ∈ V (T ), we say that t0 is a descendant of t if t lies on the path from r to t0 in T . For t ∈ V (T ),
we denote by Gt the subgraph induced by all vertices that are mapped to a leaf that is a descendant
of t, i.e. Gt ..= G[Xt ], where Xt = {v ∈ V (G) | L−1 (t0 ) = v where t0 is a descendant of t in T }. We
use the shorthand ‘Vt ’ for ‘V (Gt )’ and let V̄t ..= V (G) \ Vt .
The following definitions which we relate to branch decompositions of graphs will play a central
role in the design of the algorithms in Section 3.
Definition 1 (Boundary). Let G be a graph and A, B ⊆ V (G) such that A ∩ B = ∅. We let bdB (A)
be the set of vertices in A that have a neighbor in B, i.e. bdB (A) ..= {v ∈ V (A) | N (v) ∩ B 6= ∅}.
We define bd(A) ..= bdV (G)\A (A) and call bd(A) the boundary of A in G.
Definition 2 (Crossing Graph). Let G be a graph and A, B ⊆ V (G). If A ∩ B = ∅, we define the
graph GA,B ..= G[bdB (A), bdA (B)] to be the crossing graph from A to B.
If (T, L) is a branch decomposition of G and t1 , t2 ∈ V (T ) such that the crossing graph GVt1 ,Vt2
is defined, we use the shorthand Gt1 ,t2 ..= GVt1 ,Vt2 . We use the analogous shorthand notations
Gt1 ,t¯2 ..= GVt ,V¯t and Gt¯1 ,t2 ..= GV¯t ,Vt (whenever these graphs are defined). For the frequently
1
2
1
2
arising case when we consider Gt,t̄ for some t ∈ V (T ), we refer to this graph as the crossing graph
w.r.t. t.
We furthermore use the following notation. Let G be a graph, v ∈ V (G) and A ⊆ V (G). We
denote bySNA [v] the set of neighbors of v in A, i.e. NA [v] ..= N [v] ∩ A. For X ⊆ V (G), we let
NA [X] ..= v∈X NA [v]. If (T, L) is a branch decomposition of G and t ∈ V (T ), we use the shorthand
notations Nt [X] ..= NVt [X] and Nt̄ [X] ..= NV¯t [X].
4

2.2

The Minimal Vertex Covers Lemma

Let G be a graph. We now prove that given a set A ⊆ V (G), the number of minimal vertex covers
in G[A, V (G) \ A] is bounded by nmim(A) . This observation is crucial to argue that we only need to
store nO(w) entries at each node in the branch decomposition in all algorithms we design, where w
is the mim-width of the given branch decomposition.
Notice that the bound on the number can be easily obtained by combining two results, [2,
Lemma 1] and [20, Theorem 3.5.5]; however, an enumeration algorithm is not given explicitly. To
be self-contained, we state and prove it here.
Corollary 3 (Minimal Vertex Covers Lemma). Let H be a bipartite graph on n vertices with a
bipartition (A, B). The number of minimal vertex covers of H is at most nmim(A) , and the set of all
minimal vertex covers of H can be enumerated in time nO(mim(A)) .
Proof. Let w ..= mim(A). For each vertex set R ⊆ A with |R| ≤ w, let XR ⊆ A be the set of all
vertices having a neighbor in B \ N (R). We enumerate the sets in
M = {N (R) ∪ XR : R ⊆ A, |R| ≤ w}.
Clearly, we can enumerate them in time nO(w) . It is not difficult to see that each set in M is a
minimal vertex cover. We claim that M is the set of all minimal vertex covers in H.
We use the result by Belmonte and Vatshelle [2, Lemma 1] that for a graph G and A ⊆ V (G),
mim(A) ≤ k if and only if for every S ⊆ A, there exists R ⊆ S such that N (R) ∩ (V (G) \ A) =
N (S) ∩ (V (G) \ A) and |R| ≤ k.
Let U be a minimal vertex cover of H. Clearly, every vertex in A \ U has no neighbors in B \ U ,
as U is a vertex cover. Therefore, by the result of Belmonte and Varshelle, there exists R ⊆ A \ U
such that |R| ≤ w and N (R) ∩ B = N (A \ U ) ∩ B = U ∩ B. Clearly, U ∩ A = XR ; if a vertex in
U ∩ A has no neighbors in B \ U , then we can remove it from the vertex cover. Therefore, U ∈ M,
as required.

3

Algorithms

In all algorithms presented in this section, we assume that we are given as input an undirected
graph G together with a branch decomposition (T, L) of G of mim-width w, rooted at a degree two
vertex obtained from subdividing an arbitrary edge in T . We do bottom-up dynamic programming
over (T, L), starting at the leaves of T . To obtain our algorithms, we study the structure a solution
induces across a cut in the branch decomposition and argue that the size of this structure is bounded
by a function only depending on the mim-width. The table entries at each node t ∈ V (T ) are then
indexed by all possible such structures and contain the value 1 if and only if the structure used as
the index of this entry constitutes a solution for the respective problem. After applying the dynamic
programming scheme, the solution to the problem can be obtained by inspecting the table values
associated with the root of T .
The rest of this section is organized as follows. In Section 3.1 we present an nO(w) -time algorithm
for Longest Induced Path, and in Section 3.2 we give an algorithm for Induced Disjoint
Paths with the same asymptotic runtime bound. We give a polynomial-time one-to-many reduction
from H-Induced Topological Minor (for fixed H) to Induced Disjoint Paths in Section 3.3,
yielding an nO(w) for the former problem as well.
5

V̄t
I

Vt
P

Figure 1: The intersection of an induced path P with G[Vt ∪ bd(V̄t )], which is an induced disjoint
union of paths I. The subgraph S to be used as an index for the corresponding table entry consists
of the boldface vertices and edges in I.

3.1

Longest Induced Path

For a disjoint union of paths P , we refer to its size as the number of its vertices, i.e. |P | ..= |V (P )|.
If P has only one component, we use the terms ‘size’ and ‘length’ interchangeably. We now give an
nO(w) time algorithm for the following parameterized problem.
Longest Induced Path (LIP)/Mim-Width
Input: A graph G with branch decomposition (T, L) and an integer k
Parameter: w ..= mimw(T, L)
Question: Does G contain an induced path of length at least k?
Before we describe the algorithm, we observe the following. Let G be a graph and A ⊆ V (G)
with mim(A) = w and let P be an induced path in G. Then the subgraph induced by edges of P in
GA,Ā and vertices incident with these edges has size linearly bounded by w. The following lemma
provides a bound of this size.
Lemma 4. Let p be a positive integer and let F be a disjoint union of paths such that each component
of F contains an edge. If |V (F )| ≥ 4p, then F contains an induced matching of size at least p.
Proof. We prove the lemma by induction on p. If p = 1, then it is clear. We may assume p ≥ 2.
Suppose F contains a connected component C with at most 4 vertices. Then F − V (C) contains
at least 4(p − 1) vertices, and thus it contains an induced matching of size at least p − 1 by the
induction hypothesis. As C contains an edge, F contains an induced matching of size at least p.
Thus, we may assume that each component of F contains at least 5 vertices. Let us choose a leaf
v of F , and let v1 be the neighbor of v, and v2 be the neighbor of v1 other than v. Since each
component of F − {v, v1 , v2 } contains at least one edge, we can apply induction to conclude that
F − {v, v1 , v2 } contains an induced matching of size at least p − 1. Together with vv1 , F contains
an induced matching of size at least p.
Remark 5. Unless stated otherwise, any path P (or equivalently, a component of a disjoint union of
paths) we refer to throughout the remainder of this section is considered to be nontrivial, i.e. P
contains at least one edge.

6

Before we give the description of the dynamic programming algorithm, we first observe how a
solution P, i.e. an induced path in G, interacts with the graph G[Vt ∪ bd(V̄t )], for some t ∈ V (T ).
The intersection of P with G[Vt ∪ bd(V̄t )] is an induced disjoint union of paths which we will denote
by I in the following. To keep the number of possible table entries bounded by nO(w) , we have to
focus on the interaction of I with the crossing graph Gt,t̄ w.r.t. t, in particular the intersection of I
with its edges. Note that after removing isolated vertices, I induces a disjoint union of paths on
Gt,t̄ which throughout the following we will denote by S. For an illustration see Figure 1. There
cannot be any additional edges crossing the cut (Vt , V̄t ) between vertices in I on opposite sides of
the boundary that are not contained in V (S). This property of I can be captured by considering
a minimal vertex cover M of the bipartite graph Gt,t̄ − V (S). We remark that the vertices in M
play different roles, depending on whether they lie in M ∩ Vt or M ∩ V̄t . We therefore define the
following two sets.
- Mtin ..= M ∩ Vt is the set of vertices that must be avoided by I.
- Mtout ..= M ∩ V̄t is the set of vertices that must be avoided by a partial solution (e.g. the
intersection of P with G[V̄t ]) to be combined with I to ensure that their combination does
not use any edges in Gt,t̄ − V (S).
Furthermore, I also indicates how the vertices in S[Vt ] that have degree one in S are joined
together in the graph Gt (possibly outside bd(Vt )). This gives rise to a collection of vertex pairs Q,
which we will refer to as pairings, with the interpretation that (s, t) ∈ Q if and only if there is a
path from s to t in I[Vt ].
The description given above immediately tells us how to index the table entries in the dynamic
programming table T to keep track of all possible partial solutions in the graph G[Vt ∪ bd(V̄t )]: We
set the table entry T [t, (S, M, Q), i, j] = 1, where i ∈ [0..n] and j ∈ [0..2], if and only if the following
conditions are satisfied. For an illustration of the table indices, see Figure 2.
(i) There is a set of induced paths I of total size i in G[Vt ∪ bd(V̄t )] such that I has j degree one
endpoints in Gt .
(ii) E(I) ∩ E(Gt,t̄ ) = E(S).
(iii) M is a minimal vertex cover of Gt,t̄ − V (S) such that V (I) ∩ M = ∅. (Recall that M =
Mtin ∪ Mtout .)
(iv) Let D denote the vertices in S[Vt ] that have degree one in S. Let Q = (s1 , t1 ), . . . , (s` , t` ) be a
partition of all but j vertices of D into pairs, throughout the following called a pairing, such
that if we contract all edges in I − E(Gt,t̄ ) from I incident with at least one vertex not in S
(we denote the resulting graph as S Q) we obtain the same graph as when adding {sk , tk } to
S, for each k ∈ [`].
Regarding (iv), observe that |D| = 2` + j and that there are j unpaired vertices in Q, each of
which is connected to a degree one endpoint of I in Gt . For notational convenience, we will denote
by Tt all table entries that have the node t ∈ V (T ) as the first index.
We now show that the solution to Longest Induced Path can be obtained from a table entry
corresponding to the root r of T and hence ensure that the information stored in T is sufficient.

7

Mtout

S

V̄t

Mtin

Q

Vt

Figure 2: A crossing graph Gt,t̄ and the structures associated with the table indices of the algorithm
for Longest Induced Path. Note that by (i) and (iv) it follows that if the table entry corresponding
to the above structures is 1, then j = 0: Since both degree one endpoints in S[Vt ] are paired, this
means that the corresponding set of induced paths I has zero degree one endpoints in G[Vt ].
Proposition 6. G contains an induced path of length i if and only if T [r, (∅, ∅, ∅), i, 2] = 1.
Proof. Suppose G contains an induced path P of length i and consider the root r of (T, L). Clearly,
G[Vr ∪ bd(V¯r )] = G, since Vr = V (G) and bd(V¯r ) = ∅. Together with the fact that P is a path (and
hence has two degree one endpoints in Gr = G, it follows that P satisfies Condition (i) for a table
entry to be set to 1. Since bd(V¯r ) = ∅, it follows that for any index in Tr , S = ∅, M = ∅ and Q = ∅.
We can conclude that T [r, (∅, ∅, ∅), i, 2] = 1.
Now suppose T [r, (∅, ∅, ∅), i, 2] = 1. Then there is a set of induced paths I of total size i in G by
(i) having two degree one endpoints in Gr = G. The latter allows us to conclude that I is in fact a
single path.
Throughout the following, we denote by St the set of all sets of induced disjoint paths in Gt,t̄
on at most 4w vertices (which includes all possible intersections of partial solutions with Gt,t̄ by
Lemma 4), for S ∈ St by Mt,S the set of all minimal vertex covers of Gt,t̄ − V (S) and by Qt,S the
set of all pairings of degree one vertices in S[bd(Vt )]. We now argue that the number of such entries
is bounded by a polynomial in n whose degree is O(w).
Proposition 7. For each t ∈ V (T ), there are at most nO(w) table entries in Tt and they can be
enumerated in time nO(w) .
Proof. Note that each index is an element of St × Mt,S × Qt,S × [0..n] × [0..2]. Since the size of
each maximum induced matching in Gt,t̄ is at most w, we know by Lemma 4 that the size of each
index S is bounded by 4w, so |St | ≤ O(n4w ). By the Minimal Vertex Covers Lemma (Corollary 3),
|Mt,S | ≤ nO(w) . Since the number of vertices in S is bounded by 4w, we know that |Qt,S | ≤ wO(w)
and since i ∈ [0..n] and j ∈ [0..2], we can conclude that the number of table entries for each t ∈ V (T )
is at most
O(n4w ) · nO(w) · wO(w) · (n + 1) · 3 = nO(w) ,
as claimed. Clearly, all elements in St and Qt,S can be enumerated in time nO(w) and by the Minimal
Vertex Covers Lemma, we know that all elements in Mt,S can be enumerated in time nO(w) as well.
The claimed time bound on the enumeration of the table indices follows.
In the remainder of the proof we will describe how to fill the table entries from the leaves of T
to its root, asserting the correctness of the updates in the table. Together with Proposition 6, this
will yield the correctness of the algorithm.
8

Leaves of T . Let t ∈ V (T ) be a leaf node of T and let v = L−1 (t). We observe that any
nonempty intersection of an induced disjoint union of paths in Gt,t̄ is a single edge using v or
a path of length two whose middle vertex is v. Hence, all indices in Tt that are set to 1 (with
nonempty S) have the following properties: Either S is a single edge using v, and we denote the set
1 or a path of length two with v as the middle vertex, and we denote the
of all such edges by St,v
2 . For each S ∈ S 1 ∪ S 2 , the corresponding minimal vertex
corresponding set of such paths as St,v
t,v
t,v
cover of Gt,t̄ − V (S) is empty, since v ∈ V (S) and no edges remain in Gt,t̄ when we remove v. Since
1 , then j = 1 and if S ∈ S 2 then
v is the only vertex in Gt , Q = ∅ in both of these cases. If S ∈ St,v
t,v
j = 0. Additionally, a table entry is set to 1 if S = ∅ and i = 0 and since the solution is empty in
this case, Q = ∅ and j = 0. The two corresponding minimal vertex covers are {v} and N (v). Hence,
we set the table entries in the leaves as follows.

1 , M = ∅, Q = ∅, i = 2 and j = 1
1, if S ∈ St,v



2 , M = ∅, Q = ∅, i = 3 and j = 0
1, if S ∈ St,v
T [t, (S, M, Q), i, j] =
1, if S = ∅, M ∈ {{v}, N (v)}, Q = ∅, i = 0 and j = 0



0, otherwise
Internal nodes of T . Let t ∈ V (T ) be an internal node of T , let (S, M, Q) ∈ St × Mt,S × Qt,S ,
let i ∈ [0..n] and j ∈ [0..2]. We show how to compute the table entry T [t, (S, M, Q), i, j] from table
entries corresponding to the children a and b of t in T . To do so, we have to take into account
the ways in which partial solutions for G[Va ∪ bd(V¯a )] and G[Vb ∪ bd(V¯b )] interact. We therefore
try all pairs of indices Ia = ((Sa , Ma , Qa ), ia , ja ), Ib = ((Sb , Mb , Qb ), ib , jb ) and for each such pair,
first check whether it is ‘compatible’ with It : We say that Ia and Ib are compatible with It if and
only if any partial solution Ia represented by Ia for G[Va ∪ bd(V¯a )] and Ib represented by Ib for
G[Vb ∪ bd(V¯b )] can be combined to a partial solution It for G[Vt ∪ bd(V̄t )] that is represented by the
index It . We then set Tt [It ] ..= 1 if and only if we can find a compatible pair of indices Ia , Ib as
above such that Ta [Ia ] = 1 and Tb [Ib ] = 1.
Step 0 (Valid Index). We first check whether the index It can represent a valid partial solution
of G[Vt ∪ bd(V̄t )]. The definition of the table entries requires that S Q is a disjoint union of
paths, so if S Q is not a disjoint union of paths, we set Tt [It ] ..= 0 and skip the remaining
steps. In general, the number of degree one vertices in V (S Q) ∩ Vt has to be equal to j and
we can proceed as described in Steps 1-4, except for the following special cases.
Special Case 1 (j = 2, V (S Q) ∩ Vt has 0 deg. 1 vertices). This is the case when I
does not contain any edge in E(Gt,t̄ ). It immediately follows that S has to be empty
(and hence Q has to be empty). If not, we set Tt [It ] = 0 and skip the remaining steps.
We would like to remark that the case when j = 2 and S = ∅ will have to be dealt with
separately in Step 3, since S Q is the empty graph.
Special Case 2 (j = 2, V (S Q) ∩ Vt has 2 deg. 1 vertices in same component). In this
case, j = 2 and the degree one vertices in V (S Q) ∩ Vt are in the same component C
of S Q. Then, S Q has to consist of a single component (and I of a single path):
If there was another component C 0 in S Q, C and C 0 could never be joined together
to become a single path in the vertices of V̄t and hence we can never obtain a valid
solution from the partial solution represented by this index. So if S Q has more than
one component, we set Tt [It ] = 0 and skip the remaining steps, otherwise we do not have
to pay any further attention to this case in the following computations.
9

V̄t
Sa \ R

Va

Sb \ R

Q
Qa

Qb

Vb

R

Figure 3: Step 3 of the join operation. Recall that Sa ∩ Ga,b = Sb ∩ Ga,b = R by Step 1.
Special Case 3 (j = 0 and S = ∅). This is the case when I does not use any vertex of Vt .
We then set Tt [It ] = 1 if and only if i = 0 and skip the remaining steps.
Step 1 (Induced disjoint unions of paths). We now check whether Sa and Sb are compatible
with S. We have to ensure that
- S ∩ Ga,t̄ = Sa ∩ Ga,t̄ ,
- S ∩ Gb,t̄ = Sb ∩ Gb,t̄ and
- Sa ∩ Ga,b = Sb ∩ Ga,b .
If these conditions are not satisfied, we skip the current pair of indices Ia , Ib . In the following,
we use the notation R = Sa ∩ Ga,b (= Sb ∩ Ga,b ).
Step 2 (Pairings of degree one vertices and j). First, we deal with Special Case 1, i.e. j = 2
and S = ∅. We then check whether the graph obtained from taking R and adding an edge
(and, if not already present, the corresponding vertices) for each pair in Qa and Qb is a single
induced path. Note that we require the values of the integers ja and jb to be the number of
endpoints of the resulting path in Va and Vb , respectively.
Since the case j = 0 and S = ∅ is dealt with in Special Case 3 and S cannot be empty
whenever j = 1, we may from now on assume that S 6= ∅ and hence S Q =
6 ∅.2
Consider the graph on vertex set V (S) ∪ V (R) whose edges consist of the edges in S and R
together with the pairs in Qa and Qb . We then contract all edges in R and all edges that
were added due to the pairings Qa and Qb and incident with a vertex not in S, and denote
the resulting graph by H. Then, Qa and Qb are compatible if and only if H = S Q. By the
definition of the table entries (and since by Step 0, S Q is a disjoint union of paths) we can
then see that Qa , Qb together with the edges of R connect the paired degree one vertices of
Q as required. We furthermore need to ensure that the values of the integers ja and jb are
the number of degree one endpoints in H[Va ] and H[Vb ], respectively. For an illustration see
Figure 3.
2

Note that it could still happen that Q = ∅ but since this does not essentially influence the following argument, we
assume that Q 6= ∅.

10

Step 3 (Minimal vertex covers). We now describe the checks we have to perform to ensure
that Ma and Mb are compatible with M , which from now on we will denote by Mt to avoid
confusion. For ease of exposition, we denote by It , Ia and Ib (potential) partial solutions
corresponding to It , Ia and Ib , respectively.
Recall that the purpose of the minimal vertex cover Mt is to ensure that no unwanted edges
appear between vertices used by the partial solution It and any partial solution of G[V̄t \bd(V̄t )]
that can be combined with It . Hence, when checking whether Ia and Ib can be combined to
It without explicitly having access to these sets of induced disjoint paths, we have to make
sure that the indices Ia and Ib assert the absence of unwanted edges — for any intersection of
a partial solution with Ga,ā and Gb,b̄ , as well as with Ga,b . Recall that Ga,ā = Ga,t̄ ∪ Ga,b and
Gb,b̄ = Gb,t̄ ∪ Ga,b .
We distinguish several cases, depending on where the unwanted edge might appear: First,
between two intermediate vertices of partial solutions and second, between a vertex in Sa
or Sb and an intermediate vertex. Step 3.1 handles the former and Step 3.2 the latter. In
Step 3.1, we additionally have to distinguish whether the edge might appear in Ga,b or in Ga,t̄
(respectively, in Gb,t̄ ).
out(b) .
.=

In the following, we let Ma

out(a) .
.=

Maout ∩ Vb and Mb

out(b)

Step 3.1.1 (intermediate-intermediate, Ga,b ). Ma

Mbout ∩ Va .
out(a)

⊆ Mbin and Mb

⊆ Main .

out(b)

A vertex v ∈ Ma
can have a neighbor w ∈ Va which is used as an intermediate vertex
in Ia . Hence, to avoid that the unwanted edge {v, w} appears in the combined solution
Ia ∪ Ib , we have to make sure that v is not used by Ib , which is asserted if v ∈ Mbin . By
out(a)
a symmetric argument we justify that Mb
⊆ Main .
Step 3.1.2 (intermediate-intermediate, Ga,t̄ or Gb,t̄ ). We have to check the following
two conditions, the first one regarding Mtin and the second one regarding Mtout .
(a) Mtin ⊆ Main ∪ Mbin : By the definition of Mtin , It has to avoid the vertices in Mtin .
Hence, Ia and Ib have to avoid the vertices in Mtin as well, which is ensured if for
v ∈ Mtin ∩ Va , we have that v ∈ Main and for w ∈ Mtin ∩ Vb , we have that w ∈ Mbin .
(b) For each vertex v ∈ Mtout having a neighbor x in Va such that x is also contained in
Va \ (V (Sa ) ∪ Main ), we have that v ∈ Maout . Recall that by the definition of Mtout ,
It could use the vertex x as an intermediate vertex. If x ∈
/ V (Sa ) ∪ Main , this means
that x might be used by Ia as an intermediate vertex as well. Now, in a table entry
representing a partial solution Ia using x, this is signalized by having v ∈ Maout . We
check the analogous condition for Mbout .
Step 3.2 (intermediate-(Sa or Sb )). Na [V (Sb ) \ V (Sa )] ⊆ Main and Nb [V (Sa ) \ V (Sb )] ⊆
Mbin .
We justify the first condition and note that the second one can be argued for symmetrically.
Clearly, Ia cannot have a neighbor x of any vertex v ∈ V (Sb ) as an intermediate vertex, if
Ia is to be combined with Ib . However, if v ∈ V (Sa ), then Ia does not use x by Part (ii)
of the definition of the table entries. Note that this includes all vertices in V (R) ⊆ V (Sa ).
If on the other hand, v ∈ V (Sb ) \ V (Sa ) then the neighbors of v have not been accounted
for earlier, since v is not a vertex in the partial solution Ia . Hence, we now have to assert
that Ia does not use x, the neighbor of v, and so we require that x ∈ Main .
11

Step 4 (i). We consider all pairs of integers ia , ib such that i = ia + ib − |V (R)|. By Step 2, all
vertices in R are used in the partial solution It . They are counted twice, since they are both
accounted for in Ia and in Ib .
Now, we let Tt [It ] = 1 if and only if there is a pair of indices Ia = ((Sa , Ma , Qa ), ia , ja ) and
Ib = ((Sb , Mb , Qb ), ib , jb ) passing all checks performed in Steps 1-4 above, such that Ta [Ia ] = 1 and
Tb [Ib ] = 1. This finishes the description of the algorithm.
Proposition 8. Let t ∈ V (T ). The table entries Tt [It ] computed according to Steps 0-4 above are
correct.
Proof. Suppose there is partial solution It , an induced disjoint union of paths in G[Vt ∪ bd(V̄t )]. We
claim that for any index It representing the partial solution It , Tt [It ] = 1 after the join operation
described by Steps 0-4, assuming as the induction hypothesis that the table values of the children
a and b of t are computed correctly. Any index It representing It has the following properties:
S = It ∩ Gt,t̄ and the pairing Q of the degree one vertices in S[Vt ] can be obtained by letting
(s, t) ∈ Q if and only if there is a path connecting s and t in It [Vt ]. We furthermore have that
i = |V (It )| and j is the number of degree one endpoints in It [Vt \ bd(Vt )]. However, there might
be several choices for the minimal vertex cover M of Gt,t̄ − V (S). By the definition of the table
entries, Mtin ⊆ Vt \ V (It ) and Mtout contains all vertices of V̄t that have a neighbor in V (It ) \ V (S).
Throughout the remainder of the proof, we fix one such vertex cover M . Clearly, It = ((S, M, Q), i, j)
is a valid index according to the checks done in Step 0 and represents It in the sense of the definition
of the table entries.
We observe that It induces partial solutions for the children a and b of t: We let Ia =
It ∩ G[Va ∪ bd(V¯a )] and Ib = It ∩ G[Vb ∪ bd(V¯b )]. We now show how to obtain indices Ia and Ib
representing Ia and Ib , respectively, that are compatible to be combined to the index It in the
sense of Steps 1-4 of the algorithm presented above. In complete analogy to above, we obtain
Sa = Ia ∩ Ga,ā , the pairing Qa of degree one endpoints in Sa [Va ], and the integers ia and ja and
we proceed in the same way to obtain Sb , Qb , ib and jb . Again, there will be several choices for the
minimal vertex covers Ma of Ga,ā − V (Sa ) and Mb of Gb,b̄ − V (Sb ), of which we will choose one
‘representative’. For the details see further below. What we can immediately verify is that Sa and
Sb are compatible with S in the sense of Step 1, that Qa and Qb are compatible with Q in the sense
of Step 2, that the values of ja and jb are compatible with j, and that ia and ib are compatible with
i in accordance with Step 4. Throughout the following, we denote by R = Sa ∩ Sb and note that R
is contained in the crossing graph Ga,b .
We now explain how to construct a pair of minimal vertex covers Ma and Mb of Ga,ā − V (Sa )
and Gb,b̄ − V (Sb ), respectively, making sure that they are compatible with M in the sense of Step 3
of the algorithm description. Note that in the following, we only show how to construct Ma and we
perform the symmetric steps to construct Mb . Our strategy is as follows: We add vertices to Ma in
consecutive stages and ensure in each stage that all vertices we add cover an edge that has not been
covered by Ma so far. Hence minimality of the resulting vertex cover will follow. We furthermore
point out at each stage, which part of Step 3 in the description of the join operation it satisfies.
1. Let w be an intermediate vertex of Ib and let x be a neighbor of w in Va . Then, add x to Main .
Now, let w be an intermediate vertex of Ia and x be a neighbor of Ia in V¯a . Then, add x to Maout .
out(b)
In both cases, this covers the edge {w, x}. Since we do not add any more vertices to Ma
in
the remaining construction, the vertex w in the first case will never be added to Ma and since in
12

the second case, w is an intermediate vertex, it will not be added to Ma either. Hence this stage
of the construction cannot violate the minimality condition of Ma . Note that since we proceed
symmetrically for Mb , the condition in Step 3.1.1 is also satisfied by this part of the construction.
2. We add any x ∈ Mtin ∩ Va to Main . Since Mt is minimal, x covers an edge {x, w} in Ga,t̄ , where
w ∈ V̄t \ V (St ). Hence, the edge {x, w} has not been covered so far by Ma . This ensures that
the condition in Step 3.1.2 a) is met.
3. If a vertex x in Va \ V (Sa ) has a neighbor w in V (Sb ) \ V (Sa ), then add x to Main , so x covers the
edge {x, w}. Note that this vertex w is different from the one in Stage 2, as w ∈ V (Sb ) \ V (Sa )
and hence w is a vertex of St or it is not contained in V̄t . This asserts that the condition in Step
3.2 is satisfied.
4. Consider the subgraph G∗ of Ga,ā − V (Sa ) on the edges that have not been covered by Ma so
far. By Stage 1, this graph does not touch any vertex in Ia or Ib . We then add all vertices in
V (G∗ ) ∩ Va to Main . This ensures that there is no vertex v ∈ Mtout that violates the condition of
Step 3.1.2 b).
By the above construction, in particular by Stage 4, we verify that Ma is a vertex cover of
Ga,ā − V (Sa ) and in each stage, we checked that Ma remains minimal after adding the corresponding
vertices.
We have shown how to derive from the partial solutions Ia and Ib a pair of table entries Ia , Ib
that represent them. Since we assume inductively that the algorithm is correct for the children of
t, we know that Ta [Ia ] = 1 and Tb [Ib ] = 1. By the description of the algorithm, this implies that
Tt [It ] = 1 which concludes this direction of the proof.
For the other direction, suppose there exists an index It such that Tt [It ] = 1. By the description
of the algorithm we can find pairs of indices Ia and Ib such that Ta [Ia ] = 1 and Tb [Ib ] = 1. Assuming
for the induction hypothesis that the values of the children of t are computed correctly, we obtain
the corresponding partial solutions Ia and Ib . Following the description of the algorithm, we can
then see that Ia and Ib can be combined to a valid solution It which is represented by It .
By Propositions 6 and 8 and the fact that in the leaf nodes of T , we enumerate all possible
partial solutions, we know that the algorithm we described is correct. Since by Proposition 7, there
are at most nO(w) table entries at each node of T (and they can be enumerated in time nO(w) ),
the value of each table entry in Tt as above can be computed in time nO(w) · nO(w) · nO(1) = nO(w) ,
since each check described in Steps 0-4 can be done in time polynomial in n. Since additionally,
|V (T )| = O(n), the total runtime of the algorithm is nO(w) · nO(w) · O(n) = nO(w) and we have the
following theorem.
Theorem 9. There is an algorithm that given a graph G on n vertices and a branch decomposition
(T, L) of G, solves Longest Induced Path in time nO(w) , where w denotes the mim-width of
(T, L).

3.2

Induced Disjoint Paths

In this section, we build upon the ideas of the algorithm for Longest Induced Path presented
above to obtain an nO(w) -time algorithm for the following parameterized problem.

13

Induced Disjoint Paths (IDP)/Mim-Width
Input: A graph G with branch decomposition (T, L) and pairs of vertices (x1 , y1 ), . . .,
(xk , yk ) of G.
Parameter: w ..= mimw(T, L)
Question: Does G contain a set of vertex-disjoint induced paths P1 , . . . , Pk , such that
for i ∈ [k], Pi is a path from xi to yi and for i 6= j, Pi does not contain a vertex adjacent
to a vertex in Pj ?
Throughout the remainder of this section, we refer to the
S vertices {xi , yi }, where i ∈ [k] as the
terminals and we denote the set of all terminals by X ..= i∈[k] {xi , yi }. We furthermore use the
following notation: We denote by C(G) the set of all connected components of G and for a vertex
v ∈ V (G), CG (v) refers to the connected component containing v.
We observe how a solution P = (P1 , . . . , Pk ) interacts with the graph G[Vt ∪ bd(V̄t )], for some
t ∈ V (T ). In this case, for each i ∈ [k], Pi is an (xi , yi )-path and additionally for j 6= i, there is no
vertex in Pi adjacent to a vertex of Pj . The intersection of P with G[Vt ∪ bd(V̄t )] is a subgraph
I = (I1 , . . . , Ik ), where each Ii is a (possibly empty) induced disjoint union of paths which is the
intersection of the (xi , yi )-path Pi with G[Vt ∪ bd(V̄t )]. Note that each terminal vi ∈ {xi , yi } that is
contained in Vt ∪ bd(V̄t ) is also contained in V (Ii ).
Again our goal is to bound the number of table entries at each node t ∈ V (T ) by nO(w) , so we
focus on the intersection of I with the crossing graph Gt,t̄ . There are several reasons why Ii can
have a nonempty intersection with the crossing graph Gt,t̄ : If precisely one of xi and yi is contained
in Vt , then the path Pi must cross the boundary of Gt . If both xi and yi are contained in Vt (V̄t ),
yet Pi uses a vertex of V̄t (Vt ), then it crosses the boundary of Gt .
We now turn to the definition of the table indices. Let us first point out what table indices
in the resulting algorithm for Induced Disjoint Paths have in common with the indices in the
algorithm for Longest Induced Path and we refer to Section 3.1 for the motivation and details.
These similarities arise since in both problems, the intersection of a solution with a crossing graph
Gt,t̄ is an induced disjoint union of paths.
- The intersection of I with the edges of Gt,t̄ is S, an induced disjoint union of paths where
each component contains at least one edge.
- M is a minimal vertex cover of Gt,t̄ − V (S) such that M ∩ V (S) = ∅.
The first important observation to be made is that by Lemma 4, the number of components of
S is linearly bounded in w and hence at most O(w) paths of P can have a nonempty intersection
with Gt,t̄ . We need to store information about which path Pi (resp., to which Ii ) the components
of S correspond to. To do so, another part of the index will be a labeling function λ : C(S) → [k],
whose purpose is to indicate that each component C ∈ C(S) is contained in Iλ(C) . Remark that we
just observed that each such λ contains at most O(w) entries.
Let i ∈ [k]. Again, we need to indicate how (some of) the components of S are connected via Ii
in G[Vt ]. As before, we do so by considering a pairing of the vertices in S[Vt ] that have degree one in
S, however in this case we also have to take into account the labeling function λ. That is, two such
vertices s and t can only be paired if they belong to the same induced disjoint union of paths Ii .
In accordance with the above discussion, we define the table entries as follows. We let
T [t, (S, M, λ, Qλ )] = 1 if and only if the following conditions are satisfied.
14

(i) There is an induced disjoint union of paths I = (I1 , . . . , Ik ) in G[Vt ∪ bd(V̄t )], such that for
i 6= j, Ii does not contain a vertex adjacent (in G) to a vertex in Ij . For each i ∈ [k], we have
that if vi ∈ {xi , yi } ∩ Vt , then vi ∈ Ii . Furthermore, vi has degree one in Ii .
(ii) (a) E(I) ∩ E(Gt,t̄ ) = E(S).
(b) λ : C(S) → [k] is a labeling function of the connected components of S, such that for each
component C ∈ C(S), λ(C) = i if and only if C ⊆ Ii .
(iii) M is a minimal vertex cover of Gt,t̄ − V (S) such that V (I) ∩ M = ∅.
(iv) Let D denote the set of vertices in S[Vt ] that have degree one in S and let Xt = X ∩ Vt .
Then, Qλ is a pairing (i.e. a partition into pairs) of the vertices in D4Xt with the following
properties.3
(a) (s, t) ∈ Qλ if and only if there is a path from s to t in I[Vt ]. Note that this implies that
(s, t) ∈ Qλ only if both s and t belong to the same Ii for some i ∈ [k] and in particular
only if s, t ∈ V (λ−1 (i)) ∪ {xi , yi }.
(b) For each i ∈ [k], (xi , yi ) ∈ Qλ only if λ−1 (i) = ∅, i.e. no component of S has label i.
We now show that the answer to the problem can be obtained from inspecting the table entries
stored in the root of T .
Proposition 10. G contains a set of vertex-disjoint induced paths P = (P1 , . . . , Pk ), where Pi is
an (xi , yi )-path for each i ∈ [k] and for j =
6 i, no vertex in Pi is adjacent to a vertex in Pj , if and
only if T [r, (∅, ∅, ∅, Q∅ )] = 1, where Q∅ = {(x1 , y1 ), . . . , (xk , yk )}.
Proof. Suppose that P = (P1 , . . . , Pk ) is a solution to Induced Disjoint Paths, i.e. P satisfies
the conditions of the proposition. First note that since Vr = V and bd(V¯r ) = ∅, G[Vr ∪ bd(V¯r )] = G.
This implies that P satisfies the conditions stated in Part (i) of the definition of a table entry being
set to 1. (Clearly, each terminal vi ∈ {xi , yi } is contained in Vr = V and has degree one in Pi .)
Since bd(V¯r ) = ∅, it follows that Gr,r̄ = ∅ and hence, S = ∅, M = ∅ and λ = ∅. Since each Pi is an
(induced) (xi , yi )-path and Q∅ pairs terminals (xi , yi ) for each i ∈ [k] by assumption, Q∅ satisfies
Part (iv) of the definition of a table entry being set to 1. Remark that Part (iv.b) is satisfied since
λ = ∅ and hence λ−1 (i) = ∅ for all i ∈ [k]. It follows that T [r, (∅, ∅, ∅, Q∅ )] = 1.
Now suppose that T [r, (∅, ∅, ∅, Q∅ )] = 1. Then by Part (i) of the definition of the table entries,
there is an induced disjoint union of paths I = (I1 , . . . , Ik ) in G[Vr ∪ bd(V¯r )] = G such that for each
i 6= j, no vertex in Ii is adjacent to a vertex in Ij . Furthermore, for each i ∈ [k], {xi , yi } ⊆ V (Ii ),
and both xi and yi have degree one in Ii . Since Q∅ pairs all (xi , yi ), Part (iv) allows us to conclude
that each Ii is an (xi , yi )-path.
Again, we denote by St the set of all induced unions of paths on at most 4w vertices in Gt,t̄ , for
S ∈ St and by Mt,S the set of all minimal vertex covers of Gt,t̄ − V (S). We let ΛS denote the set
of all labeling functions of the connected components of S and for λ ∈ ΛS by Qt,S,λ the set of all
pairings in accordance with Part (iv) of the table definition.
3
We denote by ‘4’ the symmetric difference, i.e. D4Xt = (D ∪ Xt ) \ (D ∩ Xt ). Qλ is a pairing on D4Xt , since if
a terminal vi is contained in D, it is supposed to be paired ‘with itself’: Since vi has degree one in Ii by (i) and is
incident to an edge in S, vi cannot be paired with another vertex.

15

Proposition 11. For each t ∈ V (T ), there are at most nO(w) table entries in Tt and they can be
enumerated in time nO(w) .
Proof. By the proof of Proposition 7, we know that |St | ≤ nO(w) and |Mt,S | ≤ O(n4w ). Since
Lemma 4 also bounds the number of connected components in S ∈ St by O(w), we can conclude
that |ΛS | ≤ k O(w) , since then for each λ ∈ ΛS , λ−1 (i) 6= ∅ for at most O(w) values of i ∈ [k]. The
same reasoning can be applied to count |Qt,S,λ |, since each j ∈ [k] such that λ−1 (j) = ∅ allows no
further choices for pairings in Qt,S,λ : Either both xj and yj are contained in Vt and we pair them,
or neither of them is contained in Vt and we disregard them. We can conclude that |Qt,S,λ | ≤ wO(w) .
To summarize, there are at most
O(n4w ) · nO(w) · k O(w) · wO(w) = nO(w)
entries in Tt for each t ∈ V (T ). Note that even if k = O(n), we obtain a bound of nO(w) on the
number of table entries stored at each node t ∈ V (T ). The time bound on the enumeration of the
indices follows from the same argument given in the proof of Proposition 7.
We now explain how the table entries Tt are computed for each t ∈ V (T ).
Leaves of T . Let t ∈ V (T ) be a leaf of T and v = L−1 (t). Any nonempty intersection of an
induced disjoint union of paths with Gt,t̄ is either a single edge using v or a path on two edges
having v as the middle vertex. Hence, all nonempty S such that the corresponding table entry is to
1 or a path on two edges with v as
1 are either a single edge using v, and we denote this set by St,v
2
the middle vertex and we denote this set by St,v .
1 . Since G − V (S) has no edges, M = ∅. If a solution intersects S, this means
Suppose S ∈ St,v
t,t̄
that v is a terminal vertex, i.e. v ∈ {xi∗ , yi∗ } for some i∗ ∈ [k]. Hence, (with a slight abuse of
notation) λ(S) = i∗ and since v is the only degree one vertex in S[Vt ], Qλ = ∅.
2 . Again, G − V (S) has no edges, so M = ∅. Let w , w be the vertices
Now suppose S ∈ St,v
1
2
t,t̄
in S other than v. We distinguish the following cases.
Case L1 (no terminal). If neither of w1 and w2 is a terminal vertex, then S can be a subgraph
of any (xi , yi )-path, so we allow all choices of λ(S) = i for i ∈ [k].
Case L2 (one terminal). If precisely one of w1 and w2 is a terminal vertex for some i∗ ∈ [k],
then the only choice for λ is such that λ(S) = i∗ .
Case L3 (two terminals, same path). If {w1 , w2 } = {xi∗ , yi∗ } for some i∗ ∈ [k], then the only
choice for λ is such that λ(S) = i∗ . Note that if w1 ∈ {xi , yi } and w2 ∈ {xj , yj } for i 6= j,
then S is not a valid partial solution.
In all of the above cases, there is no degree one vertex in S[Vt ], so Qλ = ∅.
Eventually, we have to consider the cases when no edge of Gt,t̄ is used in a partial solution. Note
that this is only possible if v is not a terminal vertex. The choices for the minimal vertex covers are
then {v} and N (v) and since S = ∅, it follows that λ = ∅ and Qλ = ∅.

16

To summarize, we set the table entries in Tt as follows.

1 , M = ∅, λ(S) = i∗ , Q = ∅ and v ∈ {x ∗ , y ∗ }
1, if S ∈ St,v
i
i
λ



2 , M = ∅, λ(S) = i for some i ∈ [k], Q = ∅

1,
if
S
∈
S
λ

t,v



and {w1 , w2 } ∩ X = ∅ (Case L1)



2 , M = ∅, λ(S) = i∗ , Q = ∅

1,
if S ∈ St,v

λ
T [t, (S, M, λ, Qλ )] =
/ X where {j1 , j2 } = [2] (Case L2)
and wj1 ∈ {xi∗ , yi∗ }, wj2 ∈

2 , M = ∅, λ(S) = i∗ , Q = ∅


1, if S ∈ St,v
λ




and {w1 , w2 } = {xi∗ , yi∗ } (Case L3)




/X
 1, if S = ∅, M ∈ {{v}, N (v)}, λ = ∅, Qλ = ∅ and v ∈

0, otherwise
Internal nodes of T . We argue that for each internal node t ∈ V (T ) and each index
(S, M, λ, Qλ ) ∈ St × Mt,S × ΛS × Qt,S,λ , the value of the table entry T [It ] can be computed
in complete analogy with the algorithm for Longest Induced Path (LIP). In particular, it can be
viewed as performing for each i ∈ [k] the steps presented in the algorithm of LIP. Some attention
must be devoted to guaranteeing that there is no edge between two components labeled i and j
(where i =
6 j). However, as outlined below, partial solutions to the two problems represented by their
respective indices have almost exactly the same structure and in that sense, the routine presented
for LIP already captures this requirement. More precisely, the only way in which unwanted edges
could be added during the join in Induced Disjoint Paths (IDP) is if they cross the boundary.
By definition, there will never be any unwanted edges in the intersection of a partial solution with
the boundary in both problems. Subsequently, the only place where they can appear is between
intermediate vertices of a combined partial solution. In the join of LIP, we explicitly ensure that no
edges between intermediate vertices appear (via the minimal vertex cover) and in the same way we
can enforce in IDP that no edges appear between intermediate vertices of components labeled i and
j (for i 6= j) when combining two partial solutions.
We now argue in detail the similarity between the partial solution based on the definitions of
the table entries for the respective problems. Throughout the following, we refer to the conditions
stated in the definition of the table entries for Longest Induced Path by LIP(·) and for Induced
Disjoint Paths by IDP(·).
First, observe that in both cases, the intersection of a solution with the graph G[Vt ∪ bd(V̄t )] is
an induced disjoint union of paths I. The key difference between the two problems is that in LIP
we are interested in the solution size, whereas in IDP we are not and that in IDP we additionally
have to take into account to which (xi , yi )-path the components of I belong. Note that aside from
the size constraint, LIP(i) and IDP(i) express precisely the same thing if k = 1 in IDP and the entry
j in LIP takes the role of the fixed terminals in IDP.
LIP(ii) and IDP(ii.a) are in fact identical, in particular this means that the intersection S of
a partial solution with the crossing graph Gt,t̄ is the same in both problems. So to make the join
procedure described for LIP work for IDP in a way that it preserves Condition IDP(ii), we only
have to take into account the behavior of the labeling function λ introduced in IDP(ii.b). Note
that again, if k = 1 in IDP, then LIP(ii) and IDP(ii) express precisely the same thing. LIP(iii) and
IDP(iii) are as well identical, so all parts of the algorithm for LIP that ensure that this condition
holds can immediately applied (and argued for) in the join of IDP.
It remains to argue the similarity of LIP(iv) and IDP(iv). Since we do not know the endpoints
of the induced path we are looking for in LIP, whereas in IDP we do, slightly differing languages
It ..=

17

were used to express the properties of the pairings. In LIP(iv), two vertices are paired if contracting
all edges in I − E(Gt,t̄ ) leaves an edge between the two vertices in the graph. But this happens
precisely when there is a path between these two vertices in I[Vt ], the condition stated in IDP(iv.a).
The remainder of IDP(iv) is devoted to including the terminals in the pairings, so the necessary
modifications in the algorithm of LIP to work for IDP such that it respects IDP(iv) are straightforward. Note that again if k = 1 in IDP, LIP(iv) and IDP(iv) express the same thing where j takes
the role of the terminals contained in Vt .
By the above discussion, the fact that we enumerate all possible solutions in the leaves of T ,
Propositions 10 and 11 and in the light of the correctness (and runtime) of the join of the algorithm
for Longest Induced Path, we have the following theorem.
Theorem 12. There is an algorithm that given a graph G on n vertices, pairs of terminal vertices
(x1 , y1 ), . . . , (xk , yk ) and a branch decomposition (T, L) of G, solves Induced Disjoint Paths in
time nO(w) , where w denotes the mim-width of (T, L).

3.3

H-Induced Topological Minor

Let G be a graph and uv ∈ E(G). We call the operation of replacing the edge uv by a new vertex x
and edges ux and xv the edge subdivision of uv. We call a graph H a subdivision of G if it can be
obtained from G by a series of edge subdivisions. We call H an induced topological minor of G if a
subdivision of H is isomorphic to an induced subgraph of G.
H-Induced Topological Minor/Mim-Width
Input: A graph G with branch decomposition (T, L)
Parameter: w ..= mimw(T, L)
Question: Does G contain H as an induced topological minor?
Theorem 13. There is an algorithm that given a graph G on n vertices and a branch decomposition
(T, L) of G, solves H-Induced Topological Minor in time nO(w) , where H is a fixed graph and
w the mim-width of (T, L).
Proof. Let H be a fixed graph. To solve H-Induced Topological Minor, we have to find a
map ϕ from the vertices of H to a set of vertices in G such that there is an edge in {x, y} if and
only if there is an induced path between ϕ(x) and ϕ(y) in G such that additionally, for each pair
P1 , P2 of such paths, no vertex in P1 is adjacent to a vertex in P2 . We do so by guessing to which
vertices in G the vertices of H are mapped and after some preprocessing, we run the algorithm for
Induced Disjoint Paths with (at most) |E(H)| pairs of terminals to find the induced paths in G
corresponding to the edges in H.
Step 1 (Branching). For each vertex x ∈ V (H), we guess the corresponding vertex vx ∈ V (G)
of x, i.e. ϕ(x) = vx . Hence we require S
that for all x, y ∈ V (H), x = y ⇔ vx = vy and
that degG (vx ) ≥ degH (x). We let X ..= x∈V (H) vx . Furthermore, for each x ∈ V (H) and
neighbor y of x, we guess a distinct corresponding neighbor vx,y in G. Note that since
degG (vx ) ≥ degH (x) for all x ∈ V (H), there are sufficiently many such vertices in G to choose
from. The vertex vx,y is the vertex adjacent
to vx in the induced
S
S path in G corresponding to
.
.
.
.
the edge {x, y} in H. We let Yx = y∈NH (x) vx,y and Y = x∈V (H) Yx and we refer to the
vertices in Y as the neighbor vertices. We branch on each such choice of X ∪ Y .

18

G

w

vx
vx,z

vy
vy,z

vz,x

vz

vz,y

H
x

y

z

z0

vz0

Figure 4: An example Yes-instance of H-Induced Topological Minor. Note that vy,z 0 = vz 0
and vz 0 ,y = vy since {vy , vz 0 } ∈ E(G) in accordance with Step 2(a). For each of the remaining edges
in H there are precisely two corresponding edges each in G, illustrating Step 2(b). Furthermore,
w = vx,y = vy,x , illustrating the special case dealt with in Step 2(c).
Step 2 (Preprocessing according to X ∪ Y ). In this step we check whether the current choice
of X and Y is valid and prepare the current instance for the call to the algorithm of Induced
Disjoint Paths.
(a) For each edge {x, y} ∈ E(H), if {vx , vy } ∈ E(G), then we remove the edge {x, y}
from H without changing the answer to the problem: {vx , vy } is the induced path
in G corresponding to the edge {x, y}. If on the other hand, {x, y} ∈
/ E(H) but
{vx , vy } ∈ E(G), then we discard this choice of X ∪ Y .
(b) We check whether for each edge {x, y} ∈ E(H) there are precisely two corresponding
edges, namely {vx , vx,y } and {vy , vy,x } in G and that G[X ∪ Y ] induces no further edges.
In particular, if G[X ∪ Y ] does contain any additional edges, we discard this choice of X
and Y .
(c) If there is a vertex w ∈ V (G) which is chosen
T more than once as a neighbor vertex, i.e.
there exists a set A ⊆ V (H) such that w ∈ a∈A Ya with |A| > 1, then we proceed only
if A = {x, y} for some x, y ∈ V (H) and such that w = vx,y = vy,x . In that case, we
remove the edge {x, y} from H without changing the answer to the problem: The set
{vx , w, vy } induces the path in G corresponding to the edge {x, y}. Furthermore, we
remove the vertices in N (w) \ X from G, since these vertices cannot be used by any other
path corresponding to an edge in H.
Step 3 (Execution of IDP-algorithm). We run the algorithm for Induced Disjoint paths
on G − X with pairs of terminals (vx,y , vy,x ){x,y}∈E(H) . (Note that some edges of H might have
been removed in Steps 2(a) and 2(c) and that some vertices of G might have been removed in
Step 2(c).)
Step 4 (Return). We let the algorithm return Yes if at least one run of Induced Disjoint
Paths in Step 3 returned Yes, and No otherwise.
We now analyze the runtime of the algorithm. In Step 1, we branch in nO(|E(H)|) ways, the
number of choices for the sets X and Y . The checks in Step 2 can be performed in time polynomial
in n and each execution of the algorithm for Induced Disjoint Paths in Step 3 takes time nO(w)
by Theorem 12. So the total runtime of the algorithm is nO(|E(H)|) · nO(w) = nO(w) , as H is fixed.

19

References
[1] Rémy Belmonte, Petr A. Golovach, Pinar Heggernes, Pim van ’t Hof, Marcin Kaminski, and
Daniël Paulusma. Detecting fixed patterns in chordal graphs in polynomial time. Algorithmica,
69(3):501–521, 2014.
[2] Rémy Belmonte and Martin Vatshelle. Graph classes with structured neighborhoods and
algorithmic applications. Theoret. Comput. Sci., 511:54–65, 2013.
[3] Binh-Minh Bui-Xuan, Jan Arne Telle, and Martin Vatshelle. Fast dynamic programming
for locally checkable vertex subset and vertex partitioning problems. Theoret. Comput. Sci.,
511:66–76, 2013.
[4] Marek Cygan, Fedor V. Fomin, Lukasz Kowalik, Daniel Lokshtanov, Dániel Marx, Marcin
Pilipczuk, Michal Pilipczuk, and Saket Saurabh. Parameterized Algorithms. Springer, 2015.
[5] Reinhard Diestel. Graph theory, volume 173 of Graduate Texts in Mathematics. Springer,
Heidelberg, fourth edition, 2010.
[6] Rodney G. Downey and Michael R. Fellows. Fundamentals of Parameterized Complexity. Texts
in Computer Science. Springer, 2013.
[7] Jirı́ Fiala, Marcin Kaminski, Bernard Lidický, and Daniël Paulusma. The k-in-a-path problem
for claw-free graphs. Algorithmica, 62(1-2):499–519, 2012.
[8] Fanica Gavril. Algorithms for maximum weight induced paths. Inform. Process. Lett., 81(4):203
– 208, 2002.
[9] Petr A. Golovach, Daniël Paulusma, and Erik Jan van Leeuwen. Induced disjoint paths in
at-free graphs. In SWAT 2012, pages 153–164, 2012.
[10] Petr A. Golovach, Daniël Paulusma, and Erik Jan van Leeuwen. Induced disjoint paths in
circular-arc graphs in linear time. Theor. Comput. Sci., 640:70–83, 2016.
[11] Petr Hliněný, Sang-il Oum, Detlef Seese, and Georg Gottlob. Width parameters beyond
tree-width and their applications. The Computer Journal, 51(3):326–362, 2008.
[12] Tetsuya Ishizeki, Yota Otachi, and Koichi Yamazaki. An improved algorithm for the longest
induced path problem on k-chordal graphs. Discrete Appl. Math., 156(15):3057 – 3059, 2008.
[13] Dong Yeap Kang, O-joung Kwon, Torstein J. F. Strømme, and Jan Arne Telle. A width
parameter useful for chordal and co-comparability graphs. In WALCOM 2017, pages 93–105,
2017.
[14] Ken-ichi Kawarabayashi and Yusuke Kobayashi. The Induced Disjoint Paths Problem, pages
47–61. Springer Berlin Heidelberg, Berlin, Heidelberg, 2008.
[15] Dieter Kratsch, Haiko Müller, and Ioan Todinca. Feedback vertex set and longest induced path
on at-free graphs. In WG 2003, pages 309–321, 2003.
[16] Sridhar Natarajan and Alan P. Sprague. Disjoint paths in circular arc graphs. Nordic J. of
Computing, 3(3):256–270, September 1996.
20

[17] Neil Robertson and Paul D. Seymour. Graph minors. XIII. The disjoint paths problem. J.
Comb. Theory, Ser. B, 63(1):65–110, 1995.
[18] Sigve Hortemo Sæther and Martin Vatshelle. Hardness of computing width parameters based
on branch decompositions over the vertex set. Theor. Comput. Sci., 615:120–125, 2016.
[19] Jan Arne Telle and Andrzej Proskurowski. Algorithms for vertex partitioning problems on
partial k-trees. SIAM J. Discrete Math., 10(4):529–550, 1997.
[20] Martin Vatshelle. New width parameters of graphs. Ph.D. thesis, University of Bergen, 2012.

21

