Treewidth Parameterized by Feedback Vertex Number
Abstract
We provide the first algorithm for computing an optimal tree decomposition for a given graph that runs in single exponential time in the feedback vertex number of , that is, in time , where is the feedback vertex number of and is the number of vertices of . On a classification level, this improves the previously known results by Chapelle et al. [Discrete Applied Mathematics ’17] and Fomin et al. [Algorithmica ’18], who independently showed that an optimal tree decomposition can be computed in single exponential time in the vertex cover number of .
One of the biggest open problems in the area of parameterized complexity is whether we can compute an optimal tree decomposition in single exponential time in the treewidth of the input graph. The currently best known algorithm by Korhonen and Lokshtanov [STOC ’23] runs in time, where is the treewidth of . Our algorithm improves upon this result on graphs where . On a different note, since is an upper bound on , our algorithm can also be seen either as an important step towards a positive resolution of the above-mentioned open problem, or, if its answer is negative, then a mark of the tractability border of single exponential time algorithms for the computation of treewidth.
Keywords and phrases:
Treewidth, Tree Decomposition, Exact Algorithms, Single Exponential Time, Feedback Vertex Number, Dynamic ProgrammingCategory:
Track A: Algorithms, Complexity and GamesCopyright and License:
![[Uncaptioned image]](x1.png)
2012 ACM Subject Classification:
Theory of computation Parameterized complexity and exact algorithmsFunding:
This work was supported by the Israel Science Foundation, grant nr. 1470/24, by the European Union’s Horizon Europe research and innovation programme under grant agreement 949707, and by the European Research Council, grant nr. 101039913 (PARAPATH).Editors:
Keren Censor-Hillel, Fabrizio Grandoni, Joël Ouaknine, and Gabriele PuppisSeries and Publisher:

1 Introduction
Treewidth is (arguably) both the most important and the most well-studied structural parameter in algorithmic graph theory [11, 13, 15, 16, 17, 36, 44]. Widely regarded as one of the main success stories, most textbooks in parameterized complexity theory dedicate at least one whole chapter to this concept; see e.g. Niedermeier [51, Chapter 10], Flum and Grohe [35, Chapters 11 & 12], Downey and Fellows [34, Chapters 10–14], Cygan et al. [30, Chapter 7], and Fomin et al. [38, Chapter 14]. In particular, treewidth is a powerful tool that allows us to leverage the conspicuous observation that many NP-hard graph problems are polynomial-time solvable on trees. Here, many fundamental graph problems can be solved by simple greedy algorithms that operate from the leaves to the (arbitrarily chosen) root [27, 32, 39, 50]. Treewidth, intuitively speaking, measures how close a graph is to a tree. In slightly more formal terms, it quantifies the width of a so-called tree decomposition, which generalizes the property that trees can be broken up into several parts by removing single (non-leaf) vertices.111We give a formal definition of treewidth and tree decomposition in Section 3. Tree decompositions naturally provide a tree-like structure on which dynamic programming algorithms can operate in a straightforward bottom-up fashion, from the leaves to the root. The concept of treewidth has been proven to be extremely useful and has led to a plethora of algorithmic results, where NP-hard graph problems are shown to be efficiently solvable if we know a tree decomposition of small width for the input graph [2, 4, 5, 8, 10, 22]. Maybe the most impactful such result is Courcelle’s theorem [24, 28, 29], which states that all problems expressible in monadic second-order logic can be solved in linear time on graphs for which we know a tree decomposition of constant width.
In the early 1970s, Bertelè and Brioschi [9] first observed the above-described situation. They showed that a large class of graph problems can be efficiently solved by “non-serial” dynamic programming, as long as the input graph has a bounded dimension. Roughly 15 years later, this parameter was proven to be equivalent to treewidth [2, 14]. In the meantime, the concept of treewidth was rediscovered numerous times, for example by Halin [40] and, more prominently, by Robertson and Seymour [52, 53, 54] as an integral part of their graph minor theory, one of the most ground-breaking achievements in the field of discrete mathematics in recent history.
In order to perform dynamic programming on a certain structure, it is crucial that this structure is known to the algorithm. In the case of efficient algorithms for graphs with bounded treewidth, this means that the algorithm needs to have access to the tree decomposition. Since computing a tree decomposition of optimal width is NP-hard [3], many early works on such algorithms assumed that a tree decomposition (or an equivalent structure) is given as part of the input [2, 5, 8]. The first algorithm for computing a tree decomposition of width for an -vertex graph (or deciding that no such tree decomposition exists) had a running time in [3]. Shortly afterwards, an algorithm with a running time in was given by Robertson and Seymour [54]. It consists of two steps. In a first step, a tree decomposition of with at most is computed in time (or concluded that the treewidth of the input graph is larger than ). In a second, non-constructive step (for which the function in the running time is not specified), this tree decomposition is improved to one with width at most . In 1991, Bodlaender and Kloks [21]222An extended abstract of the paper by Bodlaender and Kloks [21] appeared in the proceedings of the 18th International Colloquium on Automata, Languages, and Programming (ICALP) in 1991., and Lagergren and Arnborg [48] independently discovered algorithms with a running time in for the second step. Furthermore, Bodlaender [12] gave an improved algorithm for the first step which allowed to compute a tree decomposition of width (or concluding that no such tree decomposition exists) in time . These results have been extremely influential and allowed (among other things) Courcelle’s theorem [24, 28, 29] to be applicable without the prerequisite that a tree decomposition for the input graph is known. Roughly 30 years later, in 2023, Korhonen and Lokshtanov [47] presented an algorithm with a running time in , which is considered a substantial break-through. Whether a tree decomposition of width (if one exists) can be computed in single exponential time in , that is, a running time in , remains a major open question in parameterized complexity theory [47].333We remark that under the exponential time hypothesis (ETH) [42, 43], the existence of algorithms with a running time in can be ruled out [23].
For many other graph problems, however, single exponential time algorithms in the treewidth of the input graph are known [5, 10, 18, 22, 31, 34, 35, 51]. If we want to use those algorithms to solve a graph problem, computing a tree decomposition of sufficiently small width becomes the bottleneck (in terms of the running time). Since we do not know how to compute a tree decomposition of minimum width in single exponential time, we have to rely on near-optimal tree decompositions if we do not want to significantly increase the running time of the overall computation. Therefore, much effort has been put into finding single exponential time algorithms that compute a tree decomposition with approximately minimum width, more specifically, with a width that is at most a constant factor away from the optimum. The first such algorithm was given by Robertson and Seymour [54] in 1995, and since then many improvements both in terms of running time and approximation factor have been made [1, 6, 7, 19, 46]. The current best algorithm by Korhonen [46] has an approximation factor of two and runs in time. For an overview on the specific improvements, we refer to the paper by Korhonen [46].
Our Contribution.
In this work, we focus on computing optimal tree decomposition. We overcome the difficulties of obtaining a single exponential time algorithm by moving to a larger parameter. The arguably most natural parameter that measures “tree-likeness” and is larger than treewidth is the feedback vertex number. It is the smallest number of vertices that need to be removed from a graph to turn it into a forest. Bodlaender, Jansen, and Kratsch [20] studied feedback vertex number in the context of kernelization algorithms for treewidth computation. The main result of our work is the following.
Theorem 1.1.
Given an -vertex graph and an integer , we can compute a tree decomposition for with width , or decide that no such tree decomposition exists, in time. Here, is the feedback vertex number of graph .
Theorem 1.1 directly improves a previously known result, that an optimal tree decomposition for an -vertex graph can be computed in time (if it exists) [26, 37], where is the vertex cover number of , which is the smallest number of vertices that need to be removed from a graph to remove all of its edges, and hence always at least as large as the feedback vertex number. To the best of our knowledge, the only other known result for treewidth computation that uses a different parameter to obtain single exponential running time is by Fomin et al. [37], who showed that an optimal tree decomposition can be computed in , where is the modular width of . We remark that the modular width can be upper-bounded by a (non-linear) function of the vertex cover number, but is incomparable to both the treewidth and the feedback vertex number of a graph. It follows that our result improves the best-known algorithms for computing optimal tree decompositions (in terms of the exponential part of the running time) for graphs where
where denotes the treewidth of . On a different note, since is an upper bound on , our algorithm can also be seen either as an important step towards a positive resolution of the open problem of finding an time algorithm for computing an optimal tree decomposition, or, if its answer is negative, then a mark of the tractability border of single exponential time algorithms for the computation of treewidth.
Our algorithm constitutes a significant extension of a dynamic programming algorithm by Chapelle et al. [26] for computing optimal tree decompositions which runs in time. The building blocks of the algorithm are fairly simple and easy to implement, however the analysis is quite technical and involved. First of all, our algorithm needs to have access to a minimum feedback vertex set, that is, a set of vertices of minimum cardinality, such that the removal of those vertices turns the graph into a forest. It is well-known that such a set can be computed in time (randomized) [49] or in deterministic time [45]. As a second step, we apply the kernelization algorithm by Bodlaender, Jansen, and Kratsch [20] to reduce the number of vertices in the input graph to . We remark that this kernelization algorithm needs a minimum feedback vertex set as part of the input and ensures that this set remains a feedback vertex set for the reduced instance [20]. This second step is neither necessary for the correctness of our algorithm nor to achieve the claimed running time bound, but it ensures that the polynomial part of our running time is bounded by the maximum of the running time of the kernelization algorithm and the polynomial part of the running time needed to compute a minimum feedback vertex set. Neither Bodlaender, Jansen, and Kratsch [20], Li and Nederlof [49], nor Kociumaka and Pilipczuk [45] specify the polynomial part of the running time of their respective algorithms. However, an inspection of the analysis for the kernelization algorithm suggests that its running time is in and it is known that a minimum feedback vertex set can be computed in time [25].
In the following, we give a brief overview of the main ingredients of our algorithm. The main purpose of this overview is to convey an intuition and an idea of how the algorithm works; it is not meant to be completely precise.
-
Chapelle et al. [26] introduced notions and terminology to formalize how a (rooted) tree decomposition interacts with a minimum vertex cover. We adapt and extend those notions for minimum feedback vertex sets. Inspired by the well-known concept of nice tree decompositions [21], we define a class of rooted tree decompositions that interact with a given feedback vertex set in a “nice” way. We call those tree decompositions -nice, where denotes the feedback vertex set. In -nice tree decompositions, we classify each node by which vertices of the feedback vertex set are contained in the bag and which are only contained in bags of nodes in the subtree rooted at . We show that nodes of the same class form (non-overlapping) paths in the tree decomposition.
-
We give algorithms to compute candidates of bags for the top and the bottom node of a path that corresponds to a given node class. Here, informally speaking, we differentiate between the cases where nodes (and their neighbors) have “full” bags or not, where we consider a bag to be full if adding another vertex to it increases the width of the tree decomposition. We need two novel algorithmic approaches for the two cases.
-
We give an algorithm to compute the maximum width of any bag “inside” a path that corresponds to a given node class. This algorithm needs as input the bag of the top node and the bottom node of the path, and the set of vertices that should be contained in some bags of the path.
-
The above-described algorithm allows us to perform dynamic programming on the node classes. Informally, we show that node classes form a partially ordered set. This means that for a given node class, we can look up a partial tree decomposition where the root belongs to a preceding (according to the poset) node class in a dynamic programming table. Then we use the above-described algorithm to extend the looked-up tree decomposition to one where the root has the given node class.
We show that in the above-described way, we can find a tree decomposition of width whenever one exists. To this end, we introduce (additional) novel classes of tree decompositions that have properties that we can exploit algorithmically. We introduce so-called slim tree decompositions, which, informally speaking, have a minimum number of full nodes and some additional properties. Furthermore, we introduce top-heavy tree decompositions, where, informally speaking, vertices are pushed into bags that are as close to the root as possible. We show that there exists tree decompositions with minimum width that are -nice, slim, and top-heavy. Lastly, we give a number of ways to modify tree decompositions. We will show that we can modify any optimal tree decomposition that is -nice, slim, and top-heavy into one that our algorithm is able to find.
Due to space constraints, we defer considerable amounts of technical details to a full version of this work [41]. In Section 2 we give an overview of the main parts of the algorithm. Afterwards, we introduce the most important concepts and give some details on how the dynamic programming table looks like. The correctness proof and the running time analysis is deferred to the full version. Moreover, the full version contains expanded related work and additional illustrations.
2 Algorithm Overview
In this section, we take a closer look at the different building blocks of our algorithm before we explain each one in full detail. The goal of this section is to provide an intuition about how the algorithm works, that is fairly close to the technical details but not completely precise. We describe the main ideas of each part of the algorithm and how they interact with each other.
How Feedback Vertex Sets Interact With Tree Decompositions.
Given a rooted tree decomposition of a graph and a minimum feedback vertex set for , the feedback vertex set interacts with the bags of is a very specific way. Given a bag of some node in , we use to denote the vertices from that are inside the bag . We use to denote the set of vertices from that are only in bags “below” . More formally, bags of nodes that are descendants of node . We use to denote the set of vertices in that are only in bags of nodes that are outside the subtree of rooted at . These three sets build a so-called -trace, a concept introduced by Chapelle et al. [26]. One can show that the nodes in a tree decomposition that share the same -trace partition the tree decomposition into path segments [26]. These path segments (or the corresponding -traces) form a partially ordered set which, informally speaking, allows us to design a bottom-up dynamic programming algorithm that constructs a rooted tree decomposition for from the leaves to the root.
A similar approach was used by Chapelle et al. [26] to obtain a dynamic programming algorithm that has single exponential running time in the vertex cover number of the input graph. They use a minimum vertex cover instead of a minimum feedback vertex set to define -traces. We extend this idea to work for feedback vertex sets, which requires a significant extension of almost all parts of the algorithm.
The main idea of the overall algorithm is the following. We give a polynomial-time algorithm to compute a partial rooted tree decomposition containing nodes corresponding to a directed path of an -trace and, informally speaking, some additional nodes that only cover vertices from the forest . We combine this partial rooted tree decomposition with one for the preceding directed paths according to the above-mentioned partial order. In other words, intuitively, we give a subroutine to compute partial tree decompositions for directed paths corresponding to -traces, and try to assemble them to a rooted tree decomposition for the whole graph. We start with the directed paths that do not have any predecessor paths and then try to extend them until we cover all vertices. We save the partial progress we made in a dynamic programming table. The overall algorithm is composed out of fairly simple subroutines, which makes the algorithm easy to implement. However, a very sophisticated analysis is necessary to prove its correctness and the desired running time bound.
In order to bound the number of dynamic programming table look-ups that we need to compute a new entry, we need to be able to assume that the rooted tree decomposition we are aiming to compute behaves nicely (in a very similar sense as in the well-known concept of nice tree decompositions [21]) with respect to the vertices in . To this end, we introduce the concept of -nice tree decompositions and we prove that every graph admits an -nice tree decomposition with minimum width for every choice of .
Computing a “Local Tree Decomposition” for a Directed Path.
The main technical difficulty is to compute the part of the rooted tree decomposition that contains the nodes corresponding to a directed path of an -trace. As described before, these parts are the main building blocks with which we assemble our tree decomposition for the whole graph.
Our approach here is to compute candidates for the bags of the top node and the bottom node of the directed path corresponding to an -trace. Intuitively, since the -trace specifies where in the tree decomposition the other vertices from are located and since we know that is a forest, we have some knowledge on how these bags need to look like. If the bag we are computing is for a node that, when removed, splits the tree decomposition into few parts, then we can “guess” which vertices of are located in which of the different parts in an optimal tree decomposition. To this end, we adapt the concept of “introduce nodes”, “forget nodes”, and “join nodes” for -nice tree decompositions. A consequence is that if a node does not share its bag with any neighboring node, then, when the node is removed, the tree decomposition splits into at most three relevant parts (that is, parts that contain bags with vertices from that are not in ). In other word, the bag acts as a separator for at most three parts of . This allows us to compute a candidate for in a greedy fashion, and argue that we can modify an optimal tree decomposition to agree with our choice for . An important property that we need for this is, that neighboring bags are not “full”, that is, their size is not , which gives us flexibility to shuffle around vertices.
However, if the optimal tree decomposition contains a large subtree of nodes that all have the same bag and that are all full, then removing those nodes can split the tree decomposition into an unbounded number of parts that each can contain a different subset of . Here, informally speaking, we cannot afford to “guess” anymore how the vertices of are distributed among the parts and we cannot shuffle around vertices. Hence, we have to find a way to compute a candidate bag for this case where we do not have to change the tree decomposition to agree with our choice.
To resolve this issue, we need to refine the concept of -nice tree decompositions. We introduce the slim -nice tree decompositions that, informally speaking, ensure subtrees of the tree decomposition where all nodes have the same full bag have certain desirable properties that allow us to compute candidate bags efficiently. We prove that there are slim -nice tree decomposition of minimal width for all graphs and all choices of . Furthermore, we prove (implicitly) that we can bound the size of the search-space for a potential bag by a function that is single exponential in the feedback vertex number. Therefore, we will able to provide small “advice strings”, that lead our algorithm for this case to a candidate bag and we can prove that there is an advice string that will lead the algorithm to the correct bag.
Coordinating Between Different Directed Paths.
Since we need to modify the optimal tree decomposition in order to agree with the bags that we compute, we have to make sure that later modifications do not invalidate earlier choices for bags. To ensure this, we introduce so-called top-heavy slim -nice tree decompositions. Informally speaking, we try to push all vertices that are not in into bags as close to the root as possible. Intuitively, this ensures that if we make modifications to those tree decompositions to make them agree with our bag choices, those modifications do not affect bags that are sufficiently far “below” the parts of the tree decomposition that we modify.
Now, having access to the bag of the top node and the bottom node of a directed path corresponding to some -trace, we have to decide which other vertices (that are not in ) we wish to put into bags that are attached to that path. Here, we also have to make sure that our decisions are consistent. We will compute a three-partition of the complete vertex set: one part that represents the vertices that are contained in some bag of the directed path or a bag that is attached to it, one part of vertice that are only in bags “below” the directed path, and the last part with the remaining vertices, that is, the vertices that are only in bags outside of the subtree of the tree decomposition that is rooted at the top node of the directed path. The first described part is needed to compute the partial tree decomposition of the directed path. We provide a polynomial-time algorithm to do this. Furthermore, the three-partition will allow us to decide which choices for bags to the top and bottom nodes of preceding directed paths are compatible with each other.
3 Main Concepts for the Algorithm
We use standard notation and terminology from graph theory [33]. A tree decomposition of a graph is a pair consisting of a tree and a family of bags with , such that:
-
1.
.
-
2.
For every , there is a node such that .
-
3.
For every , the set induces a subtree of .
The width of a tree decomposition is . The treewidth of a graph is the minimum width over all tree decomposition of .
We present several concepts introduced by Chapelle et al. [26] that we also use for our algorithm in Section 3. In particular, we give the definitions of traces, directed paths thereof [26], and several additional concepts. The rest of the concepts (most of which are deferred to the full version [41]) are novel. We introduce -nice tree decompositions, which interact with a vertex set in a “nice” way, but are more flexible with vertices not in . Finally, we introduce slim -nice tree decompositions. This type of tree decompositions has crucial additional properties that we need to show that our algorithm is correct.
-Traces, Directed Paths, -Children, and -Parents.
Let be a node of a rooted tree decomposition of a graph . We denote with the subtree of rooted at node . We use the following notation throughout the document:
-
The set is the union of all bags in the subtree .
-
The set is the set of vertices “below” node .
-
The set is the set of the “remaining” vertices, that is, the ones that are neither in the bag of node nor below .
Clearly, for every node , the sets are a partition of .
Definition 3.1 ([26]) (-Trace).
Let be a graph and tet . Let be a node of a rooted tree decomposition of . The -trace of is the triple such that , , and . A triple is an -trace if it is the -trace of some node in some tree decomposition of .
Chapelle et al. [26] show that the nodes of a rooted tree decomposition that have the same -trace form a directed path. They prove this for -traces where is a minimum vertex cover and the rooted tree decomposition is nice, however inspecting their proof reveals that this property also holds for arbitrary sets and arbitrary rooted tree decompositions. Formally, we have the following.
Lemma 3.2 ([26]).
Let be a rooted tree decomposition of a graph . Let and let be an -trace such that . Moreover, let be the set of nodes of whose -trace is . Then the subgraph of induced by is a directed path.
Lemma 3.2 allows us to define so-called directed paths of -traces, which will be central to our algorithm. Informally, given an -trace our algorithm will compute candidates for the corresponding directed path, and then use a dynamic programming approach to connect the path to the rest of a partially computed rooted tree decomposition.
Definition 3.3 (Directed Path of an -Trace, Top Node, and Bottom Node).
Let be a rooted tree decomposition of a graph , and an -trace such that . We call the directed path induced by the set of nodes of whose -trace is the directed path of in from node to node . We call the top node of the directed path and we call the bottom node of the directed path.
We use the above concepts and some additional ones that we introduce below to define a specific type of rooted tree decomposition that interacts with the set in a very structured way. The concepts are illustrated in Figure 1. First, we distinguish nodes that are at the end of a directed path of some -trace.
Definition 3.4 (-Bottom Node).
Let be a rooted tree decomposition of a graph and . Let be a node of . We say that is an -bottom node if there is an -trace such that , and is the bottom node of the directed path of in .
Next, we observe that for every directed path of some -trace, the parent of is also an -bottom node. Note that this implies that a situation as depicted in Figure 1(b) cannot happen.
We now define so-called -parent and -children. Informally, as -child is a child of a node such that there is a vertex in that is only contained in nodes in the subtree of the tree decomposition rooted at the -child. The -parent of a node is defined analogously. Formally, we define them as follows.
Definition 3.5 (-Parent and -Child).
Let be a rooted tree decomposition of a graph and . Let and be two nodes of such that is the parent of in . Let and be the -traces of and , respectively.
-
If , then we say is an -parent of .
-
If , then we say is an -child of .
-Nice Tree Decompositions.
We now give the definition of a so-called -nice tree decomposition. Intuitively, this tree decomposition behaves nicely (in the sense of nice tree decompositions [21]) when interacting with vertices from the vertex set , but is more flexible for the vertices in . Similarly to nice tree decomposition, -nice tree decompositions distinguish three main types of -bottom nodes, analogous to introduce, forget, and join nodes. We associate each -bottom node with -trace with a so-called S-operation, which can be for some , for some , or for some and .
Definition 3.6 (-Nice Tree Decomposition and -Operations).
A rooted tree decomposition of a graph is -nice for if the following hold. Let be a node. Then the following holds.
-
1.
If has a parent , then or , and .
If is an -bottom node in with -trace , then additionally one of the following holds.
-
2.
Node has exactly one -child . We have that for some .
Then we say that admits the -operation .
-
3.
Node has exactly one -child . We have that for some .
Then we say that admits the -operation .
-
4.
Node has exactly two -children . We have that .
Let and be the two -traces of and , respectively. We say that admits the -operation .
See Figure 1(a) for an illustration of an -nice tree decomposition. We show that if there is a tree decomposition for a graph , then for every there is also an -nice tree decomposition with the same width for .
Lemma 3.7.
Let be a nice tree decomposition for a graph , then for every , the tree decomposition is -nice.
Note that, however, not every -nice tree decomposition is a nice tree decomposition, since, for example, we allow -bottom nodes to have an arbitrary amount of children that are not -children. Furthermore, the -children of an -bottom nodes that admits as its -operation do not have to have the same bags their parent.
Slim -Nice Tree Decompositions.
Now we introduce slim -nice tree decompositions. Intuitively, they do not contain nodes that unnecessarily have full bags. To this end, we first define full join trees of an -nice tree decomposition, which, intuitively, are subtrees of the tree decomposition where all nodes have the same (full) bag and admit a operation.
Definition 3.8 (Full Join Tree).
Let be an -nice tree decomposition of a graph and some with width . A full join tree is a non-trivial, (inclusion-wise) maximal subtree of such that there exist a set with such each has bag .
Furthermore, we introduce the following terminology. Let be a connected component in for some .
-
If , then we call an -component.
-
If , then we call an -component.
It is easy to see that every connected component of falls into one of the above categories, for every choice of .
Now we are ready to define slim -nice tree decompositions, this most central definition to be presented in the extended abstract.
Definition 3.9 (Slim -Nice Tree Decomposition).
Let be an -nice tree decomposition of a graph and some with width . We call slim if the following holds.
-
1.
The root of is not an -bottom node.
-
2.
For each -bottom node in that has two -children, we have that either is part of a full join tree, or both -children and the parent of have bags that are not full and not larger than the bag of .
-
3.
For each -bottom node in that has a bag which is not full, we have that for the parent of it holds that and is the only -child of .
-
4.
For each -bottom node in that admits -operation for some , we have that if the bag of the -child of is not full, then has at most one -child . If exists, then it holds that .
-
5.
For each -bottom node in we have that if the bag of the parent of is not full, then the parent of is not an -bottom node or is the root.
Moreover, for each full join tree of , the following holds.
-
6.
Each node in is an -bottom node that has two -children.
-
7.
Let denote the bag of nodes in , let denote the root of , let denote the parent of (if it exists), and let denote the set of -children of nodes in that are not contained in . For each there exist three different vertices and three different nodes such that
-
For all , vertex is connected to in .
-
For all , if , then vertex is contained in . Otherwise vertex is contained in .
-
Before we show that we can make any -nice tree decomposition slim, we give some intuition on why the properties of slim -nice tree decompositions are desirable for us.
-
1.
Condition 1 allows us to assume that all -bottom nodes have a parent. This is important since, informally speaking, we want to remove all vertices that do not need to be in nodes that are below some -bottom node, and move them above it. We formalize this later in this section when we define top-heavy tree decompositions.
-
2.
Condition 2 allows us to assume that -bottom nodes with two -children, that is, the ones that admit -operation , are either part of a full join tree, or both the -children and the parent do not have full bags and those bags. This is important since we will treat these two cases differently in our algorithm. In particular in the latter case, that is, if an -bottom node admits the -operation and it is not part of a full join tree, we need the property that both the -children and the parent do not have full bags and that the bags are subsets of the bag of the -bottom node.
-
3.
Condition 3 allows us to assume that whenever an -bottom node does not have a full bag, then the bag of its parent is also not full, and in particular, it is the same bag. This will make some proofs easier to achieve and easy to obtain by subdividing the edge between the -bottom node and its parent, and giving the new node the same bag as the -bottom node.
-
4.
Condition 4 allows us to assume that whenever an -bottom node admits the -operation and its -child (which always has a larger bag) it not full, then the bag of the -child of the -child (if it exists) is also not full. As with the previous condition, this is easy to achieve by edge subdivision and it simplifies some of our proofs.
-
5.
Condition 5 allows us to assume that in a directed path corresponding to an -trace with , if the parent of the bottom node has a non-full bag, then the top node is not the parent of the bottom node. This will simplify many steps in our algorithm.
-
6.
Condition 6 allows us to assume that every -bottom node that is part of a full join tree admits the -operation .
-
7.
Condition 7 is the most technical one and also the most important one. Essentially it allows us to assume that every vertex that is contained in a bag of a node that is part of a full join tree is a neighbor of at least three different -components in . This will be crucial for establishing the running time bound of a subroutine of our algorithm.
Now we show that if a graph admits an -nice tree decomposition with width , then also admits a slim -nice tree decomposition with width .
Lemma 3.10.
Let be an -nice tree decomposition of a graph with width and some . Then there exist a slim -nice tree decomposition of with width at most .
4 The Dynamic Programming Algorithm
In this section, we present the main dynamic programming table. Assume from now on that we are given a connected graph and a non-negative integer that form an instance of Treewidth. Let the vertices in be ordered in an arbitrary but fixed way, that is, . Furthermore, we denote with a minimum feedback vertex set of . We assume that , since we can trivially obtain a tree decomposition with width by taking any tree decomposition with width one for and adding to every bag. Hence, if , then is a yes-instance of Treewidth. For the rest of the document, we treat , , and as global variables that all algorithms have access to.
Roughly speaking, the algorithm we propose to prove Theorem 1.1 is a dynamic program on the potential directed paths of the -traces (Definition 3.1) of a slim -nice tree decomposition (Definitions 3.6 and 3.9) of . Informally speaking, a state of the dynamic program consists of the following elements.
-
An -trace .
-
The “extended” -Operation of the parent of the top node of the directed path of the -trace.
If is the root, then is the dummy -operation .
If , then is the “extended” -operation of an -bottom node that has an -child (which we also refer to as ) with -trace .
-
The “extended” -Operation of the bottom node of the directed path of the -trace.
If , then is the dummy -operation .
Here, we use extended versions of the -operations introduced in Definition 3.6. Those will contain additional information that we need to compute the entries of the dynamic program. In the following, we give some intuition on why we need this additional information, and then we give formal definitions.
Notice that the bag of node is the bag of an -child of an -bottom node. To determine , we need to include additional information in the extended version of the -operations, that help us determine the bags of -children of the nodes that admit the extended -operations. We remark that all additional information contained in the extended versions of -operations is only relevant for the computation of the “local treewidth” of the directed path of the -trace. We give formal definitions of the extended -operations in the next section.
Extended -Operations.
Now we describe how we extend the -operations introduced in Definition 3.6. We first introduce a big version of the -operation . When we compute bags for -bottom nodes that admit this operation, we will have several possible candidates for the bag, and an additional bit string encodes which one we are considering. Furthermore, we need the additional information on which vertex is (potentially) missing in each of the bags of the -children or the parent, in the case that they are not full. This is encoded with three integers , and . We have the following big -operation.
-
with some vertex sets and some bit string and .
In order to define which -bottom nodes admit the above-described big -operations, we introduce a function that “decodes” its bag. Let be a function which takes as input subset of (which will be the set of the -bottom node that admits the big -operation) and the bit string that encodes which bag candidate is chosen. This will always be a full bag. We additionally need to define a function that determines the bags of the children using the additional integers and . Let be a function that takes as input a subset of (which will be the bag of the -bottom node that admits the -operation ) and an additional integer that encodes which vertex is missing is the bag of a child (if the integer is zero, this will encode that the bag of the child is the same). Formally, and , where is at the th ordinal position in (recall that is ordered in an arbitrary but fixed way).
Definition 4.1 ().
Let be a slim -nice tree decomposition of . Let be an -bottom node in that is contained in a full join tree and admits -operation . Let be the two -children of and let be the parent of . If and for all we have , then we say that node admits -operation .
Note that at this point, we cannot decide whether an -bottom node admits a -operation since we have not defined the function yet. Informally speaking, there will be sufficiently many options for the bit string such that for every possible bag that a node that meets the conditions in Definition 4.1 has, the function maps the and the bit string to that bag. Formally, we will show the following.
Lemma 4.2.
Let be a slim -nice tree decomposition of . Let be an -bottom node in that is contained in a full join tree and admits -operation . Then there exists and such that node admits -operation .
Now we introduce “small” -operations for -bottom nodes that are not contained in full join trees. Similar as in the case of the big operations, we need some additional information that allows us to compute bags of -children or parent nodes. Here, we add an additional integer that will guide our algorithm to a specific bag candidate. The main reason why we add this information to the state is to guarantee that our algorithm computes the same bag for the bottom node of the directed path as we computed in the predecessor states for the parent of the top node. We have the following small -operations.
-
with some vertex and some integer .
-
with some vertex sets and some integer .
In order to define which -bottom nodes admit the above-described small -operations, we again use a function that “decodes” its bag. Let be a function which takes as input a subset of and the number that will guide the algorithm to a specific bag. We additionally need to define a function that determines the bags of the children. We call this function (for “neighboring bag”). It takes as input the bag, the integer , and a flag from indicating whether we wish to compute the bag of the parent, the left child, or the right child (if the node only has one child, we consider this child to be a left child). Let .
Definition 4.3 ().
Let be a slim -nice tree decomposition of . Let be an -bottom node in that admits -operation . Let be the -child of and let be the parent of . If , , and , then we say that node admits -operation .
Definition 4.4 ().
Let be a slim -nice tree decomposition of . Let be an -bottom node in that admits -operation and is not contained in a full join tree. Let be the two -children of and let be the parent of . If , , , and , then we say that node admits -operation .
Note that in particular, if an -bottom node admits the -operation , then the bags of its parent and its -child are not full. Similarly, if an -bottom node admits the -operation , then the bags of its parent and both its -children are not full.
In the case that an -bottom node that admits the -operation , we have that its -child has a potentially larger bag. In order to determine the bag of , we will first compute the bag of the -child . Informally speaking, we need some information about the child of that is on the path from to its closest descendant that is an -bottom node. Let be the closest descendant of that is an -bottom node. If has the same bag as , then we essentially have to compute the bag of the -bottom node . Hence, we need a flag that indicates whether we are in this case. And if we are (that is, ), then we need all information about the -operation of . Note that if also admits the -operation , then we know that the bag of is not full, which will be enough. If we are not in the above-described case (that is, ), then, similar as in the other small -operations, we need an additional integer that will guide our algorithm to a specific bag candidate. To capture all the above-described extra information, we introduce the following extended version of the -operation .
-
with some vertex , , , and some extended -operation that is different from .
Similarly to the previously introduced extended -operations, we define some auxiliary functions that serve analogous purposes. Let , where denotes the set of all extended -operations. Furthermore, let .
Definition 4.5 ().
Let be a slim -nice tree decomposition of . Let be an -bottom node in that admits -operation . Let be the -child of . Let be an extended -operation.
-
If there is a node that is the closest descendant of which is an -bottom node, , , admits -operation , , , and , then we say that node admits -operation .
-
Otherwise, if , , , and , then we say that node admits -operation .
Observe that if an -bottom node admits an extended -operation , then . This follows from the fact that the bag of an -bottom node that admits -operation (and hence potentially an -operation) is never full.
Observation 4.6.
Let be a slim -nice tree decomposition of . Let be an -bottom node in that admits -operation for some , , , and some -operation . Then we have that for every , , , and every extended -operation .
Finally, we remark that for the small -operations, we do not have an analog to Lemma 4.2, that is, in a slim -nice tree decomposition, it is generally not the case that every -bottom node that is not contained in a full join tree admits some small -operation. We have to refine the tree decompositions further to ensure that all -bottom nodes admit some extended (big or small) -operation. This is discussed further in the full version [41].
Dynamic Programming States and Table.
Now we define a state of the dynamic program. From now on, we only consider extended -operations, that is, whenever we refer to -operations, we only refer to extended ones. As described at the beginning of the section, it contains an -trace and two -operations, one for the -bottom node of the directed path of the -trace, and one for the parent (if it exists) of the top node of the directed path of the -trace. Formally, we define a state for the dynamic program as follows.
Definition 4.7 (State, Witness).
Let be an -trace and let and be two -operations. We call a state. We say that a slim -nice tree decomposition of witnesses if the following conditions hold.
-
If , then the root of has -trace .
-
If , then and there exists an -bottom node that admits -operation and has an -child with -trace .
-
If , then the -bottom node of the directed path of -trace admits -operation and, if additionally , then the parent of the top node of the directed path of -trace admits -operation .
We denote with the set of all states.
Note that Definition 4.7 implies that if a slim -nice tree decomposition of witnesses , then we have that if and only if , since -bottom nodes never admit the -operation .
Intuitively, we wish to obtain a dynamic programming table (for “partial treewidth”) that maps states to true if and only if there is a tree decomposition of the subgraph “below” the top node of the directed path of the -trace contained in the state that has width at most and that witnesses . Note that this is not a precise definition, since there may be many vertices in the graph that we may add to bags in the directed path of the -trace contained in the state, or above, or below it. Informally speaking, we will only add vertices of to bags in the directed path of the -trace contained in the state if they need to be added to those bags. This allows us to compute a function (for “local treewidth”) that outputs true if and only if the size of any bag in the directed path is at most . We will give a precise definition later. Our definition for will be somewhat similar to the one by Chapelle et al. [26], however, our definition of will be significantly more sophisticated than the one used by Chapelle et al. [26].
Given a state of the dynamic program, by Definition 3.9 we can immediately deduce the -traces of the -children of the bottom node of the directed path of the -trace . This gives rise to a “preceding”-relation on states. Let be a state with . Denote with the set of all extended -operations. Then, if or , the set of preceding states of is defined as follows.
-
If , then
-
If , then
If or , then the sets and of preceding states of are defined in an analogous way. We give all details in the full version [41].
We can show that the “preceding”-relation on states is acyclic. Hence, we can look up the value of for preceding states in our dynamic programming table when computing for some state . However, the above definition is purely syntactic and not for every pair of a state and its preceding states there is a tree decomposition that witnesses all states at the same time. Hence, we need to check which preceding states are legal. To this end, we introduce functions and that check whether for a pair of states or a triple of states , respectively, the second state or the second and third state are legal predecessors for the first state, respectively. In other words, it checks whether there exists a tree decomposition that witnesses all states and their preceding-relation. For the ease of presentation, we state the dynamic program as an algorithm that only decides whether the input graph has treewidth at most or not. However, the algorithm can easily be adapted to compute and output a corresponding tree decomposition. Formally, we define the dynamic programming table as follows.
Definition 4.8 (Dynamic Programming Table ).
The dynamic programming table is a recursive function which is defined as follows. Let , let , and let . Let be a state, then make the following case distinction based on .
-
If , then
-
If or , then
-
If or , then
Local Treewidth.
The function depends on the following three sets of vertices. Let be a state.
-
are the vertices in that we want to be in the bag of the top node of the directed path of , or, if in the bag of the -child with -trace of an -bottom node.
-
are the vertices in that we want to be in the bag of the parent of . If is the root, we will assume that .
-
are the vertices in that we want to be in the bag of the bottom node of the directed path of , or if then we set .
-
are additional vertices in that we want to place in some bag of the directed path of , or in some bag of a subtree rooted in a child of a node in the directed path that is not an -child, or if in some bag of a node below that is not an -child.
As an example, if a vertex has neighbors both in and , then there are bags in the subtree below where already met its neighbors in and there must still be bags above where meets its neighbors in . Hence, to meet the third condition of the definition of tree decompositions (see beginning of Section 3), vertex needs to be in the bags of both and and also every bag between them. The set , intuitively, contains all vertices of connected components of such that all their neighbors are in bags between the ones of and , and it is not the case that all neighbors are in bags above .
In order to define , we also need to know which vertices are contained in the bags of the -children of (if there are any). Let be the union of the bags of the -children of and the empty set if . Computing , , , and for a given state is the main challenge here. We give a formal definition of these three sets and algorithms to compute them in the full version [41]. Given , , and , we define as follows.
Using these four sets, we are ready to define the function .
Definition 4.9 (Local Treewidth ).
Let be a state, and let be the graph obtained from by adding edges between all pairs of vertices with , all pairs of vertices with , and all pairs of vertices with . Then
5 Conclusion
In this paper, we showed that a minimum tree decomposition for a graph can be computed in single exponential time in the feedback vertex number of the input graph, that is, in time. This improves the previously known result that a minimum tree decomposition for a graph can be computed in time [26, 37]. We believe that this can also be seen either as a critical step towards a positive resolution of the open problem of finding a time algorithm for computing an optimal tree decomposition, or, if its answer is negative, then a mark of the tractability border of single exponential time algorithms for the computation of treewidth.
References
- [1] Eyal Amir. Approximation algorithms for treewidth. Algorithmica, 56:448–479, 2010. doi:10.1007/S00453-008-9180-4.
- [2] Stefan Arnborg. Efficient algorithms for combinatorial problems on graphs with bounded decomposability—a survey. BIT Numerical Mathematics, 25(1):1–23, 1985.
- [3] Stefan Arnborg, Derek G. Corneil, and Andrzej Proskurowski. Complexity of finding embeddings in a -tree. SIAM Journal on Algebraic Discrete Methods, 8(2):277–284, 1987.
- [4] Stefan Arnborg, Jens Lagergren, and Detlef Seese. Easy problems for tree-decomposable graphs. Journal of Algorithms, 12(2):308–340, 1991. doi:10.1016/0196-6774(91)90006-K.
- [5] Stefan Arnborg and Andrzej Proskurowski. Linear time algorithms for NP-hard problems restricted to partial -trees. Discrete Applied Mathematics, 23(1):11–24, 1989. doi:10.1016/0166-218X(89)90031-0.
- [6] Mahdi Belbasi and Martin Fürer. Finding all leftmost separators of size . In Proceedings of the 15th International Conference on Combinatorial Optimization and Applications (COCOA), volume 13135 of LNCS, pages 273–287. Springer, 2021.
- [7] Mahdi Belbasi and Martin Fürer. An improvement of Reed’s treewidth approximation. Journal of Graph Algorithms and Applications, 26(2):257–282, 2022. doi:10.7155/JGAA.00593.
- [8] Marshall W. Bern, Eugene L. Lawler, and Alice L. Wong. Linear-time computation of optimal subgraphs of decomposable graphs. Journal of Algorithms, 8(2):216–235, 1987. doi:10.1016/0196-6774(87)90039-3.
- [9] Umberto Bertelè and Francesco Brioschi. Nonserial dynamic programming. Academic Press, Inc., 1972.
- [10] Hans L. Bodlaender. Dynamic programming on graphs with bounded treewidth. In Proceedings of the 15th International Colloquium on Automata, Languages and Programming (ICALP), volume 317 of LNCS, pages 105–118. Springer, 1988. doi:10.1007/3-540-19488-6_110.
- [11] Hans L. Bodlaender. A tourist guide through treewidth. Acta Cybernetica, 11(1-2):1–21, 1993. URL: https://cyber.bibl.u-szeged.hu/index.php/actcybern/article/view/3417.
- [12] Hans L. Bodlaender. A linear-time algorithm for finding tree-decompositions of small treewidth. SIAM Journal on Computing, 25(6):1305–1317, 1996. doi:10.1137/S0097539793251219.
- [13] Hans L. Bodlaender. Treewidth: Algorithmic techniques and results. In Proceedings of the 22nd International Symposium on Mathematical Foundations of Computer Science (MFCS), volume 1295 of LNCS, pages 19–36. Springer, 1997. doi:10.1007/BFB0029946.
- [14] Hans L. Bodlaender. A partial -arboretum of graphs with bounded treewidth. Theoretical Computer Science, 209(1-2):1–45, 1998. doi:10.1016/S0304-3975(97)00228-4.
- [15] Hans L. Bodlaender. Discovering treewidth. In Proceedings of the 31st Annual Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM), volume 3381 of LNCS, pages 1–16. Springer, 2005. doi:10.1007/978-3-540-30577-4_1.
- [16] Hans L. Bodlaender. Treewidth: Characterizations, applications, and computations. In Proceedings of the 32nd International Workshop on Graph-Theoretic Concepts in Computer Science (WG), volume 4271 of LNCS, pages 1–14. Springer, 2006. doi:10.1007/11917496_1.
- [17] Hans L. Bodlaender. Treewidth: Structure and algorithms. In Proceedings of the 14th International Colloquium on Structural Information and Communication Complexity (SIROCCO), volume 4474 of LNCS, pages 11–25. Springer, 2007. doi:10.1007/978-3-540-72951-8_3.
- [18] Hans L. Bodlaender, Marek Cygan, Stefan Kratsch, and Jesper Nederlof. Deterministic single exponential time algorithms for connectivity problems parameterized by treewidth. Information and Computation, 243:86–111, 2015. doi:10.1016/J.IC.2014.12.008.
- [19] Hans L. Bodlaender, Pål Grønås Drange, Markus S. Dregi, Fedor V. Fomin, Daniel Lokshtanov, and Michał Pilipczuk. A 5-approximation algorithm for treewidth. SIAM Journal on Computing, 45(2):317–378, 2016. doi:10.1137/130947374.
- [20] Hans L. Bodlaender, Bart M.P. Jansen, and Stefan Kratsch. Preprocessing for treewidth: A combinatorial analysis through kernelization. SIAM Journal on Discrete Mathematics, 27(4):2108–2142, 2013. doi:10.1137/120903518.
- [21] Hans L. Bodlaender and Ton Kloks. Efficient and constructive algorithms for the pathwidth and treewidth of graphs. Journal of Algorithms, 21(2):358–402, 1996. doi:10.1006/JAGM.1996.0049.
- [22] Hans L. Bodlaender and Arie M.C.A. Koster. Combinatorial optimization on graphs of bounded treewidth. The Computer Journal, 51(3):255–269, 2008. doi:10.1093/COMJNL/BXM037.
- [23] Édouard Bonnet. Treewidth inapproximability and tight ETH lower bound. CoRR, abs/2406.11628, 2024. Accepted for publication in the proceedings of the 57th Annual ACM Symposium on Theory of Computing (STOC 2025). doi:10.48550/arXiv.2406.11628.
- [24] Richard B. Borie, R. Gary Parker, and Craig A. Tovey. Automatic generation of linear-time algorithms from predicate calculus descriptions of problems on recursively constructed graph families. Algorithmica, 7:555–581, 1992. doi:10.1007/BF01758777.
- [25] Yixin Cao. A naive algorithm for feedback vertex set. In Proceedings of the 1st Symposium on Simplicity in Algorithms (SOSA), volume 61 of OASIcs, pages 1:1–1:9. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2018. doi:10.4230/OASICS.SOSA.2018.1.
- [26] Mathieu Chapelle, Mathieu Liedloff, Ioan Todinca, and Yngve Villanger. Treewidth and pathwidth parameterized by the vertex cover number. Discrete Applied Mathematics, 216:114–129, 2017. doi:10.1016/J.DAM.2014.12.012.
- [27] Ernest J. Cockayne, Seymour E. Goodman, and Stephen T. Hedetniemi. A linear algorithm for the domination number of a tree. Information Processing Letters, 4(2):41–44, 1975. doi:10.1016/0020-0190(75)90011-3.
- [28] Bruno Courcelle. The monadic second-order logic of graphs. I. Recognizable sets of finite graphs. Information and Computation, 85(1):12–75, 1990. doi:10.1016/0890-5401(90)90043-H.
- [29] Bruno Courcelle and Joost Engelfriet. Graph structure and monadic second-order logic: a language-theoretic approach, volume 138. Cambridge University Press, 2012.
- [30] Marek Cygan, Fedor V. Fomin, Łukasz Kowalik, Daniel Lokshtanov, Dániel Marx, Marcin Pilipczuk, Michał Pilipczuk, and Saket Saurabh. Parameterized Algorithms. Springer, 2015. doi:10.1007/978-3-319-21275-3.
- [31] Marek Cygan, Jesper Nederlof, Marcin Pilipczuk, Michał Pilipczuk, Johan M.M. Van Rooij, and Jakub Onufry Wojtaszczyk. Solving connectivity problems parameterized by treewidth in single exponential time. ACM Transactions on Algorithms (TALG), 18(2):1–31, 2022. doi:10.1145/3506707.
- [32] David E. Daykin and C.P. Ng. Algorithms for generalized stability numbers of tree graphs. Journal of the Australian Mathematical Society, 6(1):89–100, 1966.
- [33] Reinhard Diestel. Graph Theory, 5th Edition, volume 173 of Graduate Texts in Mathematics. Springer, 2016.
- [34] Rodney G. Downey and Michael R. Fellows. Fundamentals of Parameterized Complexity. Springer, 2013. doi:10.1007/978-1-4471-5559-1.
- [35] Jörg Flum and Martin Grohe. Parameterized Complexity Theory, volume XIV of Texts in Theoretical Computer Science. An EATCS Series. Springer, 2006. doi:10.1007/3-540-29953-X.
- [36] Till Fluschnik, Hendrik Molter, Rolf Niedermeier, Malte Renken, and Philipp Zschoche. As time goes by: Reflections on treewidth for temporal graphs. In Treewidth, Kernels, and Algorithms - Essays Dedicated to Hans L. Bodlaender on the Occasion of His 60th Birthday, volume 12160 of LNCS, pages 49–77. Springer, 2020. doi:10.1007/978-3-030-42071-0_6.
- [37] Fedor V. Fomin, Mathieu Liedloff, Pedro Montealegre, and Ioan Todinca. Algorithms parameterized by vertex cover and modular width, through potential maximal cliques. Algorithmica, 80:1146–1169, 2018. doi:10.1007/S00453-017-0297-1.
- [38] Fedor V. Fomin, Daniel Lokshtanov, Saket Saurabh, and Meirav Zehavi. Kernelization: Theory of Parameterized Preprocessing. Cambridge University Press, 2019.
- [39] Michael R. Garey and David S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, 1979.
- [40] Rudolf Halin. S-functions for graphs. Journal of Geometry, 8:171–186, 1976.
- [41] Amit Zivan Hendrik Molter, Meirav Zehavi. Treewidth parameterized by feedback vertex number. CoRR, abs/2504.18302, 2025. URL: https://arxiv.org/abs/2504.18302.
- [42] Russell Impagliazzo and Ramamohan Paturi. On the complexity of -SAT. Journal of Computer and System Sciences, 62(2):367–375, 2001. doi:10.1006/JCSS.2000.1727.
- [43] Russell Impagliazzo, Ramamohan Paturi, and Francis Zane. Which problems have strongly exponential complexity? Journal of Computer and System Sciences, 63(4):512–530, 2001. doi:10.1006/JCSS.2001.1774.
- [44] Ton Kloks. Treewidth, Computations and Approximations, volume 842 of LNCS. Springer, 1994. doi:10.1007/BFB0045375.
- [45] Tomasz Kociumaka and Marcin Pilipczuk. Faster deterministic feedback vertex set. Information Processing Letters, 114(10):556–560, 2014. doi:10.1016/J.IPL.2014.05.001.
- [46] Tuukka Korhonen. A single-exponential time 2-approximation algorithm for treewidth. SIAM Journal on Computing, 0(0):FOCS21–174–FOCS21–194, 2023.
- [47] Tuukka Korhonen and Daniel Lokshtanov. An improved parameterized algorithm for treewidth. In Proceedings of the 55th Annual ACM Symposium on Theory of Computing (STOC), pages 528–541. ACM, 2023. doi:10.1145/3564246.3585245.
- [48] Jens Lagergren and Stefan Arnborg. Finding minimal forbidden minors using a finite congruence. In Proceedings of the 18th International Colloquium on Automata, Languages, and Programming (ICALP), volume 510 of LNCS, pages 532–543. Springer, 1991. doi:10.1007/3-540-54233-7_161.
- [49] Jason Li and Jesper Nederlof. Detecting feedback vertex sets of size in time. ACM Transactions on Algorithms (TALG), 18(4):1–26, 2022. doi:10.1145/3504027.
- [50] Sandra Mitchell and Stephen Hedetniemi. Linear algorithms for edge-coloring trees and unicyclic graphs. Information Processing Letters, 9(3):110–112, 1979. doi:10.1016/0020-0190(79)90049-8.
- [51] Rolf Niedermeier. Invitation to Fixed-Parameter Algorithms. Oxford University Press, 2006. doi:10.1093/ACPROF:OSO/9780198566076.001.0001.
- [52] Neil Robertson and Paul D. Seymour. Graph minors. III. Planar tree-width. Journal of Combinatorial Theory, Series B, 36(1):49–64, 1984. doi:10.1016/0095-8956(84)90013-3.
- [53] Neil Robertson and Paul D. Seymour. Graph minors. II. Algorithmic aspects of tree-width. Journal of Algorithms, 7(3):309–322, 1986. doi:10.1016/0196-6774(86)90023-4.
- [54] Neil Robertson and Paul D. Seymour. Graph minors. XIII. The disjoint paths problem. Journal of combinatorial theory, Series B, 63(1):65–110, 1995. doi:10.1006/JCTB.1995.1006.