Chordal Editing is Fixed-Parameter Tractable

Graph modification problems are typically asked as follows: is there a small set of operations that transforms a given graph to have a certain property. The most commonly considered operations include vertex deletion, edge deletion, and edge addition; for the same property, one can define significantly different versions by allowing different operations. We study a very general graph modification problem which allows all three types of operations: given a graph $G$ and integers $k_1$, $k_2$, and $k_3$, the \textsc{chordal editing} problem asks whether $G$ can be transformed into a chordal graph by at most $k_1$ vertex deletions, $k_2$ edge deletions, and $k_3$ edge additions. Clearly, this problem generalizes both \textsc{chordal vertex/edge deletion} and \textsc{chordal completion} (also known as \textsc{minimum fill-in}). Our main result is an algorithm for \textsc{chordal editing} in time $2^{O(k\log k)}\cdot n^{O(1)}$, where $k:=k_1+k_2+k_3$ and $n$ is the number of vertices of $G$. Therefore, the problem is fixed-parameter tractable parameterized by the total number of allowed operations. Our algorithm is both more efficient and conceptually simpler than the previously known algorithm for the special case \textsc{chordal deletion}.


Introduction
A graph is chordal if it contains no hole, that is, an induced cycle of at least four vertices. After more than half century of intensive investigation, the properties and the recognition of chordal graphs are well understood. Their natural structure earns them wide applications, some of which might not seem to be related to graphs at first sight. During the study of Gaussian elimination on sparse positive definite matrices, Rose [23,24] formulated the CHORDAL COMPLETION problem, which asks for the existence of a set of at most k edges whose insertion makes a graph chordal, and showed that it is equivalent to MINIMUM FILL-IN. Balas and Yu [1] proposed a heuristics algorithm for the maximum clique problem by first finding a maximum spanning chordal subgraph (see also [27]). This is equivalent to the CHORDAL EDGE DELETION problem, which asks for the existence of a set of at most k edges whose deletion makes a graph chordal. Dearing et al. [8] observed that a maximum spanning chordal subgraph can also be used to find maximum independent set and sparse matrix completion. This observation turns out to be archetypal: many NP-hard problems (coloring, maximum clique, etc.) are known to be solvable in polynomial time when restricted to chordal graphs, and hence admit a similar heuristics algorithm.
Cai [4] extended this to the exact setting. He studied the coloring problems on graphs close to certain graph classes. In particular, he asked the following question: given a chordal graph G on n vertices with k additional edges (or vertices), can we find a minimum coloring for G in f(k) · n O(1) time? The edge version was resolved by Marx [18] affirmatively. His algorithm needs as part of the input the additional edges; to find them is equivalent to solving the CHORDAL EDGE DELETION problem. One may observe that though with slightly different purpose, the inspiration behind [1,8] and [4] are exactly the same.
All aforementioned three modification problems , unfortunately but understandably, are NP-hard [28,21,14,16]. Therefore, early work of Kaplan et al. [13] and Cai [3] focused on their parameterized complexity, and proved that that the CHORDAL COMPLETION problem is fixed-parameter tractable. Recall that a problem, parameterized by k, is fixed-parameter tractable (FPT) parameterized by k if there is an algorithm with runtime f(k) · n O(1) , where f is a computable function depending only on k [10]. Marx [19] showed that the complementary deletion problems, both edge and vertex versions, are also FPT. Here we consider the generalized CHORDAL EDITING problem that combines all three operations: can a graph be made chordal by deleting at most k 1 vertices, deleting at most k 2 edges, and adding at most k 3 edges. On the formulation we have two quick remarks. First, it does not make sense to add new vertices, as chordal graphs are hereditary (i.e., any induced subgraph of a chordal graph is chordal). Second, the budgets for different operations are not transferable, as otherwise it degenerates to CHORDAL VERTEX DELETION. Our main result establishes the fixed-parameter tractability of CHORDAL EDITING parameterized by k := k 1 + k 2 + k 3 .

Theorem 1.1 (Main result).
There is a 2 O(k log k) · n O(1) -time algorithm for deciding, given an n-vertex graph G, whether there are a set V − of at most k 1 vertices, a set E − of at most k 2 edges, and a set E + of at most k 3 non-edges, such that the deletion of V − and E − and the addition of E + make G a chordal graph.
As a corollary, our algorithm implies the fixed-parameter tractability of CHORDAL EDGE EDITING, which allows both edge operations but not vertex deletions-we can try every combination of k 2 and k 3 where k 2 + k 3 does not exceed the given bound-resolving an open problem asked by Mancini [17]. Moreover, we get a new FPT algorithm for the special case CHORDAL DELETION, and it is far simpler and faster than the algorithm of [19].
Motivation. In the last two decades, graph modification problems have received intensive attention, and promoted themselves as an independent line of research in both parameterized computation and graph theory. For graphs representing experimental data, the edge additions and deletions are commonly used to model false negatives and false positives respectively, while vertex deletions can be viewed as the detection of outliers. In this setting, it is unnatural to consider any single type of errors, while the CHORDAL EDITING problem formulated above is able to encompass both positive and negative errors, as well as outliers. We hope that it will trigger further studies on editing problems to related graph classes, especially interval graphs and unit interval graphs.
Further, since it is generally acknowledged that the study of chordal graphs motivated the theory of perfect graphs [12,2], the importance of chordal graphs merits such a study from the aspect of structural graph theory.

Related work.
Observing that a large hole cannot be fixed by the insertion of a small number of edges, it is easy to devise a bounded search tree algorithm for the CHORDAL COMPLETION problem [13,3]. No such simple argument works for the deletion versions: the removal of a single vertex/edge suffices to break a hole of an arbitrary length. The way Marx [19] showed that this problem is FPT is to (1) prove that if the graph contains a large clique, then we can identify an irrelevant vertex whose deletion does not change the problem; and (2) observe that if the graph has no large cliques, then it has bounded treewidth, so the problem can be solved by standard techniques, such as the application of Courcelle's Theorem. In contrast, our algorithm uses simple reductions and structural properties, which reveal a better understanding of the deletion problems, and easily extend to the more general CHORDAL EDITING problem.
Of all the vertex deletion problems, we would like to single out FEEDBACK VERTEX SET, INTERVAL VERTEX DELETION, and UNIT INTERVAL VERTEX DELETION for a special comparison. Their commonality with CHORDAL VERTEX DELETION lies in the fact that the graph classes defining these problems are proper subsets of chordal graphs, or equivalently, their forbidden subgraphs contain all holes as a proper subset. All these problems admit single-exponential FPT algorithms of runtime c k · n O(1) , where the constant c is 3.83 for FEEDBACK VERTEX SET [6], 10 for INTERVAL VERTEX DELETION [7], and 6 for UNIT INTERVAL VERTEX DELETION [25], respectively. For these problems, we can dispose of other forbidden subgraphs (i.e., triangles, small witnesses for asteroidal triples, and claws) first and their nonexistence simplifies the graph structure and significantly decrease the possible configurations on which we conduct branching (all known algorithms use bounded search trees). Interestingly, long holes, the main difficulty of the current paper, do not bother us at all in the three algorithms mentioned above. This partially explains why a c k · n O(1) -time algorithm for CHORDAL VERTEX DELETION is so elusive.
Our techniques. As a standard opening step, we use the iterative compression method introduced by Reed et al. [22] and concentrate on the compression problem. Given a solution (V − , E − , E + ), we can easily find a set M of at most |V − | + |E − | + |E + | vertices such that G − M is chordal. A clique tree decomposition of G − M will be extensively employed in the compression step, 1 where short holes can be broken by simple branching, and the main technical idea appears in the way we break long holes. We show that a shortest hole H can be decomposed into a bounded number of segments, where the internal vertices of each segment, as well as the part of the graph "close" to them behave in a well-structured and simple way with respect to their interaction with M. To break H, we have to break some of the segments, and the properties of the segments allow us to show that we need to consider only a bounded number of canonical separators breaking these segements. Therefore, we can branch on choosing one of these canonical separators and break the hole using it, resulting in an FPT algorithm.
Notation. All graphs discussed in this paper shall always be undirected and simple. A graph G is given by its vertex set V(G) and edge set E(G). We use the customary notation u ∼ v to mean uv ∈ E(G), and by v ∼ X we mean that v is adjacent to at least one vertex in X. Two vertex sets X and Y are completely connected if x ∼ y for each pair of x ∈ X and y ∈ Y. A hole H has the same number of vertices and edges, denoted by |H|. We use N U (v) as a shorthand for N(v) ∩ U, regardless of whether v ∈ U or not; moreover, A set S of vertices is an x-y separator if x and y belong to different components in the subgraph G − S; it is minimal if no proper subset of S is an x-y separator. Moreover, S is a minimal separator if there exists some pair of x, y such that S is a minimal x-y separator. A graph is chordal if and only if every minimal separator in it induces a clique [9].
Let T be a tree whose vertices, called bags, correspond to the maximal cliques of a graph G. With the customary abuse of notation, the same symbol K is used for a bag in T and its corresponding maximal clique of G. Let T(x) denote the subgraph of T induced by all bags containing x. The tree T is a clique tree of G if for any vertex x ∈ V(G), the subgraph T(x) is connected. It is known that the intersection of any pair of adjacent bags K and K of T makes a minimal separator; in particular, it is a separator for any pair of vertices x ∈ K \ K and y ∈ K \ K. A vertex is simplicial if and only if it belongs to exactly one maximal clique; thus, any non-simplicial vertex appears in some minimal separator(s) [15].
In a clique tree T, there is a unique path between each pair of bags, and its length is called the distance of this pair of bags; the distance between two subtrees is defined to be the shortest distance between each pair of bags from these two subtrees. By definition, a pair of vertices u, v of G is adjacent if and only if T(u) and T(v) intersect. Given a pair of nonadjacent vertices u and v, there exists a unique path P =(K u , . . . , K v ) connecting T(u) and T(v), where K u and K v are the only bags that contain u and v respectively.

Outline of the algorithm
A subset of vertices is called a hole cover of G if its deletion makes G chordal. We say that (V − , E − , E + ), where V − ⊆ V(G) and E − ⊆ E(G) and E + ⊆ V(G) 2 \ E(G), is a chordal editing set of G if the deletion of V − and E − and the addition of E + , applied successively, make G chordal. Its size is defined to be the 3-tuple (|V − |, |E − |, |E + |), and we say that it is smaller than (k 1 , k 2 , k 3 ) if all of |V − | k 1 and |E − | k 2 and |E + | k 3 hold true and at least one inequality is strict. Note that since chordal graphs are hereditary, it does not make sense to add new vertices. The main problem studied in the paper is formally defined as follows.
CHORDAL EDITING (G, k 1 , k 2 , k 3 ) Input: A graph G and three nonnegative integers k 1 , k 2 , and k 3 . Task: Either construct a chordal editing set (V − , E − , E + ) of G that has size at most (k 1 , k 2 , k 3 ), or report that no such a set exists.
One might be tempted to define the editing problem by imposing a combined quota on the total number of operations, i.e., a single parameter k = k 1 + k 2 + k 3 , instead of three separate parameters. However, this formulation is computationally equivalent to CHORDAL VERTEX DELETION in a trivial sense, as vertex deletions are clearly preferable to both edge operations.
We use the technique iterative compression: we define and solve a compression version of the problem first and argue that this implies the fixed-parameter tractability of the original problem. In the compression problem a hole cover M of bounded size is given in the input, making the problem somewhat easier: as G − M is chordal, we have useful structural information about the graph. Note that the definition below has a slightly technical (but standard) additional condition, i.e., we are not allowed to delete a vertex in M.
Input: A graph G, three nonnegative integers k 1 , k 2 , and k 3 , and a hole cover M of G whose size is at most k 1 + k 2 + k 3 + 1. Task: Either construct a chordal editing set (V − , E − , E + ) of G such that its size is at most (k 1 , k 2 , k 3 ) and V − is disjoint from M, or report that no such a set exists.    The hole cover M is called the modulator of this instance. We use k := k 1 + k 2 + k 3 to denote the total numbers of operations. The main part of this paper will be focused on an algorithm for CHORDAL EDITING COMPRESSION. Its outline is described in Figure 1. We will endeavor to prove the following theorem.
Let us briefly explain here steps 1 and 2 of the algorithm for CHORDAL EDITING COMPRESSION, while leaving the main technical part, step 3, for later sections. We can find in time O(n 3 (n + m)) a shortest hole H as follows: we guess three consecutive vertices {v 1 , v 2 , v 3 } of H, and then search for the shortest v 1 In order to destroy a hole H, we need to perform at least one of the possible |V(H) \ M| vertex deletions (vertices in M are avoided here), |H| edge deletions, or O(|H| 2 ) edge insertions that affect H. Therefore, if the length of H is no more than k + 3, then we can fix it easily by branching into O(k 2 ) direction. Hence we may assume |H| k + 4 > k 3 + 3. Such a hole cannot be fixed with edge additions only; thus at least one deletion has to occur on this hole. As we shall see in Section 3, the hole can be divided into a bounded number of "segments" (paths), of which at least one needs to be "broken." In our case, breaking a segment means more than deleting one vertex or edge from it, and it needs a strange mixed form of separation: we have to separate two vertices by removing both edges and vertices. We study this notion of mixed separation on chordal graphs in Section 4. Finally, we show in Section 5 that there is a bounded number of canonical ways of breaking a segment and we may branch on choosing one segment and one of the canonical ways of breaking it. This completes the proof of Theorem 2.1, which enables us to prove Theorem 1.1.
Proof of Theorem 1.1. Let v 1 , . . . , v n be an arbitrary ordering of V(G), and let G i be the subgraph induced by the first i vertices. Note that G n = G. The algorithm described in Figure 2 iteratively finds a chordal editing set of G i from i = 1 to n; the solution for G i is used in solving G i+1 . The algorithm maintains as an invariant that (V − , E − , E + ) is a chordal editing set of size at most (k 1 , k 2 , k 3 ) of G i for the current i. For each G i , note that |X| k + 1, step 3 generates at most 2 O(k) instances of CHORDAL EDITING COMPRESSION, each with parameter at most (k 1 , k 2 , k 3 ), and thus can be solved in 2 O(k log k) · n O(1) time. There are n iterations, and the total runtime of the algorithm is thus 2 O(k log k) · n O(1) .

Segments
We need to define a hierarchy of vertex sets V 0 , V 1 , and V 2 . Each set is a subset of the preceding one, and all of them induce chordal subgraphs. Let A denote the set of common neighbors of the shortest hole H found in step 1 (Figure 1), and define A M = A ∩ M and A 0 = A \ M. We can assume that A induces a clique: if two vertices x, y ∈ A are nonadjacent, then together with two nonadjacent vertices v 1 and v 3 of H, they form a 4-hole xv 1 yv 3 x. The following observation follows from the fact that H is the shortest hole of G. Proposition 3.1. A vertex not in A is adjacent to at most three vertices of H and these vertices have to be consecutive in H.

The first set is defined by
, and H is disjoint from A 0 . Since |H| k + 4 > |M| and G 0 is chordal, the hole H intersects both M and V 0 . Every component of H − M is an induced path of G 0 , and there are at most |M| such paths. We divide each of these paths into O(k 2 ) parts; observing |M| = O(k), this leads to to a decomposition of where v i ∈ V 0 for 1 i p and the other neighbors of v 1 and v p in H (different from v 2 and v p−1 respectively) are in M. We restrict our attention to paths with p > 3 (as there is a trivial bound for shorter paths). For such paths, Proposition 3.1 implies that the distance Let us fix a clique tree T for the chordal subgraph G 0 . We take the unique path P of bags K 1 , . . . , K q that connects the disjoint subtrees T(v 1 ) and T(v p ) in T, where K 1 ∈ T(v 1 ) and K q ∈ T(v p ). The condition p > 3 implies that q > 2. The removal of K 1 and K q will separate T into a set of subtrees, one of which contains all K with 1 < < q; let T 1 denote this nonempty subtree. The second set, V 1 , is defined to be the union of all bags in T 1 and {v 1 , v p }. By definition and observing that V 1 fully contains P, it induces a connected subgraph.
We then focus on bags in P and their union. (One may have judiciously observed that these vertices induce an interval graph.) From the definition of clique tree, we can infer that v 1 and v p appear only in K 1 and K q respectively, while every internal vertex of P appears in more than one bags of P. For every i with 1 i p, we denote by first(i) (resp., last(i)) the smallest (resp., largest) index such that 1 q and v i ∈ K , e.g., first(1) = last(1) = first(2) = 1 and last(p − 1) = first(p) = last(p) = q. As P is an induced path, for each i with 1 < i < p, we have (1) < first(j)}. The third set, V 2 , is defined to be the union of vertices in all induced v 1 -v p paths in G 0 . Note that V 2 and A 0 are completely connected: given a pair of nonadjacent vertices x ∈ V 2 and y ∈ A 0 , we can find a hole of G − M that consists of y and part of a v 1 -v p path through x in G 0 . Since a vertex x is an internal vertex of an induced v 1 -v p path of G 0 if and only if it is in some minimal v 1 -v p separator of G 0 , we have (noting q > 2) and only if it appears in more than one bags of P. Moreover, The definitions of V 0 and G 0 depend upon the hole H, while the definitions of V 1 and V 2 depend upon both the hole H and the path P. In this paper, the hole H will be fixed, and we are always concerned with a particular path of H, which will be specified before the usage of V 1 and V 2 .
The set V 0 \ V 1 is easily understood, and we now consider V 1 \ V 2 . Given a pair of nonadjacent vertices x, y ∈ V 2 , we say that x lies to the left (resp., right) of y if the bags of P containing x have smaller (resp., greater) indices than those containing y. If an induced path of G[V 2 ] consists of three or more vertices, then its endvertices are nonadjacent and have a left-right relation. This relation can be extended to all pairs of consecutive (and adjacent) vertices x, y in this path, the one with smaller distance to the left endvertex of the path is said to the left of the other. It is easy to verify that these two definitions are compatible.

Lemma 3.3.
For any component C of the subgraph induced by V 1 \ V 2 , the set N V 0 (C) induces a clique and there exists such that 1 < < q and N V 0 (C) ⊆ K .
Proof. Consider a vertex x ∈ C, which is different from v 1 and v p . Since x ∈ V 1 , it appears in some bag of T 1 .
Recall that the only bag of T 1 that is adjacent to K 1 is K 2 . We argue first that x ∈ K 1 : recall that V 1 is disjoint from K 1 \ ({x} ∪ K 2 ), and thus if x ∈ K 1 then it has to be in K 2 as well, but then x ∈ V 2 (Proposition 3.2), contradicting that C ⊆ V 1 \ V 2 . For the same reason, x ∈ K q . As a result, It now suffices to show that N V 0 (C) induces a clique. Suppose for contradiction that there is a pair of  nonadjacent vertices x, y ∈ N V 0 (C). We can find an induced v 1 -v p path P through x and y; without loss of generality, let x lie to the left of y, i.e., P = v 1 · · · x · · · y · · · v p . Let x and y be the first and last vertices in P that are adjacent to C, and let x P y be an induced path with all internal vertices from C. Note that x either is x or lies to the left of x in P and y either is y or lies to the right of y, which imply x ∼ y . Thus v 1 · · · x P y · · · v p is an induced v 1 -v p path through C, which is impossible. This completes the proof.
Such a component C is called a branch of P, and we say that it is near to v i ∈ P if there is an with first(i) last(i) satisfying the condition of Lemma 3.3. In other words, C is near to v i ∈ P if and only if Applying Proposition 3.1 on any vertex in N V 0 (C), we conclude that a branch is near to at most three vertices of P. If there exists some hole passing through C, then C has to be adjacent to M: by Lemma 3.3 and recalling that V 2 and A 0 are completely connected, N V 0 (C) ∪ A 0 is a clique, and thus a hole cannot enter and leave C both via N V 0 (C) ∪ A 0 . The converse is not necessarily true: some branch that is adjacent to M might still be disjoint from all holes, e.g., if N(C) is a clique. This observation inspires us to generalize the definition of simplicial vertices to sets of vertices. It is easy to verify that a simplicial set of vertices is disjoint from all holes. This suggests that simplicial sets are irrelevant to CHORDAL EDITING problem and we may never want to add/delete edges incident to a vertex in a simplicial set. However, this is not true: as Figure 3 shows, we may need to add/delete such edges if N(X) was modified. As characterized by the following lemma, this is the only reason for touching it in the solution. In other words, a simplicial set X will only concern us after N(X) has been changed. We say that a chordal editing set (V − , E − , E + ) edits a set X ⊂ V(G) of vertices if either V − contains a vertex of X or E − ∪ E + contains an edge with at least one endpoint in X. We use a classic result of Dirac [9] stating that the graph obtained by identifying two cliques of the same size from two chordal graphs is also chordal. Proof. Let (V − , E − , E + ) be a minimal editing set of G such that E − does not contain any edge induced by N(U). We restrict the editing set to the subgraph G − U, i.e., we consider the set (V − \ U, E − \ (U × V(G)), E + \ (U × V(G))), and let G be the graph obtained by applying it to G.
Both of them contain the clique N(U) \ V − . Since G can be obtained from them by identifying N(U) \ V − , it is also chordal. Then by the minimality of (V − , E − , E + ), it must be the same as (V − \ U, E − \ (U × V(G)), E + \ (U × V(G))), and this proves this lemma. Now we are ready to define segments of the path P, which are delimited by some special vertices called junctions. By definition, a branch is simplicial in G 0 , but not necessarily simplicial in G.
(2) some branch near to v is adjacent to M \ A M ; (3) some branch near to v is not simplicial in G; or if v s and v t are the only junctions in it.
We point out that the four types are not exclusive, and one junction might be in more than one types. For a junction v of type (1) or (2), we say that the vertex in M \ A M used in its definition witnesses it. Let us briefly explain the intuition behind the definition of junctions and segments. We are now ready for the main result of this section that gives a cubic bound on the number of segments of H. It should be noted the constants-both the exponent and the coefficient-in the following statement are not tight, and the current values simplify the argument significantly. Recall that a vertex not in A sees at most three vertices in H, and they have to be consecutive. Theorem 3.6. If H contains more than |M| · (12k 2 + 87k + 75) segments, then we can either find a vertex that has to be in V − , or return "NO." Proof. We show that H contains at most |M| · (12k 2 + 87k + 75) junctions. Recall that there are at most |M| paths in H − M. To obtain a contradiction, we suppose that some path P of H − M contains 12k 2 + 87k + 75 junctions. Let us first attend to junctions of type (1) in P. Proof. We are proving a stronger statement of this claim, i.e., w witness at most 14 junctions of type (1) in the entire hole H. Suppose, for contradiction, that 15 vertices in H appear in some bag adjacent to w; let X be this set of vertices. Assume first that X is consecutive. At most 3 of them are adjacent to w, and they are consecutive in H. Thus, we can always pick 6 consecutive vertices from X that are disjoint from N H (w); let them be {v i , . . . , v i+5 }. By definition, there are two vertices u 1 , u 2 ∈ V 0 ∩ N(w) such that u 1 ∼ v i and u 2 ∼ v i+5 . It is easy to verify that u 2 ∼ v i+2 and u 1 ∼ v i+3 and u 1 ∼ u 2 . Therefore, we can find an induced u 1 -u 2 path with all interval vertices from {v i , . . . , v i+5 }. The length of this path is at least 3, and hence it makes a hole with w of length at most 9. Assume now that X is not consecutive in P, then we can pick a pair of nonadjacent vertices v i , v j from X such that the v ∈ X for every i < < j. There are two vertices u 1 , u 2 ∈ V 0 ∩ N(w) such that u 1 ∼ v i and u 2 ∼ v j . It is easy to verify that wu 1 v i · · · v j u 2 w is a hole. By assumption that |X| 15, we have j − i |H| − 13. In either case, we end with a hole strictly shorter than H. The contradictions prove this claim.

Claim 2.
If some vertex w ∈ M \ A M witnesses 5k + 75 junctions of types (1) and (2) in P, then we can return "NO." Proof. Let X be this set of junctions, we order them according to their indices in P and group each consecutive five from the beginning. We omit groups that contain junctions of type (1) witnessed by w, and in each remaining group, we pair the second and last vertices in it. According to Claim 1, we end with at least k + 1 pairs, which we denote by (v 1 , v r 1 ), · · · , (v k+1 , v r k+1 ), · · · .
For each pair (v j , v r j ), where 1 j k + 1, we construct a hole H j as follows. By definition, there is a branch C j (resp., C r j ) whose neighborhood in H is a proper subset of {v j −1 , v j , v j +1 } (resp., {v r j −1 , v r j , v r j +1 }). By the selection of the pair v j and v r j (two vertices of X have been skipped in between), they are nonadjacent, and r j − j > 2. Therefore, C j and C r j are distinct and necessarily nonadjacent.
Since C j induces a connected subgraph and is adjacent to both w and {v j −1 , v j , v j +1 }, we can find an induced w-v j +1 path P j with all internal vertices from C j ∪ {v j −1 , v j }. Likewise, we can obtain an induced w-v r j −1 path P r j with all internal vertices from C r j −1 ∪ {v r j , v r j +1 }. These two paths P j and P r j , together with v j +1 . . . v r j −1 , make the hole H j : we have j + 1 < r j − 1; for each j + 1 s r j − 1, v s ∼ w; and for each j + 1 < s < r j − 1, v s ∼ C j , C r j . This hole goes through w. This way we can construct k + 1 holes, and it can be easily verified that they intersect only in w. Since we are not allowed to delete w, we cannot fix all these holes by at most k operations. Thus we can return "NO." If Claim 2 applies, then we are already done; otherwise, there are at most |M| · (5k + 74) junctions of the first two types in P. We proceed by considering the set B of junctions that are only of type (3) or (4) but not of the first two types. Its number is at least (noting |M| k + 1) (12k 2 + 87k + 75) − (5k + 74) · |M| 7k 2 + 7k + 1.
We order B according to their indices in P, and let b i denote the index of the ith vertex of B in P. For each 0 i k(k + 1), we use the (7i + 3)th vertex of B to construct a hole H i . Then we argue that this collection of holes either allows us to identify a vertex that has to be in the solution, or conclude infeasibility.
The first case is when v b 7i+3 is of type (4): there is a pair of nonadjacent vertices x ∈ N V 2 (v b 7i+3 ) and y ∈ A. In this case we can assume that x is adjacent to neither x is a 4-hole, which contradicts the fact that H is the shortest. In other words, x only appears in some bag between K last(b 7i+1 ) and K first(b 7i+5 ) ; on the other hand, by definition of V 2 , it appears in at least two of these bags. There is thus an induced Starting from x, we traverse P i to the left until the first vertex x 1 that is adjacent to y; the existence of such a vertex is ensured by the fact that y ∼ v b 7i+1 . Similarly, we find the first neighbor x 2 of y in P i to the right of x. Then the sub-path of P i between x 1 and x 2 , together with y, gives the hole H i . By construction, no vertex of In the other case, v b 7i+3 is type (4): some branch C i near to v b 7i+3 is not simplicial in G. By definition, either the subgraph induced by N(C i ) is not a clique, or the subgraph induced by N[C i ] is not chordal. Since v b 7i+3 does not satisfy the conditions of type (1) and (2), On the other hand, according to Lemma 3.3, N(C i ) ∩ V 0 induces a clique. Therefore, there must be a pair of nonadjacent vertices x ∈ N(C i ) ∩ V 0 and y ∈ A M . As C i is near to v b 7i+3 , it must hold that x ∈ N(v b 7i+3 ); this has already been discussed in the previous case. Suppose now that N(C i ) induces a clique and there is a hole H i in N[C i ]. We have seen that N[C i ] ∩ M = A M , thus this hole H i intersects A M ; let w be a vertex in V(H i ) ∩ A M . If H i is disjoint from A 0 , then no vertex in H i \ M can be adjacent to v b 7i or v b 7i+5 . Otherwise, it contains some vertex u ∈ A 0 ; noting that A induces a clique, H i ∩ A = {u, w}. Moreover, N(C i ) ∩ V 2 is in the neighborhood of v b 7i+3 and therefore N(C i ) ∩ V 2 and N(C j ) ∩ V 2 are disjoint for i = j: the existence of a vertex x ∈ V 2 adjacent to both C i and C j would contradict Proposition 3.1 (noting that the distance of v b 7i+3 and v b 7j+3 is greater than 2 on the hole H).
In sum, we have a set H of at least k(k + 1) + 1 distinct holes such that (1) each hole in H contains at most one vertex of A 0 , and (2) the intersection of any pair of them is in A. Recall that each hole has length at least k + 4, hence cannot be fixed by edge additions only. If there is a u ∈ A 0 contained in at least k + 1 holes of H, then we have to put u into V − ; otherwise we have to delete distinct elements (edges or vertices) to break different holes, which is impossible. Now assume that no such a vertex u exists, then there must be k + 1 holes that intersect only in M, which allow us to return "NO."

Mixed separators in chordal graphs
Given a pair of nonadjacent vertices x, y of a graph, we say that a pair of vertex set V S and edge set E S is a mixed x-y separator if the deletion of V S and E S leaves x and y in two different components; its size is defined to be (|V S |, |E S |). A mixed x-y separator is inclusion-wise minimal if there exists no other mixed x-y separator (V S , E S ) such that V S ⊆ V S and E S ⊆ E S and at least one containment is proper. If (V S , E S ) is an inclusion-wise minimal mixed x-y separator in graph F, then each component of F − V S − E S is an induced subgraph of F. Therefore, we have the following characterization of inclusion-wise minimal mixed separators in chordal graphs. Consider an inclusion-wise minimal x-y separator (V S , E S ) in a chordal graph F. Let T F be a clique tree of F. The degenerated case where E S = ∅ is well understood: V S itself makes an x-y separator. If E S = ∅, then in the path that connects T F (x) and T F (y), at least one bag is disconnected by the deletion of V S and E S . This bag contains at most |V S | + |E S | + 1 vertices. On the other hand, the remaining vertices of every bag K, i.e., K \ V S , appear in either one or two components of F − V S − E S . In the latter case, the two components are precisely that contain x and y, respectively; otherwise the mixed separator cannot be inclusion-wise minimal.  integers (a, b), we can find a mixed x-y separator of size at most (a, b) or asserts its nonexistence in time 3 a+b+1 · |V(F)| O(1) . -separator(F, x, y, a, b) INPUT: a chordal graph F, nonadjacent vertices x and y, and nonnegative integers a and b. OUTPUT: a mixed x-y separator (V S , E S ) of size at most (a, b) or "NO." 0 find a minimum vertex x-y separator S; if |S| a then return (S, ∅).

Algorithm mixed
build a clique tree T F for F; guess a bag K from the path of bags connecting T F (x) and T F (y); 3 enqueue(Q, K); for each bag K adjacent to K that is not "processed" do if K intersects both X and Y then enqueue(Q, K ); 4.7 mark K "processed"; 5 Proof. We use the algorithm described in Figure 4. If the size of minimum x-y separators is no more than a, then step 0 will give a correct separator, and hence main part of the algorithm looks for a solution with E S = ∅. Let us explain the variables used in the algorithm and formally state its invariants. The algorithm processes bags one by one, and maintains a partition (X, Y, Z) of vertices in all bags that have been processed. The partition can be arbitrary if there exists no mixed x-y separator of the designated size. Otherwise the partition satisfies for some mixed x-y separator (V * S , E * S ) of the designated size that (1) X and Y are in the same components of F − V * S − E * S as x and y respectively; and (2) Z ⊆ V * S . The queue Q keeps all bags to be processed, and a bag is enqueued if it intersect both X and Y. A bag to be processed must be adjacent to a previously process bag, and since the queue starts from a single bag, at the end of the algorithm, all processed bags induce a connected subtree of T F . The algorithm has no false positives. Therefore, to verify its correctness, we show that each inclusion-wise minimal mixed x-y separator (V S , E S ) of size at most (a, b) can be found. We initialize Q by guessing a bag in the path connecting T F (x) and T F (y) that is disconnected by the deletion of (V S , E S ); the existence of such a bag follows from previous discussion. Main work of the algorithm is done in the loop of step 4, each iteration of which processes a bag in Q. Let K be the bag under processing. By assumption, if a vertex v ∈ K \ (X ∪ Y ∪ Z) is not in V * S , then it has to be incident to an edge in E * S . Let b = |K \ (X ∪ Y ∪ Z)| − (a − |Z|); then at least b vertices of K will remain in F − V * S − E * S , and any nontrivial partition of it has at least b − 1 edges (when one side has precisely one vertex). It cannot exceed b − |E(F) ∩ (X × Y)|; this justifies the exit condition 4.2. Steps 4.3-4.5 are straightforward. Step 4.6 enqueues bags that have to be separated by the deletion of (V * S , E * S ). It remains to verify that (V S , E S ) constructed in step 5 is the objective mixed separator, i.e., V * S = V S = Z and E * S = E S = E(F) ∩ (X × Y). Since we have shown that Z ⊆ V * S and E(F) ∩ (X × Y) ⊆ E * S , and by assumption, x (resp., y) remains connected to X (resp., Y) in F − V S − E S , it suffices to show that X and Y are disconnected in F − V S − E S . Suppose for contradiction that there is an induced path P connecting v x ∈ X and v y ∈ Y in F − V S − E S . Let P be the path u 1 · · · u p where u 1 = v x and u p = v y . Without loss of generality, assume that all internal vertices of P are disjoint from X ∪ Y. Let l be the smallest index such that 1 < l < p and u l ∼ Y. We argue that u l ∼ X as well. Otherwise, let l be the largest index such that 1 < l < l and u l ∼ X. It is easy to verify that in F − V S , subgraphs induced by X, Y, and X ∪ Y are all connected. Hence we can find an induced u l -u l path with all internal vertices in X ∪ Y; this path and u l · · · u l make a hole, which is impossible as F is chordal. Let v x ∈ X and v y ∈ Y be neighbors of u l . Note that all bags handled in step 4 induce a connected subtree of T F , and in particular, it intersects both T F (v x ) and T F (v y ). If v x ∼ v y , then there is a bag containing {u l , v x , v y }. Let us focus on bags that contain v x and v y . At least one of such bags is separated, and all of them are then enqueued in concession. If v x ∼ v y , then u l is in any v x -v y separator, and at least one bag that contains u l is handled. In both cases, u l has to be in X ∪ Y ∪ Z. This gives a contradiction, and hence (V S , E S ) must be a mixed x-y separator. This completes the proof of the correctness.
We now analyze the runtime. In step 2, there are at most |V| bags in the path connecting T F (x) and T F (y), and thus the bag K can be found in O(|V|) time. Note that this step is run only once. The only step that takes exponential time is 4.3. The set K \ (X ∪ Y ∪ Z) has 3 |K\(X∪Y∪Z)| partitions, and after each execution of step 4.3, the budget decreases by at least |K \ (X ∪ Y ∪ Z)| − 1. In total, this is upper bounded by 3 a+b+1 . This completes the proof.
We remark that the problem of finding a mixed separator of certain size is fixed-parameter tractable even in general graphs: the treewidth reduction technique of Marx et al. [20] can be used after a simple reduction (subdivide each edge, color the new vertices red and the original vertices black, and find a separator with at most k 1 black vertices and at most k 2 red vertices). However, the algorithm of Lemma 4.2 for the special case of chordal graphs is simpler and much more efficient.
The definition of mixed separator can be easily generalized to two disjoint vertex sets-we may simply shrink each set into a single vertex and then look for a mixed separator for these two new vertices. Another interpretation of Lemma 4.2 is the following. Corollary 4.3. Let X and Y be a pair of nonadjacent and disjoint sets of vertices in a chordal graph F. For any nonnegative integer a k 1 , in time 3 k 1 +k 2 +1 · |V(F)| O(1) we can find the minimum number b such that b k 2 and there is a mixed X-Y separator of size (a, b) or assert that there is no mixed X-Y separator of size (a, k 2 ).

Proof of Theorem 2.1
We are now ready to put everything together and finish the analysis of the algorithm. We say that a chordal editing set is minimum if there exists no chordal editing set with a smaller size. Note that a segment is contained in a unique path of H − M, which determines V 1 and V 2 .
Proof of Theorem 2.1. Let (V * − , E * − , E * + ) be a minimum chordal editing set of G of size no more than (k 1 , k 2 , k 3 ). We start from a closer look at how it breaks H; by Theorem 3.6, we may assume that H contains O(k 3 ) segments. There are three options for breaking H. In the first case, V * − contains some junction, or E * − contains some edge of H that is in M × V 0 . In this case, we can branch on including one of these vertices or edges into the solution; there are O(k 3 ) of them. Otherwise, we need to delete an internal vertex or edge from some segment. Let d = 2k + 4. In the second case, we delete either (1) a vertex that is at distance at most d (on the cycle) from a junction; or (2) an edge whose both endpoints are at distance at most d (on the cycle) from a junction. In particular, this case must apply when we are breaking a segment of length at most 2d. If one of the two aforementioned cases is correct, then we can identify one vertex or edge of the solution by branching. In total, there are O(k 4 ) branches we need to try.
Henceforth, we assume that none of these two cases holds. We still have to delete at least one vertex or edge from H; this vertex or edge must belong to some segment [v s , v t ] with t − s > 2d. This is the third case, where we use s = s + d and t = t − d. Recall that any segment [v s , v t ] belongs to some maximal path P of H − M, on which V 1 and V 2 are well defined. For any pair of indices i, j with s i < i + 3 j t, we use U [i,j] to denote the union of the set of bags in the nonempty subtree of T − {K last(i) , K first(j) } that contains {K last(i)+1 , . . . , K first(j)−1 }, plus the two vertices v i and v j . Let G [i,j]   first(t ). Appending to it v s · · · v s and v s · · · v s , we get [s,t] , where the distance between v s and v t is t − s > 2d, and thus the length of P [s,t] is larger than 2d > 2k 3 + 4. On the other hand, a segment [v s , v t ] of length at most 2d remains intact in G − V * − − E * − by assumption, which can be used as the v s -v t path. We have then obtained for each segment Concatenating all these paths, as well as edges of H in M × V(G), we get a closed walk C. To verify that C is a hole, it suffices to verify that the internal vertices of P [s,t] is disjoint and nonadjacent to other parts of C. On the one hand, no internal vertex of P [s,t] is adjacent to M \ A M by definition (C is disjoint from A). On the other hand, all internal vertices of P [s,t] appear in the subtree that contains K last(s+4) in Since the length of C is longer than 2k 3 + 4, it cannot be made chordal by the addition of the at most k 3 edges of E * + . This contradiction proves the claim.
In other words, there is a segment t] . The resulting graph obtained by deleting (V * S , E * S ) from G [s,t] is characterized by the following claim. Proof. By definition, N G (X) ⊆ K last(i) ∪ A and is a clique in G; otherwise v i+1 must be a junction of type (3), which is impossible. Since (V S , E S ) is inclusion-wise minimal, no edge in E S is induced by N G [X]. In particular, N G (X) induces the same subgraph in G and G , which is a clique. It remains to show that N G [X] induces a chordal subgraph of G . A vertex in N G [X] is either in V 2 , some branch, or A. For every branch C near to some vertex v i with s < i < t, C ∩ N G [X] is simplicial. On the other hand, by definition of segments, A symmetric claim holds for the other side of the segment is a minimum chordal editing set of G . Proof. We first argue the existence of some vertex v s with s s s such that E * − contains no edge induced by K last(s ) . For each s with s s s , since last(s ) first(s + 1) and every vertex in them is adjacent to at most 3 vertices of H (Proposition 3.1), bags K last(s ) and K last(s +2) are disjoint. In particular, an edge cannot be induced by both K last(s ) and K last(s +2) . Suppose that E * − contains an edge induced by K last(s ) for each s with s s < s , then we must have |E − | > (s − s)/2 k 2 , which is impossible. Likewise, we have some vertex v t with t t t such that E * − contains no edge induced by K first(t ) . By Claim 4, it follows that every vertex of U [s ,t ] is in a simplicial set of Suppose that there is a hole C in the graph obtained by applying ( For any segment [v s , v t ], we can use Corollary 4.3 to find all possible sizes of a minimum mixed {v s , . . . , v s }-{v t , . . . , v t } separator. There are at most k 1 of them. By Claim 5, one of them can be used to compose a minimum chordal editing set. In each iteration, we branch into O(k 4 ) instances to break a hole, and in each branch decreases k by at least 1. The runtime is thus O(k) 4k · n O(1) = 2 O(k log k) · n O(1) . This completes the proof.

Concluding remarks
We have presented the first FPT algorithm for the general modification problem to a graph class that has infinite number of obstructions. It is natural to ask for its parameterized complexity on other related graph classes, especially for those classes on which every single-operation version is already known to be FPT. The most interesting candidates include unit interval graphs and interval graphs. The fixed-parameter tractability of their completion versions were shown by Kaplan et al. [13] and Villanger et al. [26]; their vertex deletion versions were shown by van 't Hof and Villanger [25] and Cao and Marx [7]. A very recent result of Cao [5] complemented them by showing that the edge deletion versions are FPT as well.
We would like to draw attention to the similarity between CHORDAL DELETION and the classic FEEDBACK VERTEX SET problem, which asks for the deletion of at most k vertices to destroy all cycles in a graph, i.e., to make the graph a forest. The ostensible relation is that the forbidden induced subgraphs of forests are precisely all holes and triangles. But triangles can be easily disposed of and its nonexistence significantly simplifies the graph structure. On the other hand, each component of a chordal graph can be represented as a clique tree, which gives another way to be correlate these two problems.
Recall that vertices with degree less than two are irrelevant for FEEDBACK VERTEX SET, while degree two vertices can also be preprocessed, and thus it suffices to consider graphs with minimum degree three. Earlier algorithms for FEEDBACK VERTEX SET are based on some variations of the upper bounds of Erdős and Pósa [11] on the length of shortest cycles in such a graph. For CHORDAL VERTEX DELETION, our algorithm can be also interpreted in this way. First of all, a simplicial vertex participates in no holes, and thus can be removed safely.

Reduction 1. Remove all simplicial vertices.
Note that a simplicial vertex corresponds to a leaf in the clique tree, Reduction 1 can be viewed as a generalization of the disposal of degree-1 vertices for FEEDBACK VERTEX SET. For FEEDBACK VERTEX SET, we "smoothen" a degree-2 vertex by removing it and adding a new edge to connect its two neighbors. This operation shortens all cycles through this vertex and result in an equivalent instance. To have a similar reduction rule, we need an explicit clique tree, 2 so we consider the compression problem, which, given a hole cover M, asks for another hole cover M disjoint from M. The following reduction rule will only be used after Reduction 1 is not applicable, then no vertex inside a segment can have a branch. Let S denote the separator K ∩ K +1 in the clique tree.

Reduction 2.
Let [v s , v t ] be a segment and |S ı | = min last(s) i<first(t) |S i |. If there exists S such that S is disjoint from K last(s) ∪ K first(t) and there exists v ∈ S \ S ı , then remove v and insert edges to make N(v) a clique.
After both reductions are exhaustively applied, we can use an argument similar as Theorem 3.6 to show that either the length of a shortest hole is O(k 4 ) or there is no solution. However, unlike FEEDBACK VERTEX SET, Reductions 1 and 2 do not directly imply a polynomial kernel for CHORDAL VERTEX DELETION. Therefore, we leave it open the existence of polynomial kernels for the CHORDAL VERTEX DELETION problem and its compression variation.