Fast Algorithms for max independent set

We first propose a method, called “bottom-up method” that, informally, “propagates” improvement of the worst-case complexity for “sparse” instances to “denser” ones and we show an easy though non-trivial application of it to the min set cover problem. We then tackle max independent set. Here, we propagate improvements of worst-case complexity from graphs of average degree d to graphs of average degree greater than d. Indeed, using algorithms for max independent set in graphs of average degree 3, we successively solve max independent set in graphs of average degree 4, 5 and 6. Then, we combine the bottom-up technique with measure and conquer techniques to get improved running times for graphs of maximum degree 5 and 6 but also for general graphs. The computation bounds obtained for max independent set are O ∗(1.1571 n ), O ∗(1.1895 n ) and O ∗(1.2050 n ), for graphs of maximum (or more generally average) degree 4, 5 and 6 respectively, and O ∗(1.2114 n ) for general graphs. These results improve upon the best known results for these cases for polynomial space algorithms.


Introduction
Very active research has been recently conducted around the development of optimal algorithms for NP-hard problems with non-trivial worst-case complexity (see the seminal paper [10] for a survey on both methods used and results obtained).Among the problems studied in this field, max independent set (and particular versions of it) is one of those that have received a very particular attention and mobilized numerous researchers.
Given a graph G = (V, E), max independent set consists of finding a maximum-size subset V ′ ⊆ V such that for any For this problem the best published worst-case complexity bound is, to our knowledge, the O * (1.2210 n ) bound [5].We also quote the O * (1.1889 n ) bound claimed in the unpublished technical report [9].
Let T (•) be a super-polynomial and p(•) be a polynomial, both on integers.In what follows, using notations in [10], for an integer n, we express running-time bounds of the form p(n) • T (n) as O * (T (n)), the star meaning that we ignore polynomial factors.We denote by T (n) the worstcase time required to exactly solve the considered combinatorial optimization problem on an instance of size n.We recall (see, for instance, [4]) that, if it is possible to bound above T (n) by a recurrence expression of the type T (n) ≤ T (n−r i )+O(p(n)), we have T (n−r i )+O(p(n)) = O * (α(r 1 , r 2 , . ..) n ) where α(r 1 , r 2 , . ..) is the largest root of the function f (x) = 1 − x −r i .
In this paper we consider max independent set in general graphs, but also on (connected) graphs with "small" average degree, more precisely with average degree at most 3, 4, 5 and 6, and on graphs of small bounded degree.
Dealing with max independent set in graphs of maximum degree 3, faster and faster algorithms have been devised for optimally solving this problem.Let us quote the O * (1.1259 n ) algorithm in [1], the O * (1.1254) algorithm in [3], the O * (1.1120) algorithm in [6], the O * (1.1034 n ) algorithm in [7], the O * (1.0977 n ) algorithm by [2] and, finally, the recent O * (1.0892 n ) algorithm in [8].As a first result, we improve in this paper the bound of [8] down to O * (1.0854 n ) by proposing a finer and more detailed case analysis based upon powerful reduction rules (Section 2).Our result remains valid also for connected graphs of average degree bounded by 3. We then propose a generic method extending improvements of the worst-case complexity for max independent set in graphs of average degree d to graphs of average degree greater than d.This "bottom-up" method of carrying improvements of time-bounds for restrictive cases of a problem to less restrictive ones (the latter including the former) is, as far as we know, a new method that could be very useful for strengthening time-bounds not only for max independent set but also for other graph-problems where local worst configurations appear when maximum degree is small.
In order to informally sketch the method, suppose that one knows how to solve the problem on graphs with average degree d in time O * (γ n d ).Solving the problem on graphs with average degree d ′ > d is based upon two ideas: we first look for a running time expression of the form α m β n , where α and β depend both on the input graph (namely on its average degree), and on the value γ d (see Section 3).In other words, the form of the running time we look for is parameterized by what we already know on graphs with smaller average degrees.Next, according to this form, we identify particular values d i (not necessarily integer) of the average degree that ensure that a "good" branching occurs.This allows us to determine a good running time for increasing values of the average degree.Note also that a particular interest of this method lies in the fact that any improvement on the worst-case complexity on graphs of average degree 3 immediately yields improvements for higher average degrees.A direct application of this method leads, for instance, for max independent set in graphs with average degree 4, to an upper complexity bound that already slightly outperforms the best known bound of [1] (Section 3).This result is further improved down to O * (1.1571 n ) (Section 4) with a more refined case analysis.
Finally, in section 5, we combine measure and conquer techniques with ours to compute max independent set within running time O * (1.2125 n ) on general graphs, thus improving the best known published result of O * (1.2210 n ) [5].Furthermore, in graphs of maximum degree at most 5 and 6, we provide bounds of O * (1.1918 n ) and O * (1.2070 n ), respectively, that improve upon the corresponding bounds of O * (1.2023 n ) and O * (1.2172 n ) in graphs of maximum degree 5 and 6 by [5].
Throughout this paper, we will denote by N (u) and N [u] the neighborhood and the closed neighborhood of u, respectively (N (u) = {v ∈ V : (u, v) ∈ E} and N [u] = N (u) ∪ {u}).

Graphs of average degree at most 3
We propose in this section an O * (1.0854 n ) branch-and-reduce algorithm for the Maximum Independent Set problem on connected graphs of average degree at most 3 (or for graphs where each connected component has average degree at most 3).
Informally, our algorithm works as follows.First it applies a series of well known reduction rules that simplify the instance without branching.Next, it looks for vertex separators (i.e., for sets of vertices the removal of which disconnect the graph) of size 1 or 2 in the graph and uses them to further simplify the instance.Then, it exploits any separator that consists of the closed neighborhood of a single degree 3 vertex that separates a tree from the rest of the graph.Finally, the algorithm branches on a vertex in the graph: in one branch it is taken in the independent set and in the other branch it is discarded.We will show that we can always branch in a way that allows a worst case running time of O * (1.0854 n ).
As in [2,6], we use the quantity m−n as complexity measure in the analysis of the algorithm, where m is the number of edges and n the number of vertices of the graph.The resulting upper bound on the running time of O * (γ m−n ) implies a O * (γ 0.5n ) algorithm on graphs in which each connected component has average degree at most 3.The bound on the average degree of each connected component exists because, when connected components are trees, m − n = −1; these trees are removed by reduction rules possibly increasing m − n to over 0.5n for the remaining graph.

Simple reduction rules and small separators
Before branching, our algorithm applies the following well known reduction rules.They are thoroughly described in many publications [2,5,6] and require no further explanation.Let I be the independent set that is being computed by our algorithm in the input graph G.
First, if G is disconnected, solve each connected component separately.Also, take degree-0 and 1 vertices in I and remove all the neighbors of the latter ones (degree-1 vertices).Moreover, if for any two vertices u, v: N [u] ⊆ N [v], then we say that u dominates v and we remove v.This domination rule is correct because in any maximum independent set containing v, v can be replaced by u.Notice that domination forces degree 2 vertices with adjacent neighbors to be in I.
If there exists a vertex v of degree 2 with non-adjacent neighbors u, w, the algorithm removes v, merges u and w into a single vertex, and adds 1 to the size of I.This degree 2 rule is also called vertex folding.Its correctness is based upon the fact that if v is not in I, then we can put both neighbors in I because taking v gives an alternative of the same size to the fact of taking only one neighbor of v.
If these reduction rules do not apply, the graph is of minimum degree 3. The algorithm then follows the approach of [6] and looks for vertex separators of size at most 2. If the graph contains a vertex separator of size 1 or 2, recursively solve the smallest component and adjust the rest of the graph to the computed solution.For completeness, we have included the details from [6] in Section 2.1.1.
Finally, if G is of maximum degree 4, the algorithm looks at local configurations in which the closed neighborhood of a vertex separates a tree from the rest of the graph.If in a maximum degree 4 graph the closed neighborhood of a single degree 3 vertex v separates a tree from the rest of the graph, then we can replace this local configuration with a smaller equivalent one.How this reduction rule works is explained in Section 2.1.2.

Small vertex separators
Following the approach of [6], we exploit vertex separators of size 1 and 2.Although using these separators is always beneficial, we only need separators related to a component of constant size to prove our time bound.In this case, the graph is reduced in constant time.
Let v be an articulation point of G (i.e., a vertex whose removal disconnects G) and let C ⊂ V be the vertices of the smallest component (vertices in If the algorithm finds a 2-separator {u, v} of a constant size component C ⊂ V , then it computes a maximum independent set in the four subgraphs induced by C and any combination of vertices from the separator.Let I v, u be the computed maximum independent set in G[C], I v, u the computed maximum independent set in G[C ∪{v}], I v,u the computed maximum independent set in G[C∪{u}], and I v,u the computed maximum independent set in G[C∪{u, v}].Now consider the following possible cases: The algorithm now computes a maximum independent set in G[V \ C] and returns I ∪ J where J is the set from {I v, u , I v, u , I v,u , I v,u } that agrees with I on u and v.

|I
with an additional edge added between u and v. Similar to the previous case, the algorithm computes a maximum independent set in G ′ and returns I ∪ J, where J is one of the four possible independent sets that agree on u and v.

|I
(and the symmetric case).v can now safely be discarded since it does not help increasing the size of the independent set in C ∪ {v}.
The algorithm recursively computes maximum independent set I in G[V \ (C ∪ {v}] and returns I ∪ J, where J is the independent set from {I v, u , I v,u } that agrees on u.In each case, we decide whether discarding u and/or v is optimal.If they cannot be discarded, we let the recursive call on the larger component decide on their membership of the maximum independent set.

Details of the tree separators rule
Whenever the closed neighborhood of a degree 3 vertex separates trees from the rest of the graph in a maximum degree 4 graph, we claim that we can replace the instance by a smaller equivalent one.In this section, we give a proof of this claim.Let a, b, c be the neighbors of v. Notice that they all have at least one edge not incident to v or to the tree T , because otherwise there exists a small vertex separator.Hence there are at least three and at most six edges between N (v) and T , and there exists at most one edge in G[N (v)].
First consider the case where there exists an edge in N (v) and hence |T | ≤ 2. In this case, the maximum independent set in G[N [v] ∪ T ] is of size 2, and hence we can safely pick those vertices in I that pose no restrictions on the remaining graph: v and one vertex from T .This is easy to see if T is a single vertex, namely taking v or T in I forbids taking a, b and c, and because of the edge in N (v) it is not possible to take all tree vertices of N (v).If |T | = 2 and without loss of generality a is connected to both vertices in T , then we cannot take three vertices if we take v because this forbids taking a, b and c while there is an edge in T .Also, we cannot take three vertices if we take a because this forbids taking v and T while there is an edge between b and c.The remaining vertices form a 4-cycle, and thus I has at most two vertices from N (v) ∪ T .
Secondly, if there is no edge in N (v) and |T | ≤ 2, then we merge N [v] ∪ T to a single vertex and add 2 to the size of I.This is similar to vertex folding.Namely, the only maximum independent set in G[N [v] ∪ T ] equals N (v), while if we do not take these three vertices we can safely pick the non-restricting size 2 option consisting of v and one vertex from T .Merging the local structure to a single vertex postpones this choice.This is clearly correct if |T | = 1 since taking v or T in I forbids taking any vertex in N (v).Furthermore, if |T | = 2, then taking v in I again forbids taking any vertex in N (v) and taking any vertex of T in I forbids taking anything except for v and one of its neighbors: this again does not allow three vertices to be picked.1).If we would have taken a in I, then we would forbid all vertices in N (v) ∪ T except for b, c and one vertex in T .By adjacency, we can take only two of these vertices making our initial choice a safe alternative.The same argument goes for taking b in I. Thus, with a and b discarded, we can safely pick the degree 1 vertex v and hence also the maximum independent set in G[T ] in I. What remains is the case |T | = 4.If T has three leaves, then there is only one way to pick four vertices in I: v and the three leaves of T .This does not restrict any choice in the rest of the graph and hence is optimal.Otherwise, T is a 4-vertex path and all local configurations of G[N [v] ∪ T ] have a maximum independent set of size 3. Again, picking v and a maximum independent set in G[T ] is a safe choice.Now let us look at the effect of the reduction rules to the m − n measure.The measure is invariant under the degree 1 and 2 rules: they remove as many edges as vertices.The degree 0 rule increases the measure, but we always treat this (one vertex) tree separately.Furthermore, after application of these rules, the domination and small/tree separator rules decrease m − n by at least 2.

The branching of the algorithm
If no reduction rule applies and no small separator exists, then our algorithm branches, producing several subproblems that are solved recursively.In one branch, a vertex is taken in I and hence it is removed together with its neighborhood.In the other, the vertex is not taken in I and is removed.We thoroughly analyse the local structures involved, removing more vertices and edges when possible.
The description of the branching of our algorithm is described by means of four lemmata given in what follows.Before describing the branching, we need the concept of a mirror (see for example [5] ] is a clique, or equivalently, every combination of two non-adjacent vertices in N (v) contains a vertex from N (v ′ ).Whenever the algorithm branches on v and discards it, it can discard all its mirrors as well.This is because at least two neighbors of v should be in I since taking v is an alternative of equal size to taking only one.
In the analysis, we denote by T (k) the number of subproblems generated when branching on a graph G of complexity m − n = k.Using the m − n measure, we have to be careful when trees are separated from G since they have complexity −1.This will not happen in branches where at most two vertices are removed because of the small separator rule.The same holds for branches where the neighborhood of a single degree 3 vertex (sometimes through domination) is removed in a maximum degree 4 graph because of the tree separators rule.When trees can be separated, we often bound quantity m − n by counting the number of external edges.When considering removal of a set of vertices S ⊂ V from G, external edges are the edges connecting G[S] to the rest of G.
We now state the four lemmata concerning the branching of our algorithm.Let us recall that vertex foldings may increase the degrees of the vertices of the remaining graph.In the statements of the lemmata below, the graph G is indeed the remaining graph after some of its vertices are fixed or folded.We first deal with the case of (current) graphs of maximum degree 4 (Lemma 1), next with graphs of degree at least 5 (Lemma 2); finally, we settle in Lemmata 3 and 4 the case of graphs of maximum degree 3.
Lemma 1 If G is of maximum degree 4, then either one of the following occurs: 1. G has a vertex of degree 4 that is part of a 3-or 4-cycle also containing at least one degree 3 vertex, and there are no 3-or 4-cycles containing only degree 3 vertices, then: 2. G has a vertex of degree 4 that is part of a 3-or 4-cycle also containing at least one degree 3 vertex, and there is no constraint on the degree 3 vertices, then: 3. The previous do not apply and then T (k) ≤ T (k − 3) + T (k − 7).
The proof of Lemma 1, strongly relies on the fact that we can perform very efficient branching on graphs with degree 4 vertices.Moreover, we require even more efficient branching when every 3-and 4-cycle contains a degree 4 vertex.In this section, we describe the branching that satisfies these requirements.The proof of Lemma 1 uses the fact that in a 3-cycle containing a degree 3 vertex we can often branch in such a way that we can apply the domination rule.Furthermore, in a 4-cycle containing a degree 3 vertex, we can use that the vertex opposite the degree 3 vertex is a mirror of this vertex.Actually, the only 4-cycles in which this does not happen are 4-cycles consisting only of degree 4 vertices.These observations are similar to those used in the proof of Lemma 4, but in contrast, the proof of Lemma 1 given just below uses a more detailed case analysis.
Proof.We start the proof by noticing that our reduction rules guarantee that no trees can be separated from G when we branch on a degree 3 vertex.Furthermore, no trees are separated from G when discarding a vertex that by domination leads to a single degree 3 vertex to be taken in I.
We first consider all possible 3-cycles containing both degree 3 and 4 vertices.Then we consider all possible 4-cycles containing both degree 3 and 4 vertices in a 3-cycle free graph.In each such subcase, cases 1 and 2 from the statement of the lemma are proved.Thereafter, the remaining case 3 will be proved.

3-cycles with two degree 4 vertices and a degree 3 vertex
Let x, y, w be a 3-cycle in the graph with d(x) = d(y) = 4 and d(w) = 3, also let v be the third neighbor of w.Notice that discarding v causes domination which results in w being taken in the maximum independent set.
If v is of degree 4, discarding v and taking w leads to the removal 11 edges and 4 vertices: T (k − 7).Taking v and removing N [v] results in the removal of 3 edges incident to w and at least 8 more edges and 5 vertices.If in this last case all neighbors of v are of degree 3, then there are at most 6 external edges not incident to w.In this case, there can be at most one tree since the neighbors of w are fixed and cannot form a tree because then there would be a small separator.We obtain T (k − 6 + 1).If not all neighbors of v are of degree 3, then the degree 4 neighbors of v cause even more edges to be removed compensating for any possible additional tree.If v is of degree 3 (Figure 2), discarding it and taking w instead, leads to the removal of of at least 10 edges and 4 vertices: T (k − 6).In this case, if v is not part of another 3-cycle or v has a degree 4 neighbor (case 1 of the lemma) taking v removes at least 9 edges and 4 vertices: T (k − 5).On the other hand, if v is part of a 3-cycle of degree 3 vertices (case 2 of the lemma) taking v removes 9 edges and 4 vertices:

3-cycles with one degree 4 vertex and two degree 3 vertices
When there is only one degree 4 vertex, the situation gets a lot more complicated.Let x, a and b be the 3-cycle vertices with d(x) = 4 and d(a) = d(b) = 3, also let v be the third neighbor of a, and let w be the third neighbor of b (Figure 3).By domination, we know that v and w are not adjacent to x, and that v = w.If v and w are adjacent, we can safely discard x reducing the graph.This follows from the fact that if we pick v, we would also pick b, and if we discard v, its mirror b is also discarded which results in a being picked.In both cases, a neighbor of x is in a maximum independent set, and hence x can safely be discarded.So, we assume that v and w are non-adjacent.If v or w, say v, is of degree 4, taking v removes at least 11 edges and 5 vertices, but since there are 6 external edges there can be a tree: T (k − 5).Furthermore, if there are more external edges (less edges in N (v)) the number of removed edges increases.Discarding v and by domination taking a leads to the removal of 10 edges and 4 vertices: T (k − 6).So, from now on, we can assume that v and w are of degree 3. Consider the case where v or w, say v, has a degree 4 neighbor y (Figure 4).Suppose that y does not form a 3-cycle with v, then taking v removes at least 10 edges and 4 vertices: T (k − 6).Discarding v and by domination taking a removes at least 9 edges and 4 vertices: T (k − 5).If, on the other hand, y forms a 3-cycle with v, then we branch on w.If, in this case, w has a degree 4 neighbor or is not involved in a 3-cycle (case 1 of the lemma), then taking w results as before in T (k − 5).Discarding w by domination results in taking b; this, again by domination, results in taking v.In total 15 edges are removed from which 7 external edges and 7 vertices.Because of the small separators, there can be at most 2 additional adjacencies in the worst case leaving 3 external edges and T (k − 6).Note that trees are beneficial over additional adjacencies.This leaves the case where w has only degree 3 neighbors with which it forms a 3-cycle (case 2 of the lemma).In this case, taking w only leads to T (k − 4) which now is enough.So, we can assume v and w to be of degree 3 and have no degree 4 neighbors.Suppose that v or w, say v, is part of a 3-cycle (Figure 5).Notice that we are now in case 2 of the lemma.We branch on w.In the first branch, we take w and the worst case arises when w is also part of a 3-cycle; 8 edges and 4 vertices are removed: T (k − 4).In the other branch, we discard w and by domination b and v are put in I removing a total of at least 14 edges from which 6 external edges and 7 vertices.Because of the small separator rules, the external edges can form at most one additional adjacency or tree leading to T (k − 6).So, at this point, we can also assume that v and w are not part of any 3-cycle.Suppose that v or w, say w, has a neighbor u = a, b that is adjacent to x (Figure 6).We branch on v.In the branch where we discard v, a is picked by domination and we still have T (k − 5).In the branch where we take v, b will become a degree 2 vertex with neighbors x and w that will be folded.Notice that both x and w are adjacent to u, and hence this folding removes an additional edge: T (k − 6).The only case in which the above does not hold is when v and w are both a neighbor of u.We reduce this exceptional case by noting that the tree separators rule fires when considering branching on u (without actually branching on u of course) because this would create the size 2 tree {a, b}.Hence, now we can also assume that v and w have no neighbors besides a and b that are adjacent x.
The rest of the analysis of this case consists of three more subcases depending on the number of vertices in X = (N (w) ∪ N (v)) \ {a, b}.Because of the degrees of w and v: 2 ≤ |X| ≤ 4.  If |X| = 2, v and w are adjacent to both vertices in X (Figure 7).Notice that if we take v in I, it is optimal to also pick w and vice versa.We use this and branch by taking both v and w in I, or discarding both.If we take both v and w in I, 11 edges are removed and 6 vertices: T (k − 5).If we discard both v and w, then we can take a in the independent set and remove 11 edges and 5 vertices: T (k − 6).With this special kind of branching, we have to check that we do not separate trees from G.This cannot be the case when taking both v and w in I since there are only 4 external edges.Furthermore, this can also not be the case when discarding both v and w.Then, only two tree leaves are formed which are either adjacent, which results in a small separator, or adjacent to the only degree 2 vertices (neighbors of x), which also results in a small separator or even a constant size component.Furthermore, there cannot exist additional adjacencies because then there also exist a small separator.If |X| = 3, let u ∈ X be the common neighbor of v and w and let t ∈ X be the third neighbor of w (Figure 8).We branch on t.If we take t in I, we also take b by domination.This results in the removal of 7 vertices and 15 edges if t has a degree 4 neighbor or if there is no 3-cycle involving t.Otherwise, only 14 edges are removed.We have the required T (k − 6) or T (k − 5) since there can be at most 8 external edges with this number of removed edges, and hence at most 2 additional adjacencies or trees.If we discard t, 3 edges and 1 vertex are removed and the folding of w results in the merging of vertices b and u.The new vertex can be discarded directly since it is dominated by a resulting in an additional removal of 4 edges and 1 vertex.This leads to T (k − 5) in total.Furthermore, we cannot separate trees in this way since there can be at most one vertex of degree less than 2 (adjacent to t and u, but no to w) which cannot become an isolated vertex.Depending on whether t is in a 3-cycle, we are in case 1 or 2 or the lemma and we have a good enough branching.
Finally, if |X| = 4, all neighbors of v and w are disjoint.We branch on v.If we take v in I, we remove 9 edges and 4 vertices, and if we discard v, we take a and again remove 9 edges and 4 vertices.This T (k) ≤ T (k − 5) + T (k − 5) branching is not good enough, and therefore we look to the result of both branches.
If we take a in I, w is folded resulting in the removal of an additional edge if its neighbors have another common neighbor.In this case, we are done.But if this is not the case, the folding of w results in a degree 4 vertex.In the other branch where we take v, b is folded resulting in another degree 4 vertex.We now apply the worst case of this lemma (case 3) inductively to our two T (k − 5) branches and obtain T (k) ≤ 2T (k − 8) + 2T (k − 12) as in the lemma.
We remark that T (k) ≤ T (k − 5) + T (k − 5) has a smaller solution than T (k) ≤ 2T (k − 8) + 2T (k − 12).However, after the bad branch in a 3-regular graph of Lemma 3 the second recurrence gives a better solution when applied in the T 1 (k − 2) branch.This is because it is a composition of three branchings that are all much better than the bad 3-regular graph branching: the composition has more "weight".

4-cycles in which a degree 4 vertex is a mirror of a degree 3 vertex
Let x be the degree 4 vertex that is a mirror of the degree 3 vertex v, let a and b be their common neighbors, and let w be the third neighbor of v (Figure 9).If we branch on v and take v in I, we remove at least 9 edges and 4 vertices.When we discard v and also x because it is a mirror of v, we remove 7 edges and 2 vertices.This gives the insufficient T (k) ≤ T (k − 5) + T (k − 5).Notice that if we discard v and x, there can be no trees since then v and x would form a small separator.Also, any additional adjacency (a and b adjacent) results in 3-cycles involving degree 3 and 4 vertices which are handled in the previous cases of this proof.First assume that a, b or w is of degree 4, then we have T (k − 6) or better when taking v in I. Hence, we can assume that a, b and w are of degree 3. We can also assume that a and b have no common neighbor outside this 4-cycle: if they would have such a neighbor, then the tree separators rule fires on a with possible size 1 tree b.
Let u and u ′ be the third neighbors of a and b, respectively.When discarding v and x, both a and b are taken in I and u and u ′ are discarded.This means that 13 edges form which 7 external edges and 6 vertices are removed.If u and u ′ are vertices of degree 3, then the only possible additional adjacencies are those between u and u ′ , or between u or u ′ and v.But there can be only one additional adjacency because otherwise there is a small separator.So we end up removing 12 edges from which 5 external edges and 6 vertices which cannot create trees: T (k − 6).Finally, if u or u ′ is of degree 4 then the additional edges removed compensate for any possible additional adjacency or separated tree.

4-cycles that contain degree 3 and 4 vertices while no degree 4 vertex is a mirror of a degree 3 vertex
This can only be the case if the cycle consists of two degree 4 vertices x, y and two degree 3 vertices u, v with x and y not adjacent.There are no other adjacencies than the cycle between these vertices because then we would apply branchings from the analysis of 3-cycles.Suppose that either u or v, say v, has a third degree 4 neighbor z (Figure 10).Notice that this neighbor cannot be adjacent to either x or y.If we branch on v and take v in I, we remove 12 edges and 4 vertices.When we discard v and its mirror u, we remove 6 edges and 2 vertices.Thus, we have T (k) ≤ T (k − 8) + T (k − 4) giving a better branching behaviour than required by this lemma.So, we can assume that u and v have no degree 4 neighbors not on the 4-cycle.
Let w be the degree 3 neighbor of v.It is not adjacent to u since that would imply that x and y are mirrors of w.Since w cannot be adjacent to x or y, taking v in I results in the removal of 11 edges and 4 vertices: T (k − 7).Discarding v and u leads to the removal of 6 edges and 2 vertices and hence a graph of complexity k − 4. In this case, x and y will be folded.Because they are not adjacent to other created degree 2 vertices (then there exist 3-cycles involving degree 3 and 4 vertices), a vertex of degree at least 4 is created, or at least one additional edge is removed.It is also possible that a reduction rule different from the degree 0, 1 or 2 rules fires on the new graph.In this last case we have T (k − 4 − 2) giving T (k) ≤ T (k − 6) + T (k − 7).If an additional edge is removed, then this leads to T (k) ≤ T (k − 5) + T (k − 7).Otherwise, if both options do not apply, we apply the worse case of this lemma inductively to our new degree 4 vertex and obtain T (k) ≤ 2T (k − 7) + T (k − 11).These recurrences are sufficient to prove our running time.
A degree 4 vertex that is not involved in any 3-or 4-cycle with any degree 3 vertex We finally arrive at case 3 of our lemma.Let x be this degree 4 vertex.If all its neighbors are of degree 3, branching on it results in T (k) ≤ T (k − 7) + T (k − 3).In this case, no trees can be separated since any tree leaf is of degree at least 3 before branching and therefore must have at least 2 neighbors in N (x) to become a leaf.But in this last case, there exist 4-cycles with degree 3 and 4 vertices on it which contradicts our assumption.
If x has degree 4 neighbors, still no trees will be separated unless at least three neighbors of x are of degree 4 and every tree leaf was of degree 4 before branching.In this case, the additional degree 4 vertices result in the removal of more edges.If x has three neighbors of degree 4, then at least 13 edges are removed from which 7 are external edges.This can lead to at most one tree and thus gives T (k − 7) as required.If there are more external edges, more edges will be removed compensating for any possible separated tree.Finally, if x has four degree 4 neighbors, we remove at least 12 edges from which 4 external edges again leading to T (k − 7).Again, the existence of any separated tree implies more external edges that are removed and compensate for the tree.The proof of Lemma 1 is now completed.
Proof.Consider such a vertex v (Figure 11) and assume that one branches on v.If v is discarded, one vertex is removed and at least 5 edges are removed, giving T (k − 4).If v is taken in I, N [v] is removed.All vertices in N (v) have at least one neighbor outside of N [v] by domination.In the worst case, N (v) consists of degree 3 vertices, hence there are at most two edges in G[N (v)] and at least six external edges.If no trees are created, this sums to 13 edges and 6 vertices giving T (k − 7).Furthermore, if there are more external edges because either a vertex in N (v) has degree 4 or more, or there are fewer edges in G[N (v)], then the number of external edges increases giving T (k − 7) or better depending on the fact that trees are separated from G or not.It remains to handle the special case where the minimum amount of 13 edges is removed and a separate tree is created.This tree will be a single degree 3 vertex t since otherwise there exists a 2-separator in N (v).Notice that v is a mirror of t.We branch on t.Taking t in I leads to the removal of 4 vertices and 9 edges: T (k − 5).Furthermore, discarding t and v leads to the removal of 8 edges and 2 vertices: Lemma 3 If G is 3-regular and 3-and 4-cycle free, then T (k) ≤ T 1 (k − 2) + T 3 (k − 5), or a better sequence of branchings exists1 .Here, we can apply items 1 and 3 from Lemma 1 to the branches denoted by T 1 and T 3 , respectively.
If there are no 3-or 4-cycles in G, that the algorithm can exploit, it is forced to perform a T (k) ≤ T (k − 2) + T (k − 5) branching on a degree 3 vertex v.This would give a running time much worse than the one we try to prove.However, Lemma 3 shows that either such a branching results in the creation of local structures that, thereafter, allow the much more efficient branching described in Lemma 1, or there are more straightforward ways to perform even better branchings.
The proof of Lemma 3 strongly relies on the fact that we assume G to be 3-and 4-cycle free, and therefore that after branching any new 3-or 4-cycle must involve folded vertices.It is based upon an extensive analysis of possible local structures that are the result of vertex folding after taking or discarding v.
Proof.In a 3-regular graph without 3-or 4-cycles, the algorithm is forced to perform a less efficient branching.If we consider branching on any vertex v, the branch where v is taken in I results in the removal of 9 edges and 4 vertices, and the other branch results in the removal of 3 edges and 1 vertex: Notice that our reduction rules guarantee that no trees can be separated from G since we branch on a degree 3 vertex in a maximum degree 3 graph.We can also assume that no other reduction rules than the degree 1 and 2 rules can be applied after branching.Namely, if such a reduction rule fires in the branch where we discard v, then we have the sufficient relation of T (k) ≤ T (k − 4) + T (k − 5).If such a rule fires only in the branch where we take v in I, then we follow the proof for the other branch below and obtain the sufficient relation of Let G be as in the statement of the lemma and let v be any vertex of G with neighbors x, y and z.We systematically consider the possible local neighborhoods around v and observe what happens to these local neighborhoods when branching on v.Because of 3-and 4-cycle freeness, v is the only common neighbor of any two vertices from the set {x, y, z}.By the same argument, there cannot exist adjacent vertices within N (x), N (y) or N (z).There can, however, be at most six adjacencies between vertices from two different neighborhoods.These adjacencies are important in the branch where v is discarded.Here, the remaining vertices in the closed neighborhoods of x, y and z are folded resulting in three new vertices.The adjacencies between the old neighborhoods N (x), N (y) and N (z) determine the new local structure on which we will branch next.Notice that whenever there are two adjacencies between the same neighborhoods, then vertex folding after discarding v leads to the removal of an additional edge because we do not allow double edges.
We begin by showing that we can easily deal with cases involving more than three of these adjacencies.If there are six, then we are looking at a connected component of constant size that can be solved in constant time.If there are five, then there are only two external edges out of and hence there exists a small separator.Finally, if there are four such adjacencies, then there are two situations possible.Either, there are two pairs of these adjacencies between the same two neighborhoods, or all three neighborhoods are adjacent.In the first case, discarding v causes vertex folding to remove two additional edges since double edges are removed implicitly: this gives T (k) ≤ T (k − 4) + T (k − 5).In the second case, the neighborhoods of x, y and z are folded resulting in two degree 3 vertices between which a double edge is removed and a degree 4 vertex.Branching on this degree 4 vertex afterwards gives us After filling in the worst case (case 3) of Lemma 1, we obtain two recurrence relations with a better branching behaviour than we need to prove.
We will continue by showing that we can always obtain a T 3 (k − 5) branch when taking v in I and discarding its neighbors.Removing N (v) results in the creation of six degree 2 vertices that will be folded.If any of these vertices are folded to degree 4 vertices, we can apply Lemma 1 and we are done.Consider the case in which no degree 4 vertices are created.In this case, the degree 2 vertices must form a set of chains of even length.By the previous argument, we know that there are at most three adjacencies between the vertices in (N (x) ∪ N (y) ∪ N (z)) \ {v}.These vertices are the new degree 2 vertices, and therefore the only possible way for them to be divided in even length chains is when they form three pairs of adjacent vertices.In this particular local structure, v lies on three 5-cycles, each pair of which overlaps in v and different neighbor of v.We obtain the required branching behaviour by deciding not to branch on v: either this connected graph G has a vertex with a different local configuration, or G has no such vertex and it equals the dodecahedron.We finish the argument by noting that the dodecahedron has 20 vertices and can be solved in constant time.
What remains is the T 1 (k−2) when discarding v.In this branch, vertex folding results in three folded vertices.Because the graph is 3-and 4-cycle free before applying this lemma, a new 3-or 4-cycle created by folding must involve the folded vertices.If such a 3-or 4-cycle is created, we can apply Lemma 1.Notice that the folded vertices are of degree 4 unless folding results in the implicit removal of double edges between folded vertices.If all folded vertices are of degree 4, we can apply Lemma 1 case 1 obtaining our result of T 1 (k − 2).If, on the other hand, additional edges are removed and we also consider the possibility that 3-or 4-cycles involving only degree 3 vertices are created, we can apply the slightly worse case 2 of Lemma 1 on the graph of complexity k − 3.This results in the even better behaviour of The cases in which no new 3-or 4-cycles are created by folding are treated next.These cases are handled by a closer inspection of each of the remaining possible local neighborhoods created by folding.Each time we let x ′ , y ′ and z ′ be the result of folding the neighborhoods of x, y and z to single vertices, respectively.Notice that by previous cases there are at most three adjacencies between x ′ , y ′ and z ′ , no 3-or 4-cycles exist involving (folded) degree 4 vertices, and that for each case we already have a T 3 (k − 5) branch when taking v.We will construct sequences of branchings that are efficient enough to obtain our running time.
When we consider to remove a set of vertices S from the graph we often speak of the related external edges.These external edges are the edges incident to the boundary of S, but not to the interior of S. We mostly need the number of these edges, in which case we count the number of end points.This, however, leads to counting edges in the boundary of S twice.We will call these twice counted edges additional adjacencies, and we will always consider how many additional adjacencies can exist before claiming how many edges are removed.

Three non-adjacent degree 4 vertices
We will perform a T (k) ≤ T 3 (k − 3)+ T (k − 9) branching after discarding v using some additional information we have on the maximum independent set we need to compute in this branch.This reasoning is quite similar to exploiting mirrors.Namely, if v is discarded we know that we need to pick at least two of the three neighbors of v: if we pick only one we could equally well have taken v which is done in the other branch already.This observation becomes slightly more complicated because we just folded the neighbors of v.The original vertex x is taken in the independent set if and only if the vertex x ′ is discarded in the reduced graph.Thus, the fact that we needed to pick at least two vertices from N (v) results in being allowed to pick at most one vertex from the three degree 4 vertices created by folding the neighbors of v. Hence, picking any vertex from the three folded vertices allows us to discard the other two (Figure 12).If we discard x ′ , we remove 4 edges and 1 vertex.Moreover, at least one degree 4 vertex remains in the graph after discarding x ′ giving T 3 (k − 3), or at least one additional edge is removed by folding resulting in T (k − 4) (which in this case is even better).If, in the other branch, we take x ′ in I, then we can discard all four degree 3 neighbors and both y ′ and z ′ resulting in the removal of 20 edges from which 16 external edges and 7 vertices.Because y ′ and z ′ are non adjacent and they can only be adjacent to a single neighbor of x ′ (or a 4-cycle would exist), there are at most two additional adjacencies and thus at least 12 external edges remain.If at most two trees are separated from the graph, this gives the T (k − 20 + 7 + 2 + 2) = T (k − 9) branch.
We will show that at most two trees can be separated from the graph.Whenever a tree is separated, we have some very specific local structures.Because of the 3-and 4-cycle freeness, every tree vertex t can only have neighbors that are at distance at least three away from each other in G[V \ {t}].The only size 1 trees that can be separated are adjacent to both y ′ and z ′ and a neighbor of x ′ that is not adjacent to either y ′ or z ′ .There can be at most one such tree, since two of these trees adjacent to the same two vertices also create a 4-cycle.Furthermore, it can only exist if y ′ and z ′ are adjacent to different neighbors of x ′ .This results in 9 remaining external edges that because of the small separators rule can form only one larger tree.If there is no size 1 tree, larger trees use more external edges and hence there can also be at most two of them.
In the above proof we have assumed that there are two additional adjacencies.There can, however, also be fewer additional adjacencies leaving more external edges to form trees.In this case, the fewer additional adjacencies lead to additional edges compensating for the possible additional tree.Altogether, we have Three degree 4 vertices only two of which are adjacent Identical to the previous case, we aim to perform a T (k) ≤ T 3 (k − 3) + T (k − 9) branching (or better) after discarding v.In the worst case, this gives Without loss of generality, assume that x ′ is adjacent to y ′ while z ′ is not adjacent to x ′ or y ′ .
If we discard x ′ , we remove 4 edges and 1 vertex.Now, either a degree 4 vertex remains giving the T 3 (k − 3), or an additional edge is removed by folding giving the in this case slightly better T (k − 4).If we take x ′ in I, we can also discard z ′ resulting in the removal of 17 edges from which 13 external edges and 6 vertices.There can be at most one additional adjacency, namely between z ′ and a degree 3 neighbor of x ′ .Any tree vertex must again be adjacent to vertices that are distance at least 3 away from each other in this structure.This can only be both z ′ and any neighbor of x ′ .Hence, there cannot be any size 1 tree: it would need two neighbors of x ′ which causes a 4-cycle.Actually, there can be no tree at all since every tree leaf needs to be adjacent to z ′ in order to avoid 4-cycles in N (x ′ ), but this also implies a 4-cycle.Hence, we have If there is no additional adjacency, there can again be no 1-tree since it can be adjacent to at most one neighbor of x ′ .Larger trees remove enough external edges to prove T (k − 9).

Three degree 4 vertices on a path
Again, we combine applying Lemma 1 to the branch where we take v in I with a T (k) ≤ T 3 (k − 3) + T (k − 9) or better branching after discarding v.This again leads to T (k) ≤ 2T (k − 8)+T (k−11)+2T (k−12).Let y ′ be adjacent to both x ′ and z ′ , and let x ′ and z ′ be non-adjacent.
If we discard x ′ , we remove 4 edges and 1 vertex while z ′ remains of degree 4 giving the T 4 (k − 3).If we take x ′ in I, we can also discard z ′ resulting in the removal of 16 edges from which 11 external edges and 6 vertices.Notice that in the last branch there cannot exist additional adjacencies, since they imply 3-or 4-cycles.There also cannot exist trees consisting of 1 or 2 vertices because tree leaves can only be adjacent to z ′ and a degree 3 neighbor of x ′ .Finally, any larger tree decreases the number of external edges enough to obtain T (k − 16 + 6 + 1) = T (k − 9).

Two degree 3 vertices and a non-adjacent a degree 4 vertex
We now have a graph of complexity k − 3 with two degree 3 vertices, say y ′ and z ′ , and a degree 4 vertex x ′ .Furthermore, y ′ and z ′ are adjacent but not adjacent to x ′ .Of these vertices x ′ cannot be involved in any 3-or 4-cycle, or we apply Lemma 1 case 2 as discussed with the general approach.
We branch on x ′ .This leads to T (k−3−3) when discarding x ′ .Similar to the above cases, we can still discard both y ′ and z ′ when taking x ′ in I. Therefore, taking x ′ leads to removing 17 edges from which 12 external edges and 7 vertices.If there is an additional adjacency, this is between y ′ or z ′ and a neighbor of x ′ .In this case, there can be at most one tree since y ′ and z ′ together have only 3 external edges left and every tree leaf can be adjacent to at most one neighbor of x ′ (otherwise a 4-cycle with x ′ would exists).This leads to T (k If there is no additional adjacency, every tree leaf can still be adjacent to no more than one neighbor of x ′ , which together with the 4 external edges of y ′ and z ′ lead to at most 2 trees and T (k − 11).We obtain T (k) ≤ T 3 (k − 5) + T (k − 6) + T (k − 11).

Two degree 3 vertices adjacent to a degree 4 vertex
We again have a graph of complexity k − 3 with two degree 3 vertices y ′ , z ′ and a degree 4 vertex x ′ which are all the result of folding.Furthermore, y ′ is adjacent to x ′ and z ′ while x ′ and z ′ are non-adjacent.Of these vertices, x ′ cannot be involved in any 3-or 4-cycle since we then apply Lemma 1 case 2 as discussed with the general approach.
Similar to the previous case, we branch on x ′ giving T (k − 3 − 3) when discarding x ′ , and when taking x ′ in I we discard y ′ and z ′ as well.In this second branch, 14 edges and 6 vertices are removed giving T (k − 3 − 8) if there are no trees separated.Thus, in this case, we obtain If trees are separated, observe that every tree leaf can again be adjacent to at most one neighbor of x ′ , and hence all tree leaves must be adjacent to z ′ Also observe that the third neighbor of y ′ cannot be adjacent to x ′ or any of its neighbors.Since z ′ has only two external edges, this means that the only tree that can exist is a size 2 tree with both leaves connected to z ′ and a different neighbor of x ′ not equal to y ′ (or z dominates a tree vertex).Notice that this implies a 3-cycle involving the tree and z ′ .In this case, we branch on y ′ .When taking y ′ , we remove 10 edges and 4 vertices: T (k − 3 − 6).When discarding y ′ , the tree forms a 3-cycle in which by dominance z ′ is taken in I. Since we can take at most one of the folded vertices, this also results in x ′ being discarded.In total, this results in the removal of 11 edges and 4 vertices, and in this very specific structure no trees can exist: T (k − 3 − 6).We now obtain the better

Three degree 4 vertices that form a clique
We treat this last subcase in an entirely different way.Let N (x) = {v, a, b}, N (y) = {v, c, d} and N (z) = {v, e, f }.From the general proof of the T 3 (k − 5) branch when taking v in I, we know that if there are three adjacencies between the three neighborhoods N (x), N (y) and N (z) then these are not pairwise distributed over the six possible vertices.This was proved by deciding to branch on another vertex which is always possible unless G equals the dedocahedron.Hence, we know that at least one vertex from {a, . . ., f } has a neighbor in both other neighborhoods.Also, since there cannot be more than three adjacencies between these neighborhoods, we know that there can be at most two such vertices with neighbors in both other neighborhoods, and if there are two then they must be adjacent.
We begin with the case where one vertex has neighbors in both other neighborhoods.Without loss of generality, let this vertex be a and let N (a) = {x, c, e} and let d and f be adjacent.We now branch on x instead of v.If we discard x, the neighborhoods of a, b and v are folded to single vertices and we implicitly remove a double edge coming from the old edges {c, y} and {e, z}.Furthermore, N (b) is folded to a degree 4 vertex giving a T 3 (k − 3) branch.If we take x in I and discard N (x), then c − y and e − z are chains of two degree 2 vertices that are replaced by a single edge.Since these chains end in d and f and the neighbors of b are non adjacent, a degree 4 vertex must be created giving T 3 (k − 5) in the other branch.Together this gives the sufficiently efficient recurrence of We end our proof with the last case involved.Without loss of generality let both a and c have neighbors in both other neighborhoods: let N (a) = {x, c, e} and N (c) = {y, a, f }.We obtain the same branching of T (k) ≤ T 3 (k − 3) + T 3 (k − 5) when branching on x.If we discard x, the edges {c, f } and {e, z} lead to a double edge between the folded neighborhoods N (a) and N (v).Also, N (b) will become a degree 4 vertex giving the T 3 (k − 3) branch.In the other branch we take x in I again leading to two chains of degree 2 vertices that are replaced by single edges.In this case, these edges are incident to c and f .By the same argument as before, the neighbors of b will be folded to at least one degree 4 vertex giving T 3 (k − 5).The proof of Lemma 3 is now completed.
Proof.Let a, b, c form a 3-cycle in G. Assume that one of these vertices, say a, has a third neighbor v that is not part of a 3-cycle.The algorithm branches on v.In one branch, v is taken in I and 9 edges and 4 vertices are removed: T (k − 5).In the other, v is discarded and by domination a is taken in I resulting in the removal of 8 edges and 4 vertices: This covers the 3-cycles, unless all third neighbors of a, b and c are in a 3-cycle also.Moreover, they are in different 3-cycles because otherwise there would exist a size 2 vertex separator.We branch on a.In the branch where a is discarded, domination results in the fact that its third neighbor is taken in I giving T (k − 4) as before.In the other branch, a is taken in I, and by domination the third neighbors of b and c are taken in I also.This removes their corresponding 3-cycles completely: at least 16 edges and 10 vertices are removed.We notice that a tree can be separated from G, but in that case we still have T (k − 5) or better.
Finally, suppose that G is 3-cycle free and let v be a vertex on a 4-cycle.Any vertex opposite to c on a 4-cycle is a mirror of v.We branch on v.In one branch, we take v in I and 3-cycle freeness results in the removal of 9 edges and 4 vertices: T (k − 5).In the other one, we discard v and all its mirrors.This results in the removal of 6 edges and 2 vertices if v has only one mirror and possibly more if v has two or three mirrors: T (k − 4).Again trees can be separated from G, but then v must have three mirrors.There is only one local configuration representing this case in which 12 edges and 7 vertices are removed, which is more than enough.
Putting the four previous lemmata together, we have the following result.
Theorem 1 There is an algorithm for the maximum independent set problem on connected graphs of average degree at most 3, running in time O * (1.0854 n ).

A general bottom-up method
In this section we present an original method that, given an algorithm working in graphs of average degree d, produces algorithms with non-trivial computation bounds for graphs of average degree greater than d.The method relies on the following two ideas.First, in a graph whose average degree is bounded from below by some constant (possibly not an integer), we are sure that there exists a rather dense local configuration we can branch on.More precisely, if the average degree is greater than d, this implies that we can find a vertex v with at least f (d) edges incident to some neighbor of v, for some increasing function f .For instance, trivially, if the graph has average degree greater than d ∈ N, we know there exists a vertex v of degree d + 1.If we assume that no vertex is dominated, then there exist at least f (d) = 2(d + 1) + ⌈(d + 1)/2⌉ edges incident to some neighbors of v. Indeed, there exist d + 1 edges incident to v, d + 1 edges between a neighbor of v and a vertex not neighbor of v (one for each neighbor of v, to avoid domination) and, since each vertex has degree at least 3, at least ⌈(3(d + 1) − 2(d + 1))/2⌉ = ⌈(d + 1)/2⌉ other edges.Note that such relationships may be established even if d is non integer.For instance, we will see that if d > 24/7, then there exists a vertex of degree 5 or two adjacent vertices having degree 4, leading to f (d) = 11.This property linking the average degree to the quality of the branching is given in Lemma 5.
Then, for a given d, either average degree is greater than d, and we can make an efficient branching (i.e., a branching that induces a recurrence relation leading to a lower time-bound), or it is not and we can use an algorithm tailored for low-degree graphs.Thus, Lemma 5 fixes a set of critical degrees (d i ) and we define step-by-step (from the smallest to the highest) algorithms STABLE(d i ), that work on graphs of average degree d i or less.The second idea is to analyze the running time of these algorithms thanks to a measure, allowing to fruitfully use the existence of the dense local configurations mentioned above.If we know how to solve the problem in O * (γ n d ) in graphs with average degree d, and that when the average degree is greater than d a good branching occurs, then we seek a complexity of the form O * (γ n y 2m−dn ).This complexity measure is chosen because it is by hypothesis valid in graphs with average degree d.The recurrences given by the branching will give the best possible value for y.This bottom up analysis (from smaller to higher average degree) is detailed in Proposition 1.
At the end of the section, we mention some results obtained by a direct application of this method for graphs of average degree 4, 5 and 6.
Lemma 5 There exists a specific sequence (ǫ i,j , f i,j ) i≥4,j≤i−2 such that, if the input graph has average degree more than i − 1 + ǫ i,j , then the following branching is possible: either remove 1 vertex and i edges, or i + 1 vertices and (at least) f i,j edges.For any i, ǫ i,0 = 0.The following table gives the beginning of the sequence (ǫ i,j , f i,j ): Before giving the proof of the lemma, let us give an example, with i = 5 and j = 2.This lemma states that if the average degree is greater than 4 + ǫ 5,2 = 4 + 4/7, then we can branch on a vertex v and either remove this vertex and 5 edges, or 6 vertices and (at least) 17 edges.
Proof.Fix some vertex v 0 of maximum degree d, such that, for any other vertex v of degree d in the graph, w∈N (v) d(w) ≤ w∈N (v 0 ) d(w), and set δ = w∈N (v 0 ) d(w).
For k ≤ d, let n k be the number of vertices of degree k and m kd be the number of edges (u, v) In other words, α k is the average number of vertices of degree k that are adjacent to a vertex of degree d.Since folding or reduction rules remove vertices of degree at most 2, we fix α k = 0 for k ≤ 2. Summing up inequalities on any vertex of degree d, we get (calculus details are omitted): k≤d . This function is decreasing with n k , ∀k < d.Use some straightforward properties: n k ≥ m kd k , ∀k < d and dn d = k<d m kd +2m dd .This leads to: Clearly, when we discard v 0 , we remove from the graph one vertex and d edges; when we add it, d + 1 vertices are deleted.Now, let µ 2 be the minimal number of edges we delete when we add v 0 to the solution.Since there are at least 2d(v 0 ) edges between N (v 0 ) and the remaining of the graph, and thanks to inequalities (1) and ( 2), we get: For 0 ≤ j ≤ i − 2, we now consider the following programs (P i,j ): max(ǫ) under constraints (1),( 2),( 3), ( 4) and µ 2 ≤ f i,j − 1.In other words, we look for the maximal value for ǫ such that it is possible that any vertex in the graph verifies µ 2 ≤ f i,j − 1.The result is ǫ i,j .Equivalently, if the graph has degree higher than i − 1 + ǫ i,j , we remove at least f i,j edges (when taking some well chosen vertex).Let d i,j = i − 1 + ǫ i,j .Now we use Lemma 5 to recursively define an algorithm STABLE(d i,j ) solving max independent set in a graph of average degree at most d i,j .STABLE(d i,j ) computes the usual preprocessing and branch on a vertex that maximizes the number of edges incident to its neighborhood.It repeats this step until the average degree is at most d i,j−1 , then it applies algorithm STABLE(d i,j−1 )2 .Suppose that STABLE(d i,j−1 ) has a running time bounded by γ n i,j−1 .Let , y i,j being the smallest solution of the inequality: In particular, the running time of STABLE(d i,j ) is O * (γ n i,j ) where γ i,j = γ i,j−1 y Proof.The running time claimed is valid for graphs of average degree d i,j−1 .If the graph has average degree greater than d i,j−1 , thanks to Lemma 5 we branch on a vertex where we remove either ν 1 vertices and µ 1 edges or ν 2 vertices and (at least) µ 2 edges.Then the running time is valid as long as y is such that T (m, n) ≤ T (m − µ 1 , n − ν 1 ) + T (m − µ 2 , n − ν 2 ) + p(m, n) (for some polynomial p).This gives the recurrence relation claimed by proposition's statement.Since 2m ≤ d i,j n in a graph of average degree at most d i,j , the running time O * (y n i,j ) follows.Of course, we need to initialize the recurrence, for example with γ 4,0 = 1.0854 in graphs of average degree d 4,0 = 3 (i.e., with the basis of the running time proved in Section 2).
For completeness, we need to pay attention to reduction rules and creation of trees when branching.Note that an additional reduction of ν vertices and µ ≥ ν edges is not problematic for T (m, n) ≥ T (m − ν, n − ν), i.e., y d i,j 1 −2 ≤ γ i,j−1 , which has to be verified when computing y.In order to deal with trees, note also that removing a tree corresponds to a reduction of ν vertices and ν − 1 edges.This is not problematic as soon as y d i,j−1 −2+2/ν ≤ γ i,j−1 .Of course, it depends on the value we fix for low-degree algorithms.Then, we will always pay attention to the fact that these inequalities are fulfilled when computing y.
To conclude this section, let us present some of the results we can obtain as a corollary of Proposition 1: It is worth noticing that these results are obtained by a direct application of the method proposed; they will be further improved in the rest of the paper, using more involved case analysis or techniques, but already outperform the best known bounds so far, leading us thinking that the method presented has a certain interest.
4 Refined case analysis for graphs of average degree 4 In Lemma 5 we have shown the existence of local dense configurations when the graph has average degree more than 3.For instance, we have seen that if it has average degree at least 4 + 4/7, then we can branch on a vertex v and either remove this vertex and 5 edges, or 6 vertices and (at least) 15 edges.In this section, we apply a similar method, by performing a deeper analysis, to compute the running time of an algorithm for graphs of average degree 4, in order to prove the following theorem.
Theorem 2 It is possible to compute a solution to max independent set on graphs with maximum (or even average) degree 4 with running time O * (1.1571 n ).
Proof.Based upon the discussion in Section 3, we seek a complexity of the form O * (γ n y 2m−3n ), where γ = 1.0854, valid for graphs of average degree 3. We assume that our graph has m > 3n/2 edges.In particular, there is a vertex of degree at least 4.
Assume that we perform a branching that reduces the graph by either ν 1 vertices and µ 1 edges, or by ν 2 vertices and µ 2 edges.Then, by recurrence, our complexity formula is valid for y being the largest root of the following equality: 1 = γ −ν 1 y −2µ 1 +3ν 1 + γ −ν 2 y −2µ 2 +3ν 2 .Then, either there exists a vertex of degree at least 5, or the maximum degree is 4. In the former case, we reduce the graph either by ν 1 = 1 vertex and µ 1 = 5 edges, or by ν 2 = 6 vertices and µ 2 ≥ 13 edges, leading to y = 1.0596 (or ν 1 = 4, µ 1 = 9, ν 2 = 2, µ 2 = 8, which is even better), see Lemma 2. In the latter case, Lemma 1 gives a set of possible reductions that can be plugged into the previous equation to compute y, but we can do much better now, thanks to our complexity measure, using the fact that, informally, removing a lot of vertices might be also good.
In what follows, we consider that the graph has maximum degree 4, and we denote u 1 , u 2 u 3 and u 4 the four neighbors of some vertex v.We call inner edge an edge between two vertices in N (v), and outer edge an edge (u i , x) where x ∈ {v} ∪ N (v).We study four cases, depending on the configuration of N (v).We consider that no trees are created while branching since, as we show later, trees' occurrence is never problematic.
Case 1: all the neighbors of v have degree 4 This case is easy.Indeed, if there are at least 13 edges incident to vertices in N (v), by branching on v we get ν 1 = 1, µ 1 = 4, ν 2 = 5 and µ 2 ≥ 13.This gives y = 1.0658.Figure 13: But there is only one possibility with no domination and only 12 edges incident to vertices in N (v): when u 1 , u 2 , u 3 , u 4 is a 4-cycle.In this case, we can reduce the graph before branching.Any optimal solution cannot contain more than two vertices from the cycle.If it contains only one vertex, then replacing it by v does not change its size.Finally, there exist only three disjoint possibilities: keep u 1 and u 3 , keep u 2 and u 4 or keep only v (Figure 13).Hence, we can replace N (v) ∪ {v} by only two adjacent vertices u 1 u 3 and u 2 u 4 , such that u is adjacent to u 1 u 3 (resp., u 2 u 4 ) if and only if u is adjacent to u 1 or to u 3 (resp., to u 2 or to u 4 ).
Case 2: all the neighbors of v have at least 2 outer edges If one of them has degree 4, then there are at least 13 edges removed when taking v, and we get again ν 1 = 1, µ 1 = 4, ν 2 = 5 and µ 2 ≥ 13.
Otherwise, once v is removed, any u i now has degree 2. Note that when folding a vertex of degree 2, we reduce the graph by 2 vertices and 2 edges (if the vertex dominates another one, this is even better).Since any two vertices u i cannot be adjacent to each other, we can remove 8 vertices and at least 8 edges by folding u 1 , u 2 , u 3 , u 4 .Indeed, if for instance, u 1 dominates its neighbors (its two neighbors being adjacent), we remove 3 vertices and at least 5 edges which is even better.Removing 8 vertices and at least 8 edges is very interesting since it leads to ν 1 = 9, µ 1 = 12, ν 2 = 5, µ 2 = 12, and y = 1.0420.
Case 3: u 1 has degree 3 and only one outer edge u 1 has one inner edge, say (u 1 , u 2 ).Let y be the third neighbor of u 1 .We branch on y.Suppose first that u 2 has degree 3.If we take y we remove 4 vertices and (at least) 8 edges (there is at most one inner edge in N (y)); if we don't take y, then we remove also v and we remove globally 2 vertices and 7 edges.
Obviously, this is not sufficient.There exists an easily improvable case, when a neighbor of y has degree 4 (or when y itself has degree 4), or when the neighbors of y are not adjacent to each other.Indeed, in this case, there are at least 9 edges in N (y), and we get ν 1 = 4, µ 1 = 9, ν 2 = 2 and µ 2 ≥ 7, leading to y = 1.0661.Now, we can assume that y has degree 3, its three neighbors have also degree 3, and that the same holds for z, the neighbor of u 2 .Furthermore, we assume that they both are part of a triangle (see Figure 14).
We reason with respect to the quantity |N (y) N (z)|.If |N (y) ∩ N (z)| = 2, then either some neighbor of y has degree 4, or else v is a separator of size 1 (Figure 14a).If |N (y) ∩ N (z)| = 1, then their common neighbor has degree 4 (Figure 14b).Finally, if |N (y) ∩ N (z)| = 0, then at least a neighbor of, say, z is u 3 nor u 4 .Hence, when discarding y, we take u 1 , so remove u 2 and then add z to the solution.We get ν 1 = 4, µ 1 = 8, ν 2 = 7 and µ 2 ≥ 13, leading to y = 1.0581; this situation is illustrated in Figure 14c.Suppose now that u 2 has degree 4.Then, when we don't take y, since we don't take v, u 1 has degree 1.Then, we can take it and remove u 2 and its incident edges.Then, when we don't take y, we remove in all 4 vertices and 10 edges.In other words, ν 1 = 4, µ 1 = 8, ν 2 = 4 and µ 2 ≥ 10.This gives y = 1.0642.
Case 4: u 1 has degree 4 and only one outer edge Since Case 1 does not occur, we can assume that there is a vertex (say u 4 ) of degree 3. Since Case 3 does not occur, u 4 has no inner edge.Hence, u 1 is adjacent to both u 2 and u 3 .Then, there are only two possibilities.
If there are no other inner edges, since Case 3 does not occur, u 2 and u 3 have two outer edges, and we have in all 13 edges.This gives once again ν 1 = 1, µ 1 = 4, ν 2 = 5 and µ 2 ≥ 13.Otherwise, there is an edge between u 2 and u 3 .Then, v, u 1 , u 2 , u 3 form a 4-clique (Figure 15).verifies: Since c < 1 (and n 1 ≥ 1), for n large enough we have c n i 1 c n i ≤ 1 and therefore T (m, n) ≤ T (m, n).The proof of Theorem 2 is now completed.

Final improvements and algorithm in general graphs
In this section we devise algorithms for graphs of maximum degree 5, 6 and general graphs.The algorithms follow the same line as the one devised in [5].There, a branching is performed a vertex of maximum degree, and a measure and conquer technique is used to analyse the running time: vertices of degree d receive a weight w d ≥ 0 which is non-decreasing with d (with w d = 1 for d ≥ 7 and w 1 = w 2 = 0).The running time of the algorithm is measured as a function of the total weight of the graph (initially smaller than n).In other words, running times are expressed as T (n) = O * (c P i∈V w i ), where i∈V w i ≤ n.When a branching on a vertex of degree d is done, the decreasing δ d of the total weight of the graph is measured.Weights are then optimized in such a way that δ d leads to the same complexity (neglecting polynomial terms) for any d.Weights are subject to some constraints, such as, for example, the fact that reduction rules must not increase the total weight of the graph.
Here, we modify the algorithm above and its analysis in two ways in order to improve the running time for max independent set.First, we incorporate the fact that we have efficient algorithms able to solve max independent set in graphs of maximum degree 3 and 4. We will use these algorithms when the input graph has degree at most 4, modifying the set of constraints in the measure and conquer analysis (see Proposition 2) and leading to a better running time.
Then we improve the analysis of measure and conquer in graphs of maximum degree 5. Since vertex folding may produce vertices of degree higher than 5, it is not possible to restrict the study to vertices of degree at most 5.However, any vertex of degree at least 6 has been produced by a vertex folding.Depending on the weights, a vertex folding may decrease the total weight of the graph, fact that was not taken into account so far.In Proposition 3 we manage to include this decrease in the branching analysis in order to improve the time bound for max independent set in graphs of degree 5.As a final result, we combine the two previous ideas to get a general algorithm in O * (1.2125 n ) in Theorem 4. Proof.According to former sections, we know that it is possible to compute max independent set on graphs of maximum degree ∆ with running time bounded above by O * (γ n ∆ ), where γ 3 = 1.0854 and γ 4 = 1.1571.
The algorithm we propose is the same as in [5] up to the fact that we use our algorithms for degree 3 and 4 when the maximum degree ∆ of the graph G is 4 or less.Formally: (d) Otherwise select a vertex v of degree ∆ which minimizes the number of inner edges (edges with both endpoints in N (v)) and branch on v (either take it or not).
2. If ∆ ≤ 2 solve the problem in polynomial time.For the running time analysis we use measure and conquer techniques as in [5].Each vertex v of degree d receives a weight w d ∈ [0, 1], non decreasing with d, with w d = 0 for d = 0, 1, 2, and with w d = 1 for d ≥ 7. The analysis seeks a complexity in O * (γ W ) where W is the total weight of the graph.Since initially W = v∈V w(v) ≤ n, the complexity is O * (γ n ).Weights are optimized in order to find the best γ.For the analysis to be valid, weights must fulfill some constraints, such as the fact that reduction rules must not increase the total weight of the graph.As shown in [5] the constraints are: Here, we add two more constraints.Indeed, the recursive argument is that the problem is solvable in O * (γ W ). Since if the graph has degree at most 4 we use our algorithm, the running time has to be valid in this case also.If the graph has degree at most 2 this is trivial, otherwise let n 3 and n 4 be the number of vertices of degree 3 and 4 in the graph (n 3 + n 4 = n since vertices of degree 2 are removed by vertex foldings).The running time obtained in Theorem 2 for graphs of average degree between 3 and 4 is O * (γ n 3 y 3m−2n ) = O * (γ n 3 (γ 4 /γ 3 ) 2m−3n ) where γ 3 and γ 4 are the complexity of our algorithms for average degree 3 and 4. Since 2m − 3n = (d − 3)n, where d is the average degree, in order for the analysis to be valid the weights have to satisfy: With these constraints, the running time is valid for ∆ ≤ 4. For ∆ ≥ 5, we use the analysis in [5].There, for each value of ∆, an analysis is done showing that in the worst case, branching on a vertex of degree ∆ as in step 1d leads to decrease W either by µ ∆ or by ν ∆ .This gives a recurrence relation (1 ≤ γ −µ ∆ + γ −ν ∆ ) for all ∆ ≥ 3, and the worse one gives the running time O * (γ W ). Here, we do not need to consider the cases of branching on degree 3 and 4 anymore, since it is handled by our low degree algorithms.Hence, we only have the recurrence relation for ∆ ≥ 5, allowing to choose more efficient weights leading to a better running time.
The analysis of the algorithm is performed similarly as in the proof of Proposition 2. Now, we know that it is possible to compute max independent set on graphs of maximum degree ∆ with running time bounded above by O * (γ n ∆ ), where γ 3 = 1.0854, γ 4 = 1.1571 and γ 5 = 1.1918.Weights are non decreasing, between 0 and 1, and with w d = 0 for d ≥ 2, w d = 1 for d ≥ 7. Constraints (c1) and (c2) are exactly the same.Now we have to ensure that the running time O * (γ W ) is valid for graphs of maximum degree at most 5. Let n 3 , n 4 and n 5 the number of vertices of degree 3, 4 and 5 respectively (n 3 + n 4 + n 5 = n thanks to the vertex folding).If the algorithm in Theorem 3 has running time O * (γ w 5  3 n 3 +w 5 4 n 4 +n 5 5 ), then we have to introduce constraints that enforce: γ C only have edges to v or to other vertices in C).If the algorithm finds such an articulation point v, it recursively computes the maximum independent sets I v (those that do not contain v) in the subgraph G[C] and I v in the subgraph G[C ∪ {v}].Notice that |I v | can be at most 1 larger than |I v |, and if this is the case then v ∈ I v .If these sizes are the same, the algorithm recursively computes the maximum independent set I in G[V \ (C ∪ {v})] and returns I ∪ I v .This is correct since taking v in the independent set restricts the possibilities in G[V \ (C ∪ {v})] more, while it does not increase the maximum independent set in C ∪ {v}.Furthermore, if |I v | = 1 + |I v |, then the algorithm computes the maximum independent set I in G[V \ C] and returns I ∪ (I v \ {v}).This is also correct since adding v to C increases the size of the maximum independent set in G[C] by 1; this choice is now left to the recursive call on G[V \ C].

5 .
with u and v merged into a single vertex w.The algorithm makes a recursive call on G ′ returning I.If w ∈ I then we return (I \ {w}) ∪ I v,u and otherwise we return I ∪ I v, u .|I v,u | = |I v,u | = |I v, u | = |I v, u |.Now it is safe to use I v, u .We make a recursive call on G[V \ (C ∪ {u, v})] resulting in I and return I ∪ I v, u .

Figure 1 :
Figure 1: T consists of three vertices and at least two neighbors of v, a and b, have two tree neighbors.

Figure 3 :
Figure 3: Triangles with one degree 4 vertex and two degree 3 vertices.

Figure 4 :
Figure 4: Vertex v, has a degree 4 neighbor y.

Figure 5 :
Figure 5: Vertex v is part of a triangle.

Figure 6 :
Figure 6: Vertex w, has a neighbor u = a, b that is adjacent to x.

Figure 7 :
Figure 7: Vertices v and w are adjacent to both of u, u ′ ∈ X.

Figure 9 :
Figure 9: Vertex x is a degree 4 vertex that is a mirror of the degree three vertex v.

Figure 10 :
Figure 10: Vertex v, has a third degree 4 neighbor z.

Figure 12 :
Figure 12: Picking at most one vertex from the three degree 4 vertices created by folding the neighbors of v.

Proposition 2
It is possible to optimally solve max independent set in O * (1.2135 n ).

1 .
While ∆ ≥ 5 do (a) if there are several connected components, solve the problem separately on each connected component.(b) If a vertex v is dominated, remove it.(c)If there is a vertex of degree 2, fold it.