Largest chordal and interval subgraphs faster than 2^n

We prove that in an n-vertex graph, induced chordal and interval subgraphs with the maximum number of vertices can be found in time $O(2^{\lambda n})$ for some $\lambda<1$. These are the first algorithms breaking the trivial $2^n n^{O(1)}$ bound of the brute-force search for these problems.

know any efficiently recognizable class Π for which a lower bound could be derived. Therefore, the following is a folklore open problem in the field; we could not find it explicitly stated in the literature, so we state it below. Hypothesis 1. For every hereditary graph class Π that can be recognized in polynomial time, the Maximum Induced Π-Subgraph problem can be solved in time O * (2 λn ) for some λ < 1.
We expect that some additional weak conditions on Π may be needed to provide a positive answer to hypothesis we discuss propositions of such relaxations in Section 6. Thus, the aforementioned results [4,5,7,8,12,17,18,19] can be viewed as partial progress on Hypothesis 1: the idea is to investigate how different features of the class Π can be used to design an algorithm breaking the 2 n barrier.

Property
Time Since every hereditary class of graphs Π can be characterized by a (not necessarily finite) set of forbidden induced subgraphs, there is an equivalent formulation of the Maximum Induced Π-Subgraph problem. For a set of graphs F, a graph G is called F-free if it contains no graph from F as an induced subgraph. The Maximum F-free Subgraph problem is to find a maximum induced F-free subgraph of G. Clearly, if F is the set of forbidden induced subgraphs for Π, then the Maximum Induced Π-Subgraph problem and the Maximum F-free Subgraph problem are equivalent.
It is well known that when the set F is finite, then Maximum F-free Subgraph can be solved in time O * (2 λn ), where λ < 1. This can be seen by applying a simple branching arguments, see Proposition 2, or by reducing to the d-Hitting Set problem, which is solvable faster than O * (2 n ) for every fixed d [4,11]. Examples of F-free classes of graphs for some finite set F are split graphs, cographs, line graphs or trivially perfect graphs; see the book [1] for more information on these graph classes.
It is however completely unclear if anything faster than the trivial brute-force is possible in the case when F is an infinite set, even when F consists of very simple graphs. One of the most known and well studied classes of F-free graphs is the class of chordal graphs, where F is the set of all cycles of length more than three. Chordal graphs form a fundamental class of graphs whose properties are well understood. Another fundamental class of graphs is the class of interval graphs. We refer to the book of Golumbic for an overview of properties and applications of chordal and interval graphs [13]. In spite of nice structural properties of these graphs, no exact algorithms for Maximum Induced Chordal Subgraph and Maximum Induced Interval Subgraph problems better than the trivial O * (2 n ) were known prior to our work.
Our results. We define four properties of a graph class and give an algorithm that, for every fixed graph class Π (not part of the input) satisfying these properties, and for a given n-vertex graph G, finds a maximum induced subgraph of G belonging to Π in time O * (2 λn ) for some λ < 1, where λ depends only on the class Π. Because classes of chordal and interval graphs satisfy the required properties, as an immediate corollary we obtain that Maximum Induced Chordal Subgraph and Maximum Induced Interval Subgraph can be solved in time O * (2 λn ) for some λ < 1.
When pipelined with simple branching arguments, our algorithms can be used to obtain time O * (2 λn ) algorithms for some λ < 1 for a variety of other Maximum Induced Π-Subgraph problems, where class Π comprises chordal/interval graphs that moreover contain no induced subgraph from a finite forbidden set of graphs. Examples of such classes are proper interval graphs, Ptolemaic graphs, block graphs, or proper circular-arc graphs; see [1] for definitions and discussions of these graph classes.
The main intention of our work was to break the trivial 2 n barrier, and thus to provide a new insight into Hypothesis 1 by analyzing chordal and chordal-like graph classes. For this reason, we did not try to optimize the constant λ in the exponent. There are several places where the running time of our algorithm can be improved at a cost of more involved arguments or intensive case analyses. However, we would like to stress again that the main motivation of our work is the theoretical study of Hypothesis 1, rather than pursuit of really efficient algorithms for the respective problems. Therefore, we refrain from giving these improvements and prefer keeping the arguments as simple as possible.
Organization. In Section 2 we give notation and recall known tools that will be used later. In Section 3 we discuss the four properties of a graph class that are needed for our algorithm to be applicable. Section 4 contains the description of the algorithm. For the convenience of the reader, in Section 5 we summarize the order of choice of small constants used by the algorithm. Finally, in Section 6 we give some concluding remarks.

Preliminaries
Standard graph notation. We denote by G = (V, E) a finite, undirected and simple graph with vertex set V (G) = V and edge set E(G) = E. We also use n to denote the number of vertices in G. For a nonempty subset of vertices W ⊆ V , a subgraph induced by W is defined as ). An induced subgraph of a graph is a subgraph induced by some subset of vertices. A clique is a set of vertices inducing a complete subgraph. We say that a vertex set Whenever the graph to which the neighbourhood operation is applied is not clear from the context, we put it in the subscript of N . For a vertex subset X of a graph G, we use G \ X to denote the subgraph of G induced by V (G) \ X.
A graph class Π is simply a family of graphs. We often use terms Π-graph or Π-subgraph to express membership in Π. We say that a graph class is hereditary if Π is closed under taking induced subgraphs. Every hereditary graph class can be described by a (possibly infinite) list of minimum forbidden induced subgraphs F Π : graph G is in Π if and only if it does not contain any induced subgraph from F Π , and for each H ∈ F Π every induced subgraph of H, apart from H itself, belongs to Π. The class of graphs not containing any induced subgraph from a list F will be denoted by F-free graphs.
Chordal graphs are graphs not containing any induced cycles of length more than three, that is, chordal graphs are F-free graphs where the set F consists of all cycles of length more than three. Chordal graphs are hereditary and polynomial-time recognizable [13]. Chordal graphs admit many more characterizations, for example they are exactly graphs admitting a decomposition into a clique tree. A useful corollary of this fact is the following folklore lemma.
Proposition 1 (Folklore). If H is a chordal graph, then there exists a clique S in H and a partition of V (H) \ S into two subsets X 1 , X 2 , such that (ii) there is no edge between X 1 and X 2 .
Such a set S is called a 2 3 -balanced clique separator in H. Note that since |X 2 | ≤ 2 3 |V (H)|, then 3 |V (H)| − |S|, and the same holds also for X 2 . Interval graphs form a subclass of chordal graphs admitting a decomposition into a clique path instead of less restrictive clique tree. Interval graphs are also hereditary and polynomial-time recognizable [13]. Their characterization in terms of minimal forbidden induced subgraphs was given by Lekkerkerker and Boland [15]; see Figure 1 for reference. The book of Golumbic [13] provides a thorough introduction to chordal and interval graphs.  We now describe the classical tools needed for the algorithm. The following result basically follows from the observation that branching on forbidden structures of constant size always leads to complexity better than 2 n . Proposition 2. Let F be a finite set of graphs and let be the maximum number of vertices in a graph from F. Let Π be a hereditary graph class that is polynomial-time recognizable. Assume that there exists an algorithm A that for a given F-free graph G on n vertices, in O * (2 n ) time finds a maximum induced Π-subgraph of G, for some < 1. Then there exists an algorithm A that for a given graph G on n vertices, finds a maximum induced F-free Π-graph in G in time O * (2 n ), where < 1 is a constant depending on and .
Proof. Let Π be the class of F-free Π-graphs; note that for constant , Π is polynomial-time recognizable. Algorithm A , given an n-vertex graph G = (V, E), tries to find a maximum induced Π -subgraph using standard branching arguments. At each point the algorithm maintains two disjoint sets A, D ⊆ V ; at the starting point A = D = ∅. Given A, D, the algorithm tries to find a maximum size set X inducing a Π -graph such that A ⊆ X and D ∩ X = ∅. Whenever we arrive at a situation when |A ∪ D| > (1 − )n, we stop the branching procedure and perform a brute force check on the remaining vertices of V \ (A ∪ D). That is, we examine all subsets A ⊆ V \ (A ∪ D) and test whether G[A ∪ A ] induces a Π -graph. This takes time O * (2 |V \(A∪D)| ) ≤ O * (2 n ). At each step of the branching procedure we check in polynomial time whether G \ D contains a subgraph isomorphic to any graph of F. Assume first that we have found such a subgraph and let S ⊆ V \ D be its vertex set. Clearly, for every induced Π -subgraph, at least one of vertices of S is not contained in this subgraph. As vertices of S ∩ A have to be in the solution searched in this branch, we branch on set S \ A. More precisely, for every partition (A , D ) of S \ A where D is nonempty, we produce a branch in which A is incorporated into A and D is incorporated into D. Note that this leads to 2 − 1 branches produced and increasing |A ∪ D| by , where = |S \ A| ≤ . Note moreover that since ≤ , then 2 − 1 ≤ 2 for some < 1 depending on . Assume now that G \ D contains no induced subgraph from F, hence it is F-free. We apply the algorithm A to G \ D to compute the maximum induced Π-subgraph of G \ D. As G \ D is F-free, this subgraph is in fact in the class Π . Note here that at this point we relax the condition that the set we are looking for has to contain A as a subset, however this does not affect correctness of the algorithm: the found subgraph is still an induced Π -subgraph of G, so it can be only larger than the solution we are looking for in this branch. The running time of the application of A is Let us now discuss the running time of the algorithm. Note that at the point of applying brute-force check we have that (1 − )n + ≥ |A ∪ D| > (1 − )n, as |A ∪ D| can increase by at most at each step. Each branching step increases |A ∪ D| by some and introduces at most 2 subbranches, hence the total number of instances where algorithm A or a brute-force check is applied is at most 2 ((1− )n+ ) = O(2 (1− )n ). Application of brute-force or algorithm A takes O * (2 n ) time. Hence, the total running time is O * (2 n ), where = (1 − ) + < 1.
The following proposition from [10] will be useful for us to guess connected sets of vertices with small running-time overhead. ). The last necessary ingredient is the classical idea used by Schroeppel and Shamir [20] for solving Subset Sum by reducing it to an instance of 2- Table. In the 2-Table problem, we are given two k × m i matrices T i , i = 1, 2, and a vector s ∈ Q k . Columns of each matrix are m i vectors of Q k . The question is, if there is a column of the first matrix and a column of the second matrix such that the sum of these two columns is equal to s. A trivial solution to the 2-Table problem would be to try all possible pairs of vectors; however, this problem can be solved more efficiently. We can sort columns of T 1 lexicographically in O(km 1 log m 1 ) time, and for every column v of T 2 check whether T 1 contains a column equal to s − v in O(k log m 1 ) time using binary search.

Properties of the graph class
In this section we gather the required properties of the graph class Π for our algorithm to be applicable. We consider only hereditary subclasses of chordal graphs, hence our first property is the following. Property (1). Π is a hereditary subclass of chordal graphs.
As Π is hereditary, it may be described by a list of vertex-minimal forbidden induced subgraphs F Π . We need the following properties of F Π : Property (2). All graphs in F Π are connected, and all of them do not contain a clique of size ℵ + 1 for some universal constant ℵ.
For chordal graphs F Π consists of cycles of length at least 4, hence ℵ = 2. For interval graphs, an inspection of the list of forbidden induced subgraphs, depicted on Figure 1, shows that we may take ℵ = 4. In the following, we always treat ℵ as a universal constant for class Π on which all the later constants may depend; moreover, ℵ may influence the exponents of polynomial factors hidden in the O * notation. Let us remark that connectedness of all the forbidden induced subgraphs is equivalent to requiring Π to be closed under taking disjoint union. An example of a subclass of chordal graphs not satisfying this property, is the class of strongly chordal graphs. The reason for that is that minimal forbidden subgraphs of strongly chordal graphs can contain a clique of any size, see [1] for more information on this class of graphs.
Thirdly, we need our graph class to be efficiently recognizable.
Chordal graphs and interval graphs have polynomial time recognition algorithms, see e.g. [13]. For our arguments to work we need one more algorithmic property. The property that we need can be described intuitively as robustness with respect to clique separators. More precisely, we need the following statement. Property (4). There exists a polynomial-time algorithm A that takes as input a graph G together with a clique S in G. The algorithm answers YES or NO, such that the following conditions are satisfied: • If A answers YES on inputs (G 1 , S 1 ) and (G 2 , S 2 ) where |S 1 | = |S 2 |, then graph G , obtained by taking disjoint union of G 1 and G 2 and identifying every vertex of S 1 with a different vertex of S 2 in any manner, belongs to Π.
• If G ∈ Π, then there exists a clique separator S in G such that V (G) \ S may be partitioned into two sets X 1 , Observe that Property (1) and Proposition 1 already provides us with some 2 3 -balanced clique separator S of G. Shortly speaking, Property (4) requires that in addition belonging to Π may be tested by looking at G[X 1 ∪ S] and G[X 2 ∪ S] independently. For chordal graphs, Property (4) follows from Proposition 1 and a folklore observation that if S is a clique separator in a graph G, with (X 1 , X 2 ) being a partition of V (G) \ S such that there is no edge between X 1 and X 2 , then G is chordal if and only if G[X 1 ∪ S] and G[X 2 ∪ S] are chordal. Hence, we may take chordality testing for the algorithm A.
For interval graphs, let us take the clique path of G and examine a clique separator S such that there is at most half of vertices before it and at most half after it. Let X 1 be the vertices before S on the clique path, and X 2 be the vertices after S. Clearly, S is then even a 1 2 -balanced clique separator, with partition (X 1 , X 2 ) of V (G) \ S. Then it follows that G[X 1 ∪ S] and G[X 2 ∪ S] admit clique paths in which S is one of the end bags of the path. On the other hand, assume that we are given any two graphs G 1 , G 2 with equally sized cliques S 1 , S 2 , such that G 1 , G 2 admit clique paths with S 1 , S 2 as the end bags. Then we may create a clique path of the graph G obtained from the disjoint union of G 1 and G 2 and identification of S 1 and S 2 in any manner, by simply taking the clique paths for G 1 and G 2 and identifying the end bags containing S 1 and S 2 , respectively. Hence, as A we may take an algorithm which for input (G, S) checks whether G is interval and admits a clique path with S as the end bag. Such a test may be easily done as follows: we add two vertices v, v to G, where v is adjacent to v and to every vertex of S, while v is adjacent only to v. In this manner we force S to be the end bag, and run the intervality test. Hence, interval graphs also satisfy Property (4).

The algorithm
In this section we prove the main result of the paper, which is the following.
Theorem 5. If Π satisfies Properties (1)-(4), then there exists an algorithm which, given an n-vertex graph G, returns a maximum induced subgraph of G belonging to Π in time O * (2 λn ) for some λ < 1, where λ depends only on ℵ.
As we already observed, chordal and interval graphs satisfy Properties (1)-(4). Thus Theorem 5 implies immediately results claimed in the introduction. Our approach is based on a thorough investigation of the structure of a maximum induced subgraph. In each of the cases, we deploy a different strategy to identify possible suspects for an optimal solution. The properties we strongly rely on are the balanced separation property of chordal graphs (Property (4)), and conditions on minimal forbidden induced subgraphs for Π (Property (2)).
Let G = (V, E). In the description of the algorithm we use several small positive constants: α, β, γ, δ, ε, and one large constant L. The final constant λ depends on the choice of α, β, L, γ, δ, ε; during the description we make sure that constants (α, β, L, γ, δ, ε) can be chosen so that λ < 1. The choice of each constant depends on the later ones, e.g., having chosen L, γ, δ, ε, we may find a positive upper bound on the value of β so that we may choose any positive β smaller than this upper bound. For reader's convenience, in Appendix 5 we give a summary of the procedure of choosing constants.
Firstly, we observe that by Proposition 2, we may assume that the input graph does not contain any forbidden induced subgraph from F Π of size at most for some constant , to be determined later. Indeed, if we are able to find an algorithm for maximum induced Π-subgraph running in O * (2 λn ) time for some λ < 1 and working in F Π -free graphs, where F Π consists of graphs of F Π of size at most , then by Proposition 2 we obtain an algorithm for maximum induced Π-subgraph working in general graphs and with running time O * (2 λ n ) for some λ < 1. Hence, from now on we assume that the input graph G does not contain any forbidden induced subgraph from F Π of size at most .
The algorithm performs a number of steps. After each step, depending on the result, the algorithm chooses one of the subcases.
Step 1. Using the algorithm of Robson [19], in O * (2 0.276n ) time find the largest clique K in G.
We consider two cases: either K is large enough to finish the search directly, or K is small and we have a guarantee that the maximum induced Π-graph we are looking for contains only small cliques. The threshold for small/large is αn for a constant α > 0, α < 1/48, to be determined later.
We show that in this case, the problem can be solved in O * (2 (1−(1−κ 0 )α)n ) time for some κ 0 < 1 depending only on ℵ. We use the following auxiliary claim. Lemma 6. Let P be a subset of vertices of an n-vertex graph G that induces a graph belonging to Π, and let K be a clique in G such that P ∩ K = ∅. Then in time O * (2 κ 0 ·|K| ) for some κ 0 < 1 depending only on ℵ it is possible to find an induced subgraph of G with the maximum number of vertices, where maximum is taken over all induced subgraphs H of G such that (i) H ∈ Π, (ii) V (H) \ K = P . In other words, the maximum is taken over all induced subgraphs belonging to Π which can be obtained by adding some vertices of K to P .
Note that this construction may be performed using at most ℵ · |K| ℵ tests of belonging to Π, hence in polynomial time for constant ℵ.
We observe that for every subset X ⊆ K, G[P ∪ X] belongs to Π if and only if all nonempty subsets of X of size at most ℵ are red. Indeed, if the latter is not the case, there is a subset W ⊆ X such that G[P ∪ W ] / ∈ Π, so by Property (1) G[P ∪ X] / ∈ Π as well. For the opposite direction, let us assume that G[P ∪ X] contains some forbidden induced subgraph F ∈ F Π . Then |F ∩ X| > ℵ because otherwise, by the definition of the colouring, F ∩ X would not be coloured red. But since X is a clique, we conclude that F contains a clique on ℵ + 1 vertices, which is a contradiction with Property (2).
Hence, to obtain a maximum subgraph one has to find a maximum subset of X such that all its subsets of size at most ℵ are coloured red. This is equivalent to finding a maximum clique in a hypergraph with hyperedges of cardinality at most ℵ, which can be done using a branching algorithm in O * (2 κ 0 ·|K| ) time for some κ 0 < 1, depending only on ℵ.
The branching algorithm maintains two disjoint sets of vertices A, D, at the beginning equal to ∅. Set A consists of vertices that are guessed to be in the solution, while D consists of vertices guessed to not be in the solution. The algorithm terminates the branch when K \ D does not have any subset of size at most ℵ not coloured red, and in this case K \ D is produced as a candidate for the optimum X; the optimum X is found as the largest set among the candidates. If the branch is not terminated, we infer that there must be a subset W ⊆ K \ D of size at most ℵ which is not coloured red. Clearly, at least one of the vertices of W cannot be in the optimum X, hence we examine W \ A and branch into 2 |W \A| − 1 cases, in each fixing a different choice which vertices of W \ A should go to A and which should go to D; the omitted case is when all the considered vertices go to A. As |W \ A| ≤ ℵ, we have that 2 |W \A| − 1 ≤ 2 κ 0 ·|W \A| for some κ 0 < 1 depending only on ℵ. Hence, we are able to fix alignment of |W \ A| vertices by creating at most 2 κ 0 ·|W \A| branches, and the total running time 2 κ 0 ·|K| follows.
We now do the following. Let H be a maximum induced subgraph of G belonging to Π. We branch into at most 2 |V \K| subcases, in each fixing a different subset P of V \ K as V (H) \ K; we discard all the branches where the subgraph induced by P does not belong to Π. For each branch, we use Lemma 6 to find a maximum induced Π-subgraph which can be obtained from the guessed subset by adding vertices of K. This takes time O * (2 κ 0 ·|K| ) for each branch. Thus the running time in this case is O * (2 |V \K| · 2 κ 0 ·|K| ) ≤ O * (2 (1−α)n · 2 κ 0 ·αn ) = O * (2 (1−(1−κ 0 )α)n ). Note that 1 − (1 − κ 0 )α < 1 for α > 0 and κ 0 < 1. Case B: G has no clique of size αn.
Firstly, we search for solutions that have at most n/2 − βn or at least n/2 + βn vertices for some β, 0 < β < 1/16, to be determined later. For this, we may apply a simple brute-force check that tries all vertex subsets of size at most n/2 − βn or at least n/2 + βn in time O * ( n n/2−βn ); note that for β > 0 it holds that O * ( n n/2−βn ) ≤ O * (2 κ 0 n ) for some κ 0 < 1 depending on β.
Step 2. Iterate through all subsets of vertices of size at most n/2 − βn or at least n/2 + βn, and for each of them check if it induces a graph belonging to Π. If some subset of size at least n/2 + βn induces a Π-graph, output the subgraph induced by any of such subsets of maximum cardinality, and terminate the algorithm. If no subset of size exactly n/2 − βn induces a Π-graph, output the subgraph induced by the maximum size subset inducing a Π-graph among those of size at most n/2 − βn , and terminate the algorithm.
Correctness of Step 2 is obvious. If execution of Step 2 did not terminate the algorithm, we know that the cardinality of the vertex set of a maximum induced subgraph belonging to Π is between n/2 − βn and n/2 + βn. We proceed to further steps with this assumption.
Let H be a maximum induced Π-subgraph of G. We do not know how H looks like and the only information about H we have so far is that (i) H has no clique of size αn, and Let us note that the number of vertices of G not contained in H is also between n/2 − βn and n/2 + βn.
We now use Property (4) to find a 2 3 -balanced clique separator in H. More precisely, there is a clique S in H such that V (H) \ S may be partitioned into sets X 1 and X 2 such that (i) 1 3 |V (H)| − |S| ≤ |X 1 |, |X 2 | ≤ 2 3 |V (H)|, and (ii) there is no edge between X 1 and X 2 in G.
Step 3. Branch into at most (1 + αn) n αn · (n + 1) 2 subproblems, in each fixing a different subset of V of size at most αn as S, as well as the cardinalities of X 1 , X 2 . Discard all the branches where S is not a clique.
From now on we focus on one subproblem; hence, we assume that the clique S is fixed and the cardinalities of X 1 , X 2 are known. Let G = G \ S; to ease the notation, for X ⊆ V (G ) we denote N [X] = N G [X] and N (X) = N G (X). We now consider two cases of how the structure of the optimal solution H may look like, depending on how many connected components H \ S has. The threshold is γn for a small constant γ > 0 to be determined later.
Step 4. Branch into two subproblems: in the first branch assume that H \ S has at most γn connected components, and in the second branch assume that H \ S has more than γn connected components.
In the branches of Step 4 the algorithm checks several cases, and for every case proceeds with further branchings. To ease the description, we do not distinguish these branchings as separate Steps, but rather explain them in the text. Branch B.1: Graph H \ S has at most γn connected components.
We first branch into at most (n + 1) 3 subproblems, in each fixing the cardinalities of sets N (X 1 ), . From now on we assume that these cardinalities are fixed. We consider a few cases depending on the sizes of N (X 1 ), N (X 2 ) and N (X 1 ) ∩ N (X 2 ); in these cases we use small constants δ, ε, to be determined later.
We concentrate only on the subcase of ||N (X 1 )|−|X 1 || ≥ δn, as the second subcase is symmetric. As the number of components is small, their approximate location can be guessed at a cost of a small running time overhead as follows. Let P 1 be a set of vertices of size at most γn that is constructed by picking one vertex from every component of G[X 1 ] = H[X 1 ]. We branch into at most (1 + γn) n γn subproblems, in each fixing a different subset of size at most γn as P 1 . We add an artificial vertex v 1 to G , make it adjacent to all the vertices of P 1 , and enumerate all vertex sets of the new graph that (i) are connected, (ii) contain P 1 ∪ {v 1 }, (iii) are of size |X 1 | + 1 and have neighbourhood of size |N (X 1 )|. By Proposition 3, the number of such sets is at most ); note that here we enumerate candidates for such sets using Proposition 3 for vertex v 1 , and filter out all the subsets that do not contain P . Clearly, X 1 ∪ {v 1 } is among the enumerated sets.
We therefore branch into at most |X 1 |+|N (X 1 )| |X 1 | subproblems, in each fixing a different set out of the enumerated ones as X 1 (after excluding v 1 ). Moreover, in each subproblem we branch further into at most n−|X 1 |−|N (X 1 )| |X 2 | subproblems, in each fixing a different subset of V \ (N [X 1 ] ∪ S) as X 2 . For each of these subproblems we check whether G[X 1 ∪ X 2 ∪ S] belongs to Π in polynomial time.
Thus we obtain at most ) for some κ 1 < 1, depending on δ. On the other hand, Since |X 1 | + |N (X 1 )| ≥ |X 1 | ≥ 1 8 n, we have that in this case for some κ 2 < 1 depending on δ. Hence, the total number of branches produced by Case B.1.1, including the overheads from guessing S and cardinalities, is bounded by O * ( n αn · n γn · 2 κ 2 n ). Given κ 2 , which depends on δ only, we may choose α and γ small enough so that this number is smaller than O * (2 κ 3 n ) for some κ 3 < 1.
We proceed similarly to Case B.1.1, but we change the strategy for guessing the set X 2 : instead of a brute-force guess in V \ (N [X 1 ] ∪ S), we again make use of Proposition 3. Let P 1 , P 2 be sets of vertices of size at most γn that are constructed by picking one vertex from every component of , respectively. Similarly as in the previous case, branch into at most (1 + γn) 2 · n γn 2 subproblems, in each fixing P 1 and P 2 . Again, we enumerate at most candidates for X 1 by adding an artificial vertex adjacent to all the vertices of P 1 , and then we branch into a number of subproblems, in each fixing one of these candidates as X 1 . We terminate all the branches where P 2 and X 1 are not disjoint, or there is an edge between them. Note that the total number of created subproblems is at most |X 1 |+|N (X 1 )| Note that X 2 ⊆ V (G ) and the neighbourhood of X 2 in G is of size at most |N (X 2 )| − εn, as at least εn vertices from the intersection with N (X 1 ) have been removed. Therefore, we can add an artificial vertex v 2 in G adjacent to all the vertices of P 2 , and apply Proposition 3 to it. Similarly as in the case of X 1 , we can enumerate at most Then we branch further into at most subproblems, in each fixing one of the candidates as X 2 . As |N (X 2 )| ≤ |X 2 | + δn and |N (X 1 ) ∩ N (X 2 )| ≥ εn, we have that When X 1 and X 2 are fixed, in polynomial time we check whether the graph G[X 1 ∪ X 2 ∪ S] belongs to Π. Observe that O * (2 2|X 1 |+δn ) · O * (2 2|X 2 |−(ε−δ)n ) = O * (2 2(|X 1 |+|X 2 |)−(ε−2δ)n ); moreover, |X 1 | + |X 2 | ≤ n/2 + βn. Hence, given ε > 0 we may choose δ and β small enough so that O * (2 2|X 1 |+δn ) · O * (2 2|X 2 |−(ε−δ)n ) ≤ O * (2 κ 4 n ) for some κ 4 < 1 depending on ε. Now observe that the total number of branches produced in Case B.1.4, including overheads from guessing S, cardinalities, as well as P 1 and P 2 , is in O * ( n αn · n γn 2 ) · O * (2 κ 4 n ), so given κ 4 we may choose α and γ small enough so that the total number of subbranches produced is at most O * (2 κ 5 n ) for some κ 5 < 1. Every subbranch is then processed in polynomial time. Summarizing, sets X 1 and X 2 have the following properties: , and U = U both ∪ U none . We already know that |U both | ≤ εn. We now claim that |U none | ≤ ζn, where ζ = 2α + 2β + 2δ + ε. Indeed, we have that Figure 2: Situation in Case B.1.3. Neighbourhoods N (X 1 ) and N (X 2 ) have almost equal sizes to X 1 and X 2 , respectively, while U both and U none contain only a tiny fraction of vertices.
Given that sets U both and U none are small, we may fix them with O * ( n εn · n ζn ) overhead in the running time: we branch into O * ( n εn · n ζn ) subproblems, in each fixing a pair of disjoint subsets of V \ S of cardinalities at most εn and ζn as U both and U none , respectively. Note that then V (G ) \ U is the symmetric difference of N [X 1 ] and N [X 2 ]; let I = V (G ) \ U . We are left with determining which part of I is in X 1 ∪ X 2 , and which is outside.
Observe that every vertex of I is in exactly one of the two sets: Hence, by Property (4) of Π, we may look for subsets X 1 , X 2 of I, such that (i) algorithm A run on G[X 1 ∪ S] and G[X 2 ∪ S] with clique S distinguished provides a positive answer in both of the cases, and (ii) I is a disjoint union of N [X 1 ] and N [X 2 ]. We model this situation as an instance of the 2- Table  problem as follows. For i = 1, 2, enumerate all the subsets of I of size |X i | as candidates for X i , and discard all the candidates for which the algorithm A does not provide a positive answer when run on the subgraph induced by the candidate plus the clique S. For each remaining candidate subset create a binary vector of length |I| indicating which vertices of I belong to its closed neighbourhood. Construct matrices T 1 , T 2 by putting the vectors created for candidates for X 1 , X 2 as columns of T 1 , T 2 , respectively. Now, we need to check whether one can find a column of T 1 and a column of T 2 that sum up to a vector consisting only of ones.

Branch B.2:
Graph H \ S has more than γn connected components.
Consider connected components of H \ S and fix a large constant L > 2 depending on γ, to be determined later. We say that a component containing at most C = L/γ vertices is small, and otherwise it is large. Let r and r s be the numbers of large and small components of H \ S, respectively. The number of vertices contained in large components is hence at least L·r γ . Thus, L·r γ ≤ n, r ≤ γn L and, consequently, r s ≥ γn − r ≥ γn(1 − 1 L ) ≥ γn 2 . Since small components are nonempty, they contain at least γn 2 vertices in total. Let us summarize the situation; see Figure 3 for reference. The vertices of V can be partitioned into disjoint sets S, X, N X , Y , and Z, where (i) S is the clique guessed in Step 3; (ii) X are the vertices contained in large components of H \ S; (iii) N X = N (X); (iv) Y are the vertices contained in small components of H \ S; (v) Z consists of vertices not contained in H and not adjacent to X.
Note that V (H) = S ∪ X ∪ Y . Unfortunately, even given X and S, the algorithm still cannot deduce the solution: we still need to split the remaining part V \ (N [X] ∪ S) into Y that will go into the solution, and Z that will be left out. However, as we know that G[X] has a small number of components, we can proceed with a branching step that guesses X using Proposition 3. Let P be a set of vertices that contains one vertex from each connected component of G[X]; we have that Note that we can do it by filtering out sets that do not contain P from the list given by Proposition 3. As X ∪ {v} is among enumerated candidates, branch into at most 2 |N [X]| subcases, in each fixing a different candidate for X.
. Note that we need to have |V (R)| ≥ |Y | ≥ r s ≥ γn 2 , so if |V (R)| < γn 2 then we may safely terminate the branch. We will now use the fact that the input graph does not contain any forbidden induced subgraphs of size bounded by some bound ; recall that this assumption was justified by an application of Proposition 2. We set = 3C 2 + 1; hence, whenever we examine an induced subgraph of G of size at most , we know that it belongs to Π. The later steps of the algorithm are encapsulated in the following lemma. Lemma 7. Assuming α < γ 104C 3 and = 3C 2 + 1, there exists a universal constant ρ < 1 and an algorithm working in O * (2 ρ|V (R)| ) time that enumerates at most O(2 ρ|V (R)| ) candidate subsets of V (R), such that Y is among the enumerated candidates.
Before we proceed to the proof, let us observe that application of Lemma 7 finishes the whole algorithm. Indeed, so far in the branching procedure we have an overhead of O * ( n αn · n γn L · 2 |N [X]| ) for guessing S and X. If we now enumerate and examine -by testing whether G[X ∪ S ∪ Y ] ∈ Πall the candidates for Y given by Lemma 7, we arrive at running time Since |N [X]| + |V (R)| ≤ n, ρ < 1 is a universal constant and |V (R)| ≥ γn 2 , given γ > 0 we may choose L to be large enough and α > 0 to be small enough (and smaller than γ 104C 3 ) so that this running time is O * (2 κ 8 n ) for some κ 8 < 1. Here we exploit the fact that ρ does not depend on α, γ or L. Intuitively, what is really happening at this point is that the threshold C for large components depends on γ and L, and thus the threshold for forbidden induced subgraphs on which we branch a priori using Proposition 2 depends on γ and L. This branching, however, is performed outside the current reasoning and we avoid a loop in the definitions of thresholds.
We proceed to the proof of Lemma 7.
Proof of Lemma 7. The initial step is a classical branching algorithm whose goal is to reduce the degrees in R. We say that a vertex v ∈ V (R) is heavy if deg(v) ≥ 3C, and is light otherwise. The algorithm will produce a number of branches: pairs (A, D), where A is the set of vertices assumed to be contained in the solution, and D is the set of vertices assumed to be excluded from it. Our goal is to get rid of all the heavy vertices, that is, to achieve a situation where all the vertices in R \ D are light (where the degrees are counted in R \ D). The following claim explains all the demanded properties in a formal way. • there is an index i 0 such that where φ is a potential function defined as φ((A, D)) = 2 σ|V (R)\(A∪D)| . Proof of Claim 1. The algorithm maintains two disjoint sets A, D; A is the set of vertices assumed to be contained in the constructed candidate set, while vertices of D are assumed to be excluded from the constructed candidate set. Naturally, we begin with A = D = ∅. The algorithm stops branching when it finds out that R \ D contains only light vertices. Thus, the output of the branching algorithm is a set of leaf branches (A i , D i ) where R \ D i only contains light vertices. During branching we ensure the property that there is at least output branch (A i , D i ) such that A i ⊆ Y and D i ∩ Y = ∅; to express this property, we will also say that the branching is correct.
The progress of the algorithm is measured by the potential function φ((A, D)) = 2 σ|V (R)\(A∪D)| for some universal constant σ < 1 to be determined later. At each branching step we will ensure that the sum of potentials in subbranches is at most the potential of the initial branch. As the potential is always at least 1, we will produce at most 2 σ|V (R)| leaf branches (A i , D i ) in total, and their total sum of potentials will be at most 2 σ|V (R)| . Each branching step will be performed in polynomial time, so the whole branching algorithm runs in O * (2 σ|V (R)| ) time.
If R \ D does not contain any heavy vertex, we terminate the branching procedure and output the current pair (A, D). Otherwise, graph R \ D contains some heavy vertex v. For simplicity, assume for now that v / ∈ A. As R[Y ] has all the connected components of size at most C, we infer that if v ∈ Y , then at most a third of the neighbours of v in R \ D can belong to Y . Hence, we can afford the following branching step. We branch into a number of subcases. In one subcase, v is assigned to D. In the other subcases, v is assigned to A and alignment of all the vertices of N R\D (v) \ A is guessed in such a manner that v has less than C neighbours in A. As the neighbours of v in R \ D can be only in A or neither in A nor in D, at most a third of neighbours contained in N R\D (v) \ A can go in this manner to A. Note here that if N R\D (v) \ A is empty, this means that v has already at least C neighbours in A and we may safely terminate the branch. The correctness of the presented branching rules follow directly from the fact that all the connected components of R[Y ] are of size at most C.
The following combinatorial bound will be useful when controlling the behaviour of the potential. In fact we can choose 2 σ = 1.89. By Fact 1, in order to prove that the total potential of resulting instances is at most the initial potential, it suffices to check that for n = |V (R) \ (A ∪ D)| and m = |N R\D (v) \ A| ≥ 1 it holds that 2 σn ≥ 2 σ(n−1) + 2 σ ·m · 2 σ(n−1−m) . This is however equivalent to 2 σ ≥ 1 + 2 m(σ −σ) .
In the remaining case when v ∈ A, we simply omit the branch when v is assigned to D. Hence, to bound the total potential of obtained subbranches, we need to check that 2 σn ≥ 2 σ ·m · 2 σ·(n−m) , which follows from the fact that σ < σ. This completes the proof of Claim 1.
We proceed with the proof of Lemma 7. Let Note that 3+σ 4 < 1 for σ < 1. We finally proceed to the pairs from L large . Let (A, D) ∈ L large , and let Q = V (R) \ (A ∪ D). The following claim is the crucial step in our reasoning: In other words, we may safely assume that in the correct branch at least two thirds of the unresolved vertices must remain in the solution. Before we proceed to the proof of Claim 2, we present how it will be used to finish the whole algorithm of Lemma 7.
For every pair (A, D) ∈ L large we again proceed by brute force, but we take Claim 2 into consideration as well. That is, we output as candidates all sets of form A i ∪ Y , where Y is a subset of Q of size at least 2 3 |Q|. By applying Fact 1 to the complement of Y , we infer that the number of produced choices is at most 2 σ m ≤ 2 σm = φ((A, D)), where again m = |Q|. Thus, the total number of candidates produced in this manner is at most Concluding, the algorithm will produce at most 2 · 2 3+σ 4 |V (R)| candidates for Y : 2 3+σ 4 |V (R)| for L small and 2 3+σ 4 |V (R)| for L large . Hence we can take ρ = 3+σ 4 . Claim 2 ensures that Y will be among the candidates enumerated for L large providing that (A i 0 , D i 0 ) ∈ L large , while we have already argued that Y will be among the candidates enumerated for L small providing that (A i 0 , D i 0 ) ∈ L small .
We now proceed to the proof of Claim 2.
Proof of Claim 2. Assume for the sake of contradiction that |Q ∩ Y | < 2 3 |Q|. Then, since |Q| ≥ We construct a set T ⊆ Q \ Y with the following properties: • T is independent in G; • no two vertices of T are adjacent to the same connected component of R[Y ]; • |T | ≥ γn 104C 3 .
The construction of T is performed greedily. We iteratively pick to T an unused vertex v of Q \ Y and mark the following vertices of Q \ Y as used: (i) v itself, (ii) all the neighbours of v in Q \ Y , and (iii) all the vertices of Q \ Y that are adjacent to any component of R[Y ] adjacent to v. Recall that the degrees in R \ D are bounded by 3C and Q ⊆ V (R) \ D, so v can have at most 3C neighbours in Q \ Y . For the same reason, v can be adjacent only to at most 3C connected components of R[Y ]. Each of these components is of size at most C, and each vertex contained in any such component can be adjacent to only 3C vertices of Q \ Y . In total, the number of vertices marked as used, including v itself, is at most 1 + 3C + 3C · C · 3C ≤ 13C 3 . Hence, we can always find an unused vertex for at least |Q\Y | 13C 3 ≥ γn 104C 3 rounds. From the construction it trivially follows that the constructed T has the first two requested properties.
We now claim that R[T ∪ Y ] ∈ Π. Indeed, from the fact that vertices of T have degree at most 3C in R \ D we infer that the connected components of R[T ∪ Y ] need to be of size at most 1 + 3C 2 .
∈ Π, then there would be a forbidden induced subgraph from F Π in R[T ∪ Y ]. As all graphs in F Π are connected, this subgraph would need to be contained in one of the connected components of R[T ∪ Y ], and hence would be of size at most 1 + 3C 2 . However, we assumed that G does not contain any graph from F Π of size at most = 1 + 3C 2 , a contradiction. Hence We conclude the proof with the crucial observation. Define another candidate H for the optimum solution by taking H = G[X ∪ Y ∪ T ]. In other words, we remove the clique S from the solution H, and insert the set T instead. Clearly, H is a disjoint union of graphs G[X] and G[Y ∪ T ]; as both of these graphs belong to Π, so does H . Moreover, as |S| = αn < γn 104C 3 ≤ |T |, we have that |V (H )| > |V (H)|. This is a contradiction with optimality of H.
As discussed before, Claim 2 finishes the proof of Lemma 7.

Summary of the order of choice of constants
In this section we give a short summary of the order of choice of constants. In the following, by running time faster than 2 n we mean running time of form O * (2 κn ) for some κ < 1.
We now proceed with Case B.1.2. We first fix any ε > 0 such that ε < 0 . As observed in this case, given ε > 0 we can find a positive upper bound 1 < 0 on α, β, γ, δ, such that for any choice of α, β, γ, δ smaller than 1 we obtain running time faster than 2 n .
We proceed similarly with Case B.1.1. We fix any δ > 0 such that δ < 1 . Again, as observed in this case, given δ > 0 we can find a positive upper bound 2 < 1 such that choosing α, γ to be smaller than 2 results in running time faster than 2 n . Now we examine Branch B.2. Let us fix any γ > 0 such that γ < 2 . Recall that the running time in this branch was O * ( n αn · n γn L and ρ < 1 is a universal constant. Hence, given γ > 0 we can find a positive lower bound L 0 ≥ 2 on L and a positive upper bound 3 < 2 on α, such that taking any L > L 0 and positive α < 3 gives us running time faster than 2 n . We fix any L > L 0 , and by lowering 3 if necessary we ensure that inequality 3 < γ 104C 3 holds, where C = L/γ. Then we can fix the remaining two constants: we fix β to be any positive constant smaller than 1 so that Step 2 runs faster than 2 n , and α to be any positive constant smaller than 3 . Thus we make sure that in Branches B.1 and B.2 we obtain running time faster than 2 n . Since Case A works faster than 2 n for any α > 0, namely in O * (2 (1−(1−κ 0 )α)n ) time for some κ 0 < 1 depending only on ℵ, we infer that the whole algorithm runs faster than 2 n . Note however, that we assumed that the algorithm runs on F Π -free graphs, where F Π consists of graphs of F Π of size at most , for = 3C 2 + 1 = 3 L 2 γ 2 + 1. Since F Π is a finite family of graphs, we can apply Proposition 2 as described in Section 4 before Step 1, and obtain running time faster than 2 n for the general problem.

Conclusion
Theorem 5 shows that for any class of graphs Π satisfying Properties (1)-(4), a maximum induced subgraph from Π of an n-vertex graph can be found in time O * (2 λn ) for some λ < 1. Pipelining Proposition 2 with Theorem 5 shows that we moreover may add any finite family of forbidden subgraphs on top of belonging to Π. More precisely, we have the following theorem.
Theorem 8. Let F be a finite set of graphs and Π be a class of graphs satisfying Properties (1)-(4). There exists an algorithm which for a given n-vertex graph G, finds a maximum induced F-free Π-graph in G in time O * (2 λn ) for some λ < 1, where λ depends only on ℵ and F.
As mentioned in the introduction, Theorem 8 covers such graph classes as proper interval graphs (claw-free interval graphs), Ptolemaic graphs (chordal and gem-free), block graphs (chordal and diamond-free), or proper circular-arc graphs (chordal, claw-free, andS 3 -free). We refer to [1] for the definitions and discussions on these graphs.
In this manner, we hope to provide a new insight into Hypothesis 1 by considering chordallike graph classes. So far the research on breaking the 2 n barrier for the Maximum Induced Π-Subgraph problem concentrated mostly on exploiting sparsity of a graph class, like in [5,7,17], or thinness in terms of treewidth, like in the metaresult of Fomin et al. [8]. In this work we were dealing with graph classes which inherently allow existence of large cliques, and thus a new set of tools was needed. Shortly speaking, the crux of our approach is to use existence of balanced clique separators in chordal graphs to apply the 2- Table trick of Schroeppel and Shamir [20]. However, this application needed to be preceeded by a long and technical preparation of the instance at hand.
Clearly, the most important research direction stemming from our work is further investigation of Hypothesis 1. Since we believe that the fully general statement might turn out to be either false or very hard to prove, we propose some relaxations that can be more approachable.
Firstly, following the approach of Fomin et al. [8] one could require the graph class Π to be moreover definable in some logical formalism, for example in CMSO 2 (monadic second-order logic with modulo predicates and quantification over edge subsets) or CMSO 1 (the same as CMSO 2 , but without quantification over edge subsets). It can be easily seen that both chordal and interval graphs are definable in CMSO 1 by testing existence of any of the forbidden induced subgraphs. We have two concrete examples of hereditary, polynomial-time recognizable, and CMSO 1 -definable graph classes for which we do not know any algorithm faster than 2 n : • Perfect graphs can be defined as graphs which do not contain an odd hole nor an odd anti-hole; this result is known as the Strong Perfect Graph Theorem [3]. Perfect graphs are hereditary, polynomial-time recognizable [2], and containing an odd hole or an odd anti-hole can be easily expressed in CMSO 1 .
• Strongly chordal graphs are chordal graphs that moreover exclude -suns for ≥ 3 as induced subgraphs; we refer to [1] for a broader discussion of this graph class. They are also hereditary, polynomial-time recognizable [1], and definable in CMSO 1 . The reason why they do not fall under the regime of Theorem 8 is that -suns contain arbitrary large cliques and thus Property (2) is not satisfied.
Secondly, one could impose some structural properties on the set of forbidden induced subgraphs F Π . One obvious relaxation, already used in Property (2), is requiring that all the graphs from F Π are connected, or equivalently that Π is closed under taking disjoint union. More restrictions on the graphs from F Π can be further imposed. For instance, it would be interesting to see if requiring that all the graphs from F Π have treewidth bounded by some constant could help in breaking the 2 n barrier; note that this subsumes both the case of chordal and of interval graphs.
Finally, one could deviate from the precise statement of Hypothesis 1 and replace the condition of being hereditary with connectivity. That is, we would like to find a maximum induced connected graph belonging to Π. Of course, our approach fails since the connectivity requirements are not hereditary, and thus Property (1) is not satisfied. Say, can a maximum induced connected chordal subgraph be found faster than 2 n ?