Computing Hybridization Networks for
Multiple Rooted Binary Phylogenetic Trees by
Maximum Acyclic Agreement Forests
Abstract It is a known fact that, given two rooted binary phylogenetic trees, the concept of maximum acyclic agreement forests is sufficient to compute hybridization networks with minimum hybridization number. In this work, we demonstrate by first presenting an algorithm and then showing its correctness, that this concept is also sufficient in the case of multiple input trees. More precisely, we show that for computing minimum hybridization networks for multiple rooted binary phylogenetic trees on the same set of taxa it suffices to take only maximum acyclic agreement forests into account.
Moreover, this article contains a proof showing that the minimum hybridization number for a set of rooted binary phylogenetic trees on the same set of taxa can be also computed by solving subproblems referring to common clusters of the input trees.
Keywords Hybridization Networks Maximum Acyclic Agreement Forests Bounded Search Phylogenetics
1 Introduction
The evolution of species is often described by a phylogenetic tree representing a set of speciation events. Due to reticulation events, however, a tree is often insufficient, because different genetic sequences can give rise to different phylogenetic trees. An important reticulation event, which could be prevalently discovered in plants but also in animals, is hybridization [15]. In order to study evolution affected by hybridization, one can reconcile incongruent phylogenetic trees, which for instance have been constructed for certain species based on different genes, into a single hybridization network. Whereas phylogenetic trees only contain internal nodes of indegree one referring to certain speciation events, hybridization networks can, additionally, contain nodes of larger indegree representing putative hybridization events.
The problem of computing hybridization networks with minimum hybridization number is known to be NPhard [5] but fixedparameter tractable, even for the simplest case when only two binary phylogenetic input trees are given. In the general case, however, if the input consists of more than two trees, the problem still remains fixedparameter tractable as recently shown by van Iersel and Linz [12]. This means, in particular, that the problem is exponential in some parameter related to the problem itself, which is the hybridization number in this case, but only polynomial to its input size, which is an important feature that facilitates the development of practical algorithms. Nevertheless, when developing an algorithm solving this computational hard problem, the challenge remains not only in guaranteeing its correctness but, especially, in providing a good practical running time. Thus, such an algorithm, on the one hand, has to be quite sophisticated and, on the other hand, has to be implemented in an efficient way, which can be achieved for instance by applying certain speedup techniques, by reducing the size of the input trees, or by running exhaustive parts of the algorithm in parallel.
Typically, a method computing hybridization networks for two rooted binary phylogenetic trees can be divided into the following two major steps. First, maximum acyclic agreement forests are computed by cutting down the input trees in a specific way, and, second, the components of such an agreement forest are again reattached by introducing reticulation edges in a way that the resulting network displays both input trees. Broadly speaking, an agreement forests can be seen as a set of common subparts occurring in both input trees. Moreover, in this context, the term maximum simply denotes that there is no smaller set fulfilling the properties of an agreement forest and the acyclic constraint denotes that it is possible, in a biological sense, to reattach its components back to a hybridization network. If this network contains a minimum number of reticulation edges, its hybridization number is minimal and, thus, this network is called a minimum hybridization network.
In general, there exists not just one but a large number of minimum hybridization networks. To recognize putative hybridization events, biologists are interested in all of those networks, since the more frequently a hybridization event is contained in a set of possible evolutionary scenarios the more likely it is part of the true underlying evolutionary history of the considered species. Thus, given two input trees, there is a need for two types of algorithms; one for the computation of all maximum acyclic agreement forests and another one for the computation of all hybridization networks based on each of those agreement forests.
While there exist some software packages providing methods for computing hybridization networks for two rooted binary phylogenetic trees on the same set of taxa [9, 11], in this work, we will present an algorithm computing a particular type of minimum hybridization networks, namely biologically relevant networks as defined later, for an arbitrary number of rooted binary phylogenetic trees on the same set of taxa. The workflow of this algorithm can be briefly summarized as follows. Starting with one input tree, all other input trees are embedded sequentially into a growing number of networks by adding further reticulation edges corresponding to certain components of a maximum acyclic agreement forest. In order to guarantee the computation of biologically relevant networks, it is important that each input tree is added to a so far computed network in all possible ways. This implies, in particular, that at the beginning, when adding the second tree of the ordering, say , to the first one, say , all biologically relevant networks embedding and have to be computed. Missing one of those networks could mean that a computational path leading to a biologically relevant network embedding the whole set of input trees is lost, and, as a consequence, the resulting output only consists of networks whose hybridization number is not minimal. A crucial observation of this work is that for this purpose it suffices to consider only maximum acyclic agreement forests.
Until now, the only software that is also able to compute minimum hybridization networks for multiple rooted binary phylogenetic trees is PIRNv2.0 [19, 20]. A recently conducted simulation, however, has revealed that an implementation of our algorithm provides the clearly better practical running time and, additionally, in general PIRNv2.0 does only output a small subset of all biologically relevant networks [3], which prohibits a significant biological interpretation of each network as discussed above.
This work is organized as follows. In a first step, the terminology that is used throughout this work is introduced. Next, in Section 3, we give a detailed description of our algorithm allHNetworks whose correctness is shown in a subsequent section. Finally, we end the description of allHNetworks by briefly discussing its theoretical worstcase runtime and by giving some concluding remarks. In a second part, we describe some techniques improving the running time of our algorithm whereat one of those techniques is the well known cluster reduction. We finish this article by presenting a proof showing that the concept of the cluster reduction can be also applied to multiple rooted binary phylogenetic trees without having an impact on the computation of the minimum hybridization number.
2 Preliminaries
In this section, we give some preliminary definitions concerning phylogenetic trees, hybridization networks, and agreement forests following the work of Huson et al. [10] and Scornavacca et al. [16], which will be first used for describing the algorithm allHNetworks and then for showing its correctness. We assume that the reader is familiar with general graphtheoretic concepts.
Phylogenetic trees. A rooted phylogenetic tree is a tree whose edges are directed from the root to the leaves and whose nodes, except for the root, have a degree unequal to . We call a binary tree if its root has indegree and outdegree , each inner node indegree and an outdegree , and each leaf indegree and outdegree . The leaves of a rooted phylogenetic tree are labeled onetoone by the taxa set , which usually consists of certain species or genes and is denoted by . Considering a node of , the label set refers to each taxon that is contained in the subtree rooted at . Given a set of trees , the label set denotes the union of each label set of each tree in .
Now, based on a taxa set , we can define a restricted subtree of a rooted phylogenetic tree, denoted by . The restricted subtree is computed by, first, deleting each leaf repeatedly that is either unlabeled or whose taxon is not contained in , resulting in a subgraph denoted by , and, second, by suppressing each node of both in and outdegree . Moreover, given a tree , by we denote the tree that is obtained from by suppressing all nodes of both in and outdegree . The result of such a restriction is a rooted phylogenetic tree.
Phylogenetic networks. A rooted phylogenetic network on is a rooted connected digraph whose edges are directed from the root to the leaves as defined in the following. There is exactly one node of indegree , namely the root, and no nodes of both in and outdegree . The set of nodes of outdegree is called the leaf set of and is labeled onetoone by the taxa set , also denoted by . In contrast to a phylogenetic tree, such a network may contain undirected but not any directed cycles. Consequently, can contain nodes of indegree larger than or equal to , which are called reticulation nodes. Moreover, each edge that is directed into such a reticulation node is called reticulation edge.
Hybridization Networks. A hybridization network for a set of rooted binary phylogenetic trees, with , is a rooted phylogenetic network on displaying (i.e., contains an embedding of each tree in ). More precisely, this means that for each tree in there exists a set of reticulation edges referring to . More specifically, this means that can be derived from by conducting the following steps.

First, delete each reticulation edge from that is not contained in .

Then, remove each node whose corresponding taxon is not contained in .

Next, remove each unlabeled node of outdegree repeatedly.

Finally, suppress each node of both in and outdegree .
From a biological point of view, this means that displays (i.e., contains an embedding of ) if each speciation event of is reflected by . Moreover, each internal node of indegree represents a speciation event and each internal node providing an indegree of at least represents a reticulation event or, in terms of hybridization, a hybridization event. This means, in particular, that such a latter node represents an individual whose genome is a chimaera of several parents. Thus, such a node of indegree larger than or equal to is called hybridization node (or reticulation node) and each edge directed into is called hybridization edge (or reticulation edge). Moreover, each edge that is not a hybridization edge is called tree edge.
Now, based on those hybridization nodes, the reticulation number of a hybridization network is defined by
(1) 
where denotes the node set and the edge set of . Next, based on the definition of the reticulation number, for a set of phylogenetic trees the (minimum or exact) hybridization number is defined by
(2) 
Throughout this work, we call a hybridization network for a set of rooted binary phylogenetic trees a minimum hybridization network, if .
Notice that the computation of the hybridization number for just two rooted binary phylogenetic trees is an NPhard problem [5] which is, however, still fixedparameter tractable [4]. More specifically, this means that the problem is exponential in some parameter related to the problem itself, namely the hybridization number, but only polynomial in the size of the input trees, which is an important feature facilitating the development of practical algorithms.
Lastly, given a hybridization network on and an edge set referring to an embedded rooted phylogenetic tree of with , the restricted network refers to the minimal connected subgraph only containing leaves labeled by and edges that are either tree edges or contained in . Consequently, is a directed graph that corresponds to but still contains nodes of both in and outdegree , and, thus, each node in can be mapped back to exactly one specific node of the unrestricted network (cf. Fig.1(c)).
Forests. Let be a rooted nonbinary phylogenetic tree . Then, we call any set of rooted nonbinary phylogenetic trees with a forest on , if we have for each pair of trees and that . Moreover, if additionally for each component in the tree equals , we say that is a forest for .
Agreement forests. For technical purpose, the definition of agreement forests is based on two rooted binary phylogenetic trees and whose roots are marked by a unique taxon as follows. Let be the root of the tree with . Then, we first create a new node as well as a new leaf labeled by a new taxon and then attach these nodes to by inserting the two edges and . Notice that in this case and is the new root of and , respectively. Moreover, since we consider as being a new taxon, the taxa set of both trees is (cf. Fig. 2(a)).
Now, assuming we have given two trees and whose roots are marked by a unique taxon , then, a binary agreement forest for and is a set of components on satisfying the following properties.

Each component with taxa set equals and .

There is exactly one component, denoted as , with .

Let be the taxa sets of the components . All trees in and are node disjoint subtrees of and , respectively (cf. Fig. 2(b)).
Throughout this work, we call an agreement forest a maximum agreement forest, if this agreement forest is of minimal size. This means, in particular, that there does not exist another set of components of smaller size satisfying the conditions of an agreement forest listed above.
Lastly, there is another important property an agreement forest can satisfy. We call an agreement forest for two rooted binary phylogenetic trees and acyclic, if there is no directed cycle in the underlying ancestordescendant graph , which is defined as follows. First, this graph contains one node corresponding to precisely one component of . Moreover, two different nodes and of this graph are connected via a directed edge , if,

regarding , the root of is an ancestor of the root of

or, regarding , the root of is an ancestor of the root of ,
where and refers to the taxa set of the two components and , respectively (cf. Fig. 2(c)). Again, we call an acyclic agreement forest consisting of a minimum number of components a maximum acyclic agreement forest. Notice that for a maximum acyclic agreement forest containing components there exists a hybridization network with hybridization number [6]. This means, in particular, if a maximum acyclic agreement forest for two rooted binary phylogenetic trees and contains only one component, equals .
Acyclic orderings. Given an agreement forest for two rooted binary phylogenetic trees and , then, if is acyclic and, thus, does not contain any directed cycles, one can compute an acyclic ordering as already described in the work of Baroni et al. [7]. First, select the node corresponding to of indegree and remove together with all its incident edges. Next, again choose a node of indegree and remove . By continuing this way, until finally all nodes have been removed, one receives the ordering containing all nodes in . In the following, we call the ordering of components corresponding to each node in an acyclic ordering of . Notice that, as during each of those steps there can occur several nodes of indegree , especially if contains components consisting only of isolated nodes, such an acyclic ordering is in general not unique.
Stacks of hybridization nodes. Given a hybridization network displaying a set of rooted binary phylogenetic trees and containing a node of indegree of at least , one can generate further networks still displaying by dragging some of its reticulation edges upwards resulting in socalled stack of hybridization nodes. More precisely, such a stack is a path , with , of hybridization nodes in which each node is connected through a reticulation edge to (cf. Fig. 3).
Relevant networks. Given a set of rooted phylogenetic trees and a phylogenetic network on , then, we say is a relevant network for , if is a hybridization network displaying with minimum hybridization number and if does not contain any stacks of hybridization nodes. Notice that such a network leaves the interpretation of the ordering of the hybridization events adhering to a hybridization node of indegree larger than or equal to open.
Furthermore, we demand that each relevant network is a binary network not containing any nodes of outdegree larger than . Notice that by allowing nonbinary nodes the set of relevant networks usually shrinks, since a nonbinary network can contain multiple binary networks. Moreover, in order to improve its readability, we further demand that all hybridization nodes of a relevant network have outdegree one. Notice that, in order to identify stacks of hybridization nodes, in such networks the outedges of all hybridization nodes have to be suppressed.
Lastly, just for clarity, given two relevant networks and for a set of rooted phylogenetic trees, we say that equals if their graph topologies (disregarding the embedding of ) are isomorphic.
3 The Algorithm allHNetworks
Given a set of rooted binary phylogenetic trees and a parameter , our algorithm allHNetworks follows a branchandbound approach conducting the following major steps. For each order of , the trees are added sequentially to a set of networks . In the beginning, consists only of one element, which is the first input tree of the ordering. By sequentially adding the other input trees to each so far computed network, the size of growths rapidly, since in general an input tree can be added to each network in in potential several ways. Each time the reticulation number of a so far extended network exceeds , the processing of this network can be aborted. This is possible because by adding further input trees the reticulation number of the respective network is never decreased.
Given a set of rooted binary phylogenetic trees, based on two different objectives, our algorithm provides two different abort criteria:

Objective: Computation of the hybridization number of .
Abort criterion: As soon as one hybridization network with hybridization number is computed and each search after hybridization networks providing a hybridization number less than has failed. 
Objective: Computation of all relevant networks for .
Abort criterion: As soon as all hybridization networks with hybridization number are computed and each search after hybridization networks providing a hybridization number less than has failed.
For the computation of a minimum hybridization network, parameter is set to an initial value and is increased by one if a network displaying with hybridization number smaller than or equal to could not be computed so far. At the beginning, can be either simply set to or to a lower bound, e.g.,
A more sophisticated method for the computation of such a lower bound is described in the work of Wu [19]. In practice, however, the lower bound does not significantly improve the runtime, since the required steps for those ’s that can be skipped at the beginning are usually of rather low computational complexity.
3.1 Inserting Trees into Networks
Given a hybridization network , we say that a tree is displayed in , if there exists a set of reticulation edges such that equals (cf. Sec. 2). This implies, if such a subset does not exist, we have to insert new reticulation edges for displaying in . Given an edge set referring to an embedded tree that is already displayed in , those edges can be derived from each component of an agreement forest for and . The here presented algorithm is based on the observation, that, in order to compute all relevant networks, it suffices to take only maximum acyclic agreement forests into account (cf. Sec 5).
Hence, we can summarize the basic steps that are necessary for adding an input tree to a so far computed network as follows.

Choose an edge set referring to an embedded tree of by selecting precisely one inedge of each hybridization node.

First compute a maximum acyclic agreement forest for the two trees and and then choose an acyclic ordering of .

Based on , for each component of , except , create a valid pair of source and target nodes (as defined later) such that, by connecting each node pair, is embedded in the resulting network. Notice that this step will be discussed separately in the upcoming section.
It is easy to see, that the resulting network depends on the chosen edge set referring to the embedded tree , which is the case because different embedded trees lead to different maximum acyclic agreement forests which consequently lead to different reticulation edges that are necessary for the embedding of . Thus, to guarantee the computation of all relevant networks, all three steps have to be conducted for each edge set referring to an embedded tree in . Note that, given a network containing hybridization nodes, this network can contain up to different embedded trees. Moreover, all maximum acyclic agreement forests of the chosen embedded tree and the current input tree have to be taken into account, which can be done by applying the algorithm allMAAFs [16].
The insertion of components of a maximum acyclic agreement forest to a so far computed network is not a trivial step, since, usually, depending on other so far existing reticulation edges, there exist several potential ways of how can be inserted with the help of those components. Thus, this step will be discussed separately in the following section.
3.2 Inserting Components into Networks
Given an ordering of rooted phylogenetic trees, say , and a network displaying each tree with together with an edge set referring to some embedded tree of , we can add to by inserting further reticulation edges each corresponding to a specific component of a maximum acyclic agreement forest for and . Consequently, for each component a specific target and source node in has to be determined. Since different source and target nodes can lead to topologically different networks containing different sets of embedded trees, in order to obtain all relevant networks, we have take all valid combinations of source and target nodes for each component of into account. More precisely, we consider a pair of source and target nodes as being valid, if cannot be reached from . Furthermore, we have to consider each possible acyclic ordering of .
Hence, we can summarize all important steps for inserting components of a maximum acyclic agreement forest into a network as follows.

Choose an acyclic ordering of .

Add each component of this ordering, except , sequentially to by inserting a new reticulation edge connecting a certain source and target node.
The output of these two steps is usually a large number of new networks, since, in general, there exist several pairs of source and target nodes enabling an embedding of . Whereas all acyclic orderings of can be simply computed with the help of the directed graph (cf. Sec. 2), the second step inserting its components is quite more sophisticated. We will describe the way of adding a component of an acyclic ordering to a so far computed network by first describing the computation of source and target nodes and then, based on these two nodes, by describing the way new reticulation edges are generated.
1 Computation of target and source nodes. The set of source and target nodes corresponding to a component in is described in Step \Romannum1.\Romannum1–\Romannum1.\Romannum3. Therefor, let
be the set of components that has been added so far. Note that, since is initialized with , at the beginning equals and the first component that is added is .
1.\Romannum1 Computation of target nodes. The set of target nodes contains all nodes with isomorphic to . Due to the restriction of the network to , this set usually contains more than one node. Moreover, since we are only interested in relevant networks, we omit those target nodes that are source nodes of reticulation edges. This is a necessary step preventing the computation of networks containing stacks of hybridization nodes (cf. Sec. 2).
1.\Romannum2 Computation of source nodes of Type A. For each edge set referring to the embedded tree in , the set of source nodes of Type A contains all nodes with isomorphic to , where denotes the sibling of the node with in . Note that, due to the restriction of the network to , this set usually consists of more than one node. However, as we want to construct networks in which each hybridization node has outdegree one, we disregard those nodes having more than one inedge.
1.\Romannum3 Computation of source nodes of Type B. The set of source nodes of Type B is computed such that it contains each node of a subtree, whose root is a sibling of a node in not containing any leaves labeled by a taxon of . Moreover, its leaf set has to consist only of those subsets representing the total taxa set of a component in , which means that must not be part of a subtree corresponding to a component that is added afterwards. However, as we want to construct networks in which each hybridization node has outdegree one, we disregard those nodes having more than one inedge.
For a better understanding, the definitions of source and target nodes are illustrated in Figure 4.
Remark. Regarding two components and of an acyclic ordering of with and , it might be the case that both roots of and are siblings in , where and denotes the lowest common ancestor of and in . In this case, could be either added before or vice versa as both variants are acyclic orderings of . If is inserted before , a node whose leaf set corresponds to in acts as source node when adding to . Similarly, by adding before this happens the other way round which leads to a topologically different network. This implies that, in order to receive all relevant networks displaying , we have to consider different acyclic orderings of a maximum acyclic agreement forest.
2 Adding new reticulation edges. Now, given a valid pair of source and target nodes, a new reticulation edge is inserted as follows (cf. Fig. 5).

First, the inedge of is split by inserting a new node , i.e., is first deleted and then two new edges ans are inserted. Second, if the parent of has indegree one, the inedge of is split two times in the same way by inserting two nodes and . Let be the parent of after splitting its inedge. In this case, notice that is necessary to receive only hybridization nodes of outdegree one and is necessary to provide an attaching point for further reticulation edges as discussed below. Otherwise, if has an indegree of at least two, is set to , which prevents the computation of networks containing stacks of hybridization nodes.

Now, the two nodes, and , are connected through a path consisting of two edges. As we do not allow nodes of indegree larger than one as source nodes, this provides an attaching point for further reticulation edges within already inserted reticulation edges. Notice that, as direct consequence, in each completely processed network, in which all input trees have been inserted so far, one still has to suppress the source nodes of all reticulation edges as these nodes have both in and outdegree one.
In order to compute all relevant networks, one has to generate for each valid pair of source and target nodes a new network . This is necessary, since each of those networks contains different sets of embedded trees which can then be used for the insertion of further input trees and, thus, can initiate new computational paths leading to relevant networks.
For a better understanding, in Figure 6 we illustrate the insertion of an input tree into a so far computed network.
3.3 Combinatorial complexity
We finish the description of the algorithm by giving an idea of its combinatorial complexity. Given a set of rooted binary phylogenetic trees , in order to guarantee the computation of all relevant networks for , one has to consider the following combinations.

Take all possible orderings of into account.

When adding a tree to a so far computed network , each possible tree that is displayed by has to be considered.

When processing a so far computed network by adding a tree based on an a tree that is displayed by , take all acyclic orderings of each maximum acyclic agreement forest for and into account.

When adding a certain component of a maximum acyclic agreement forest for and to a so far computed network, consider all valid pairs of source and target nodes.
Missing one those combinatorial elements could imply that a computational path leading to a relevant network is not visited. As a direct consequence, possibly either not all relevant networks are computed or the output consists only of those hybridization networks not providing a minimum hybridization number.
3.4 Pseudocode of allHNetworks
We end this section by giving a pseudocode summarizing all important steps of the algorithm allHNetworks described in the previous section. Some of those steps are denoted by a roman numeral that refers to the equally marked part of Section 3.2.
4 Use case
In the following, we give a demonstration of the algorithm allHNetworks by presenting a use case for three input trees with taxa set . Each of the following Figures 7–12 and Tables 1, 2 refers to a particular substep of the algorithm, which is discussed in the corresponding captions.
1  (7);  (7);  7  (4);  4    
2  (9);  (9);  9  (5,6);  16    
3  (1);  (1);  1  (10);  10   
1  (4);  (4);  4, 25  (10);  10    
2  (9);  (9);  9  (2);  2   
5 Proof of correctness
Here, we proof the main result of this work, namely that for a set of rooted binary phylogenetic trees the algorithm allHNetworks calculates all relevant networks as defined in Section 2.
Theorem 5.1
Given a set of binary rooted phylogenetic trees , by calling
allHNetworks 
all relevant networks for are calculated.
For clarity, here we consider two relevant networks and as being different if both graph topologies of and (disregarding the embedding of ) differ.
Proof
The proof of Theorem 5.1 is based on the following three Lemmas 1–3. Here, we first show that the concept of acyclic agreement forest suffices to generate all of the desired networks. Next, we argue that for inserting acyclic agreement forests the algorithm takes all necessary pairs of source and target nodes into account. Finally, we proof that by taking all orderings of the input trees into account it suffices to focus only on acyclic agreement forests of minimum size, i.e., maximum acyclic agreement forests. Before entering the first lemma, however, we first have to introduce some further notations.
Let and be two rooted phylogenetic networks on . Then, we say that is displayed by , shortly denoted by , if can be obtained from by first deleting some of its reticulation edges and then by suppressing all nodes of both in and outdegree 1.
Similarly, let be a hybridization network on displaying two rooted phylogenetic trees and . Now, given an acyclic agreement forest for those two trees, we say that displays , shortly denoted by , if we can obtain from as follows. Regarding , let and be two sets of reticulation edges referring to and , respectively. First in all reticulation edges are deleted that are not contained in and then all nodes of both in and outdegree are suppressed. Notice that, by deleting those edges the network is disconnected into a set of disjoint trees each corresponding to exactly one of the components in .
Let be a set of rooted binary phylogenetic trees and let be a hybridization network displaying . Moreover, let be an edge set in referring to a tree . Then, for a tree the edge set refers to the edge set
This means, in particular, that consists of those reticulation edges that are only necessary for displaying and none of the other trees in .
Next, let be a phylogenetic network and let be a subset of its reticulation edges. Then, by writing we refer to the network that is obtained from by first deleting each edge in and then by suppressing each node of both in and outdegree .
Lemma 1
Let with be a set of rooted binary phylogenetic trees and let be a hybridization network displaying . Moreover, let with be an edge set referring to the respective tree in . Then, for each tree in the network contains an embedded tree such that contains an acyclic agreement forest for and , i.e., holds.
Proof
Let be an edge set in referring to and, based on , let be the edge set in as defined above. Moreover, let be a set of subtrees that is derived from as follows. First, the network is computed by removing each edge with . Next, each edge in with is removed and, finally, each node of both in and outdegree is suppressed. As the tree that can be derived from by suppressing its nodes of both in and outdegree one corresponds to , it is easy to see that consists of common subtrees of . Furthermore, as is obtained from by cutting some of its edges, this implies that is a set of nodedisjoint subtrees in .
Next, we will show how one can derive an edge set referring to a phylogenetic tree displayed in so that is an agreement forest for and . Therefor, we say a reticulation edge of is of Type A, if , and of Type B, if . Now, let be a subset of reticulation edges that is obtained from by visiting all of its reticulation nodes as follows. If, for a reticulation node, there exists an inedge of Type A, this edge is selected, otherwise, an arbitrary inedge of Type B is selected. As each edge in is also contained in , it is easy to see that is also displayed by .
Now, let be the set of reticulation edges that is removed from by restricting on and let be the set of reticulation edges that has been removed from in order to obtain . Then, the target of each reticulation edge in is a reticulation node providing an inedge of , which has been removed from (and, thus, actually from ) in order to obtain . As a direct consequence, each component in can be also obtained from by cutting some of its edges, which directly implies that is a set of nodedisjoint subtrees in .
As a direct consequence, is an agreement forest for both trees and . Moreover, since is a hybridization network and, consequently, does not contain any directed cycles, has to be an acyclic agreement forest for both trees.
This means that for inserting further rooted binary phylogenetic trees into so far computed networks it is sufficient to focus only on acyclic agreement forests. Notice, however, that the insertion of further reticulation edges based on such agreement forests can be conducted in several ways. Thus, in order to calculate all relevant networks, our algorithm has to guarantee that all of those possibilities are exploited, which is stated by the following lemma.
Lemma 2
Let be a set of rooted binary phylogenetic trees, be a network displaying each tree in , be an edge set referring to some embedded tree of , and be an acyclic agreement forest for and . Then, the algorithm allHNetworks inserts into so that each hybridization network displaying with and is calculated.
Proof
Given an acyclic ordering of the maximum acyclic agreement forest for the two trees and , then, when inserting each component in ascending order, beginning with , all possible target and source nodes in are taken into account. More precisely, let with and let be the sibling of a node with in .

Since for each target node the two trees and , with referring to , are isomorphic, each node not in automatically does not fulfill this property and, consequently, by using such a node as target node the resulting network would not display , and, thus, would not hold.

For each source node either the two trees and are isomorphic (if ) or, after the insertion of all components in , there exists a certain path leading to such a node whose edges can be used for displaying (if ). Choosing a node as source node, the reticulation edge inserted for and some node , could not be used for displaying in , since does not contain a node whose subtree is isomorphic to , with referring to .
Thus, following an acyclic ordering of , the algorithm allHNetworks considers all possible source and target nodes that can be used for inserting one of its components into the so far computed network .
However, as already discussed, for there may exist different acyclic orderings and, depending on these acyclic orderings, the set of so far added components varies. Consequently, for different acyclic orderings the tree can differ, which may lead to different sets of source nodes. However, since for inserting an acyclic agreement forest the algorithm allHNetworks takes all of its acyclic orderings into account, all of these different sets of target nodes are automatically considered and, thus, Lemma 2 is established.
We have shown so far that, given an ordering of input trees , each input tree can be added sequentially to a so far computed network displaying all previous trees by inserting an acyclic agreement forest for some embedded tree and in all possible ways such that there does not exist a network displaying with and . Notice that, as for inserting all embedded trees are taken into account, if the algorithm would additionally consider all acyclic agreement forests of arbitrary size, Lemma 1 and 2 would be sufficient to establish Theorem 5.1.
However, in order to maximize efficiency, the algorithm allHNetworks only focuses on maximum acyclic agreement forests and, thus, we still have to show why we only have to consider acyclic agreement forests of minimum size. For instance, as depicted in Figure 13, it can happen that for a specific ordering of the input trees more reticulation edges have to be added when inserting leading input trees so that the resulting networks contain embedded trees that are necessary to obtain socalled hidden relevant networks at the end. In the following, however, we will show that, if such a hidden relevant network for a specific ordering of input trees exists, this network has to be contained in a set of relevant networks calculated for another ordering of the input trees.
Now, before presenting the third lemma, we will first introduce a simple modification of the algorithm allHNetworks. Let be a set of rooted binary phylogenetic trees, then, allHNetworks denotes a modification of the algorithm allHNetworks that considers for the insertion of an input tree to so far computed networks all acyclic agreement forests of arbitrary size (instead of just those of minimum size).
Lemma 3
Let be a set of rooted binary phylogenetic trees. A relevant network for is calculated by calling allHNetworks() if and only if it is calculated by calling allHNetworks().
Proof
’’: As each computational path of the algorithm allHNetworks is also conducted by the modified algorithm allHNetworks, each relevant network calculated by calling allHNetworks() is obviously also calculated by calling allHNetworks().
’’: Here, we have to discuss why the algorithm allHNetworks has not to consider nonmaximum acyclic agreement forests leading to relevant networks. For this purpose, we will first show by induction on that, if for a specific ordering of the input trees a relevant network can be only computed by applying a nonmaximum acyclic agreement forest , then, in this case, there exists a different ordering computing by only taking components of maximum acyclic agreement forests into account.
Base case. The assumption, obviously, holds for . For an agreement forest that is not maximal cannot lead to relevant networks, since the insertion of a maximum acyclic agreement forest directly leads to a network whose reticulation number is smaller. This is, in particular, the case, since the algorithm inserts a reticulation edge for all components of an agreement forest, except , and, thus, in this simple case, the hybridization number simply equals . Note that, due to Lemma 1 and 2, in the case of two input trees, all relevant networks are calculated.
Inductive step. Now, let , with , be an ordering of input trees for which the algorithm allHNetworks calculates the set consisting of all relevant networks for and there exists a hidden relevant network for that could only be computed by inserting reticulation edges for a nonmaximum acyclic agreement forest for an input tree () and an embedded tree of the network displaying . Notice that this directly implies that in there exist reticulation edges only necessary for displaying both trees and , where denotes the difference between and the size of a maximum acyclic agreement forest for and , i.e., . In this case, however, as we will show in the following, can be also calculated by applying the algorithm to the ordering , where is inserted right after .
For this purpose, let be the relevant network displaying each tree except and in the same topological way as it is the case for . More precisely, equals the network that is obtained from by first deleting a set of reticulation edges , containing each edge that is not necessary for displaying an input tree in , then by deleting a set of reticulation edges , containing each remaining edge that is not necessary for displaying an input tree in , and finally by suppressing all nodes of both in and outdegree . Notice that we can calculate by applying the algorithm allHNetworks to since, by induction hypothesis, the algorithm is able to calculate all relevant networks embedding .
Next, let be the relevant network displaying each tree except in the same topological way as it is the case for . More precisely, equals the network that is obtained from by first deleting each reticulation edge that is not necessary for displaying an input tree in and then by suppressing all nodes of both in and outdegree . Notice that, based on , due to both previous Lemmas 1 and 2, this network can be calculated by inserting the components of an specific acyclic agreement forest for and the embedded tree of with . Moreover, is still contained in , since for displaying this tree no reticulation edge is necessary that has been added during the insertion of and and, thus, would not exist in .
It still remains to show, however, why this acyclic agreement is of minimum size. For this purpose, we will establish a proof by contradiction showing that in this case we could construct a hybridization network for providing a smaller reticulation number than . In a first step, however, we have to recall each acyclic agreement forest that is used in as well as in in order to insert the two trees and . The reader should keep in mind that by inserting a tree based on an acyclic agreement forest of size , the algorithm allHNetworks inserts precisely reticulation edges.

Regarding , first the tree is inserted by a nonmaximum acyclic agreement forest of size and then the tree is inserted by a maximum acyclic agreement forest of size .

Regarding , first the tree is inserted by a maximum acyclic agreement forest of size and then the tree is inserted by a maximum acyclic agreement forest of size .
Now, in order to establish a contradiction, let us assume that . Notice that through the edge set is reinserted, which implies that has to contain precisely components, where , as already mentioned above, denotes the difference between and the size of a maximum acyclic agreement forest for and , i.e.,