Instruction: Write an abstract for the following acadamic paper.

Input:
Paper: we have recorded the flight of a fly during take off and landing using digital high speed photography . it is shown that the dynamics of flexible wings are different for these procedures . during this observation fly flew freely in a big box and it was not tethered .
Abstract: in this fluid dynamics video , we demonstrated take off and landing of a fly . the deformation of wings is in focus in this video .

Paper: phylogenetic trees ( evolutionary trees ) are widely used in evolutionary biology to represent the tree - like evolution of a collection of extant species . however , due to reticulation events , such as hybridization and lateral gene transfer ( lgt ) in evolution , phylogenetic trees representing the evolutionary history of different parts of the genomes found in the same collection of the extant species may differ . in order to facilitate the comparison of these different phylogenetic trees , several metrics were proposed in the literature , such as robinson - foulds distance @xcite , nni ( nearest neighbor interchange ) distance @xcite , tbr ( tree bisection and reconnection ) distance , spr ( subtree prune and regraft ) distance @xcite , and hybridization number @xcite . the spr distance between two phylogenetic trees is the minimum number of subtree prune and regraft operations @xcite that needed to convert one tree to the other , which is equivalent to the minimum number of reticulation events to transform between the two trees . thus , the spr distance provides a lower bound on the number of such events needed to reconcile the two phylogenetic trees @xcite . and this lower bound gives an indication of the extent to which reticulation has influenced the evolutionary history of the extant species under consideration . similarly to the definition of the spr distance , the tbr distance between two phylogenetic trees is the minimum number of ` tree bisection and reconnection ' operations @xcite that needed to convert one tree to the other . although the tbr distance has no known direct biological meaning , it can be used to bound the space of phylogenetic trees .    for the study of tbr distance and spr distance , a graph theoretical model , the _ maximum agreement forest _ ( maf ) of two phylogenetic trees , has been formulated . define the _ order _ of a forest to be the number of connected components in the forest . allen and steel @xcite proved that the tbr distance between two _ unrooted binary _ phylogenetic trees is equal to the order of their maf minus @xmath4 , and bordewich and semple @xcite proved that the rspr distance between two _ rooted binary _ phylogenetic trees is equal to the order of their rooted version of maf minus @xmath4 . therefore , there are extensive researches studying the maf problem , which asks for constructing an maf for the given two phylogenetic trees . traditionally , biological researchers assumed that phylogenetic trees are bifurcating @xcite , which leads to most previously work about the maf problem are restricted to binary trees . however , for many biological data sets in practice ( e.g. , @xcite ) , the constructed phylogenetic trees are not strictly bifurcating , that is , these trees contain polytomies . there are two reasons for the polytomies in phylogenetic trees . first , lack of sufficient data or inappropriate analysis of characters , which result in poor resolution of true bifurcating relationships . second , multiple , simultaneous speciation events @xcite . moreover , more recent evidences show the existence of simultaneous speciation events ( e.g. , @xcite ) . therefore , it is crucial to study the general ( i.e. , binary and non - binary ) phylogenetic trees . note that , it is not difficult to verify that the order of an maf for two rooted general trees minus 1 is equal to their spr distance , and the order of an maf for two unrooted general trees minus 1 is equal to their tbr distance .    note again that we may construct multiple ( i.e. , two or more ) different phylogenetic trees for the same collection of species according to different data sets or different building methods . constructing an maf for these different trees makes more biological meaning than just for two trees . there are two reasons . first , take the maf for two rooted phylogenetic trees for instance , we have mentioned above that the spr distance between two trees provides a lower bound on the number of reticulation events needed to reconcile the two trees . but these two trees only represent the evolutionary histories of two different parts of the genomes found in the collection of species , thus , this lower bound can only give an indication of the extent to which reticulation has influenced the evolutionary histories of the two parts of the genomes found in the collection of species . if we construct a phylogenetic tree for each part of the genomes found in the collection of species and compare these different trees simultaneously , then , similarly , we can also have the same conclusion that the order of the maf for these trees provides a lower bound on the number of reticulation events needed to reconcile these trees . and this lower bound can give a more comprehensive indication of the extent to which reticulation has influenced the evolutionary history of the collection of species . second , constructing the maf for multiple trees is a critical step in studying the reticulate networks of multiple phylogenetic trees @xcite , which is a hot issue in phylogenetics . therefore , it is meaningful to study the maf problem on multiple trees . however , the maf problem on multiple trees has not been studied as extensively as that on two trees . above all , it makes perfect sense to investigate the maf problem on multiple general phylogenetic trees . in this paper , we will focus on the approximation algorithms and parameterized algorithms for the maf problem on multiple rooted general trees , and for the maf problem on multiple unrooted general trees .    in the following , we firstly review the previous related work about the maf problem . in terms of computational complexity , it is known that computing the order of an maf is np - hard and max snp - hard for two unrooted binary phylogenetic trees @xcite , as well as for two rooted binary phylogenetic trees @xcite . * approximation algorithms*. for the maf problem on two rooted binary phylogenetic trees , hein et al.@xcite proposed an approximation algorithm of ratio @xmath1 . but rodrigues et al.@xcite found a subtle error in @xcite , showed that the algorithm in @xcite has ratio at least @xmath3 , and presented a new approximation algorithm which they claimed has ratio @xmath1 . bonet et al.@xcite provided a counterexample and showed that both the algorithms in @xcite and @xcite compute a @xmath5-approximation of the rspr distance between two rooted binary trees in linear time . the approximation ratio was improved to 3 by bordewich et al.@xcite , but at the expense of an increased running time of @xmath6 . a second 3-approximation algorithm presented in @xcite achieves a running time of @xmath7 . whidden et al.@xcite presented the third 3-approximation algorithm , which runs in linear - time . recently , shi et al.@xcite presented an improved approximation algorithm of ratio @xmath8 , which is the best known approximation algorithm for the maf problem on two rooted binary trees . for the maf problem on two unrooted binary phylogenetic trees , whidden et al.@xcite presented a linear - time best known approximation algorithm of ratio @xmath1 . there is also a couple of approximation algorithms for the maf problem on two general phylogenetic trees . rodrigues et al.@xcite developed an approximation algorithm of ratio @xmath9 for the maf problem on two rooted general trees , where @xmath10 is the maximum number of children a node in the input trees may have . chen et al.@xcite developed a @xmath1-approximation algorithm , which is the first constant - ratio approximation algorithm for the maf problem on two unrooted general trees . for the maf problem on multiple rooted binary phylogenetic trees , chataigner @xcite presented an @xmath11-approximation algorithm . recently , the approximation ratio was improved to @xmath1 by shi et al .  @xcite . for the maf problem on multiple unrooted binary trees , shi et al . @xcite presented a @xmath3-approximation algorithm . to our best knowledge , there is currently no known approximation algorithm for the maf problem on multiple rooted ( unrooted ) general phylogenetic trees . * parameterized algorithms*. parameterized algorithms for the maf problem , parameterized by the order @xmath12 of an maf , have also been studied . a parameterized problem is _ fixed - parameter tractable _ @xcite if it is solvable in time @xmath13 , where @xmath12 is the parameter and @xmath14 is the input size . for the maf problem on two unrooted binary phylogenetic trees , allen and steel @xcite showed that is fixed - parameter tractable . hallett and mccartin @xcite developed a faster parameterized algorithm of running time @xmath15 . whidden and zeh @xcite further improved the time complexity to @xmath16 or @xmath17 . for the maf problem on two rooted binary phylogenetic trees , bordewich _ et al . _ @xcite developed a parameterized algorithm of running time @xmath18 . et al . _ @xcite improved this bound and developed an algorithm of running time @xmath19 . et al . _ @xcite presented currently the fastest algorithm of running time @xmath20 for the maf problem on two rooted binary trees . there is also a couple of parameterized algorithms for the maf problem on two general phylogenetic trees . et al . _ @xcite presented a parameterized algorithm of running time @xmath19 for the maf problem on two rooted general trees . and chen et al.@xcite developed an algorithm of running time @xmath21 for the maf problem on two unrooted general trees , which is also currently the fastest algorithm for the maf problem on two unrooted binary trees .    for the maf problem on multiple rooted binary phylogenetic trees , chen et al . @xcite presented a parameterized algorithm of running time @xmath22 . shi et al . @xcite improved this bound and developed an algorithm of running time @xmath21 . for the maf problem on multiple unrooted binary phylogenetic trees , shi et al . @xcite presented the first parameterized algorithm of running time @xmath17 . to our best knowledge , there is currently no known parameterized algorithm for the maf problem on multiple rooted ( unrooted ) general phylogenetic trees . * contributions*. in the current paper , we are focused on the approximation algorithms and parameterized algorithms for the maf problem on multiple general phylogenetic trees , for both the version of rooted trees and the version of unrooted trees . our algorithms are based on careful analysis of the graph structures that takes advantage of special relations among leaves in the trees . our main contributions include two parameterized algorithms for the maximum agreement forest problem on multiple general trees : one for rooted trees that runs in time @xmath0 , and the other for unrooted trees that runs in time @xmath2 . and two approximation algorithms for the maximum agreement forest problem on multiple general trees : one for rooted trees with ratio @xmath1 , and the other for unrooted trees with ratio @xmath3 . we implement the approximation algorithm and parameterized algorithm for the maf problem on multiple rooted general phylogenetic trees , obtain programs amaf and pmaf , respectively . we test both programs on simulated data and biological data . given multiple rooted general trees , pmaf can calculate the order of an maf for these trees rapidly when the order of an maf is small . and the order of the agreement forest returned by amaf is always less than @xmath1 times the order of an maf for these trees . a tree is a _ single - vertex tree _ if it consists of a single vertex , which is the leaf of the tree . a tree is _ general _ if either it is a single - vertex tree or each of its vertices has degree either @xmath4 or greater than @xmath23 . the degree-@xmath4 vertices are _ leaves _ and the other vertices are _ non - leaves _ of the tree . there are two kinds of trees in our discussion , one is unrooted trees and the other is rooted trees . in the following , we first give the terminologies on the unrooted trees , then remark on the differences for the rooted trees . let @xmath24 be a fixed irrelevant _ label - set_.      a general tree is _ unrooted _ if no root is specified in the tree  in this case no ancestor - descendant relation is defined in the tree . for the label - set @xmath24 , an unrooted _ general phylogenetic @xmath24-tree _ , or simply an unrooted _ @xmath24-tree _ , is an unrooted general tree whose leaves are labeled bijectively by the label - set @xmath24 ( all non - leaves are unlabeled ) . subforest _ of an unrooted @xmath24-tree @xmath25 is a subgraph of @xmath25 . and a _ subtree _ @xmath26 of @xmath25 is a connected subgraph of @xmath25 , which contains at least one leaf in @xmath25 . denote by @xmath27 the label set that contains all labels in @xmath26 . an unrooted _ @xmath24-forest @xmath28 _ is a subforest of an unrooted @xmath24-tree @xmath25 that contains all leaves of @xmath25 such that each connected component of @xmath28 contains at least one leaf in @xmath25 . thus , an unrooted @xmath24-forest @xmath28 is a collection of subtrees of @xmath25 , moreover , the label - sets of these subtrees are disjoint and the union of the label - sets is equal to @xmath24 . define the _ order _ of the @xmath24-forest @xmath28 , denoted ord@xmath29 , to be the number of connected components in @xmath28 . a subtree @xmath26 of an unrooted @xmath24-tree may contain unlabeled vertices of degree less than @xmath1 . in this case we apply the _ forced contraction _ operation on @xmath26 , which replaces each degree-@xmath23 vertex @xmath30 and its incident edges with a single edge connecting the two neighbors of @xmath30 , and removes each unlabeled vertex that has degree smaller than @xmath23 . note that the forced contraction does not change the order of an @xmath24-forest . it has been well - known that the forced contraction operation does not affect the construction of an maf for @xmath24-trees . therefore , we will assume that the forced contraction is applied immediately whenever it is applicable . an @xmath24-forest @xmath28 is _ irreducible _ if the forced contraction can not apply to @xmath28 . thus , the @xmath24-forests in our discussion are always assumed to be irreducible . with this assumption , each unlabeled vertex in an unrooted @xmath24-forest has degree not less than @xmath1 . two @xmath24-forests @xmath31 and @xmath32 are isomorphic if there is a graph isomorphism between @xmath31 and @xmath32 in which each leaf of @xmath31 is mapped to a leaf of @xmath32 with the same label . we will simply say that an @xmath24-forest @xmath33 is a subforest of another @xmath24-forest @xmath28 if , up to the forced contraction , @xmath33 is isomorphic to a subforest of @xmath28 . a general tree is _ rooted _ if a particular leaf is designated as the root ( so it is _ both _ a root and a leaf ) , which specifies a unique ancestor - descendant relation in the tree . a rooted @xmath24-_tree _ is a rooted general tree whose leaves are labeled bijectively by the label - set @xmath24 . the root of a rooted @xmath24-tree will always be labeled by a special label @xmath34 , which is always assumed to be in the label - set @xmath24 . a subtree @xmath26 of a rooted @xmath24-tree @xmath25 is a connected subgraph of @xmath25 which contains at least one leaf in @xmath25 . in order to preserve the ancestor - descendant relation in @xmath25 , we should define the root of the subtree @xmath26 . if @xmath26 contains the leaf labeled @xmath34 , certainly , it is the root of the subtree ; otherwise , the node in @xmath26 that is in @xmath25 the least common ancestor of all the labeled leaves in @xmath26 is defined to be the root of @xmath26 . subforest _ of a rooted @xmath24-tree @xmath25 is defined to be a subgraph of @xmath25 . a rooted _ @xmath24-forest @xmath28 _ is a subforest of a rooted @xmath24-tree @xmath25 that contains a collection of subtrees whose label - sets are disjoint such that the union of the label - sets is equal to @xmath24 . thus , one of the subtrees in a rooted @xmath24-forest @xmath28 must have the leaf labeled @xmath34 as its root . we also assume that the forced contraction is applied immediately whenever it is applicable . however , if the root @xmath35 of a subtree @xmath26 is of degree @xmath23 , then the operation will _ not _ be applied on @xmath35 , in order to preserve the ancestor - descendant relation in @xmath26 . thus , all unlabeled vertices in @xmath26 that are not the root of @xmath26 have degree not less than @xmath1 . the following terminologies are used for both rooted trees and unrooted trees . an @xmath24-forest @xmath28 is an _ agreement forest _ for a collection @xmath36 of @xmath24-forests if @xmath28 is a subforest of @xmath37 , for all @xmath38 . a _ maximum agreement forest _ ( abbr . maf ) @xmath39 for @xmath40 is an agreement forest for @xmath40 with a minimum ord@xmath41 over all agreement forests for @xmath40 . the four versions of the maf problem on multiple general @xmath24-forests studied in the current paper , are formally given as follows . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ rooted parameterized maximum agreement forest ( para - rmaf ) + _ input _ :  a set @xmath42 of rooted general @xmath24-forests , and a parameter @xmath12 + _ output _ : an agreement forest @xmath39 for @xmath42 with ord@xmath43 + or report that no such an agreement forest exists +    unrooted parameterized maximum agreement forest ( para - umaf ) + _ input _ :  a set @xmath42 of unrooted general @xmath24-forests , and a parameter @xmath12 + _ output _ : an agreement forest @xmath39 for @xmath42 with ord@xmath43 + or report that no such an agreement forest exists +    rooted maximum agreement forest ( app - rmaf ) + _ input _ :  a set @xmath42 of rooted general @xmath24-forests + _ output _ : a maximum agreement forest @xmath39 for @xmath42 +    unrooted maximum agreement forest ( app - umaf ) + _ input _ :  a set @xmath42 of unrooted general @xmath24-forests + _ output _ : a maximum agreement forest @xmath39 for @xmath42 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    every agreement forest @xmath28 for a collection @xmath36 of @xmath24-forests corresponds to a unique minimum subgraph ( contains the minimum number of edges ) of @xmath37 , denoted by @xmath44 , for all @xmath38 . thus , without any confusion , we can simply say that an edge @xmath45 is in or not in the agreement forest @xmath28 , as long as @xmath45 is in or not in the unique corresponding subgraph @xmath44 , respectively . the following concept on two @xmath24-forests will play an important role in our discussion . let @xmath31 and @xmath32 be two @xmath24-forests ( either both rooted or both unrooted ) . an agreement forest @xmath28 for @xmath31 and @xmath32 is a _ maximal agreement forest _ ( _ maximal - af _ ) for @xmath31 and @xmath32 if there is no agreement forest @xmath33 for @xmath31 and @xmath32 such that @xmath28 is a subforest of @xmath33 and @xmath46 .    by definition , an maf for two @xmath24-forests @xmath31 and @xmath32 is also a maximal - af for @xmath31 and @xmath32 , but the inverse is not necessarily true . fix a label - set @xmath24 . because of the bijection between the leaves in an @xmath24-forest @xmath28 ( either rooted or unrooted ) and the labels in the label - set @xmath24 , sometimes we will use , without confusion , a label in @xmath24 to refer to the corresponding leaf in @xmath28 , or vice versa .    for a subset @xmath47 of edges in an @xmath24-forest @xmath28 ( either rooted or unrooted ) , we will denote by @xmath48 the forest @xmath28 with the edges in @xmath47 removed . for any @xmath24-forest @xmath33 that is a subforest of @xmath28 , it is easy to see that there is an edge subset @xmath49 of @xmath28 that @xmath50 .    for an arbitrary edge @xmath45 in an @xmath24-forest @xmath28 , removing edge @xmath45 would lead two new subtrees be constructed in @xmath51 , denoted by @xmath52 and @xmath53 , respectively . let @xmath36 be a collection of @xmath24-forests ( either all are rooted or all are unrooted ) , @xmath54 . in the following , we give a reduction rule for @xmath36 . * reduction rule 1 . * let @xmath55 be several subtrees in @xmath24-forest @xmath56 , @xmath57 , @xmath58 . if there exists an edge @xmath45 in @xmath24-forest @xmath59 , @xmath60 , @xmath61 , that @xmath62 and @xmath63 , then remove @xmath45 from @xmath59 . [ reduction rule 1 ] let @xmath64 be the collection that produced by reduction rule 1 on the collection @xmath36 , then @xmath64 and @xmath36 have the same collection of mafs . let @xmath28 be a fixed maf for @xmath36 . let @xmath65 and @xmath66 . since @xmath28 is a subforest of @xmath56 , for each subtree @xmath67 in @xmath56 , @xmath68 , we have that any label of @xmath69 can not be in the same connected component with any label of @xmath70 in @xmath28 . thus , any label of @xmath71 can not be in the same connected component with any label of @xmath72 in @xmath28 . suppose edge @xmath45 is in @xmath28 . then there would exist a path in @xmath28 that connects a label of @xmath73 and a label of @xmath74 . because @xmath75 and @xmath76 , so there would exist a path in @xmath28 that connects a label of @xmath71 and a label of @xmath72 , which contracts the fact that any label of @xmath71 can not be in the same connected component with any label of @xmath72 in @xmath28 . thus , edge @xmath45 could not be in @xmath28 . therefore , @xmath28 is still a subforest of @xmath77 , and @xmath28 is also an maf for @xmath64 . we will assume that reduction rule 1 is applied whenever it is possible . a instance ( of anyone of the four versions of maf problem ) is _ strongly reducible _ if reduction rule 1 is not applicable on it . therefore , all instances in our following discussion are always strongly reducible . before analyzing the detail parameterized algorithms for para - rmaf and para - umaf , we firstly give a few lemmas , which hold true for both para - rmaf and para - umaf . and according to these lemmas , we can present the general frame of our parameterized algorithms . the first lemma follows directly from the definition of maximal - af . [ maximal ] every agreement forest for two @xmath24-forests @xmath31 and @xmath32 is a subforest of a maximal - af @xmath33 for @xmath31 and @xmath32 , but @xmath33 may not be unique .    since the maf @xmath28 for a set of @xmath24-forests @xmath36 must be an agreement forest for @xmath31 and @xmath32 , thus , by lemma  [ maximal ] , there must exist a maximal - af @xmath33 for @xmath31 and @xmath32 that @xmath28 is a subforest of @xmath33 . moreover , we have the following lemma . [ maximal - maf ] let @xmath78 be a set of @xmath24-forests , and let @xmath28 be a fixed maf for it . there must exist a maximal - af @xmath33 for @xmath31 and @xmath32 that @xmath28 is also an maf for @xmath79 . let @xmath28 be a fixed maf for @xmath80 , and let @xmath33 be a maximal - af for @xmath31 and @xmath32 that @xmath28 is a subforest of @xmath33 . obviously , @xmath28 is an agreement forest for @xmath79 , thus , the order of the maf for @xmath79 is not larger than ord@xmath29 . on the other hand , every agreement forest for @xmath79 is also an agreement forest for @xmath78 , thus , the order of the maf for @xmath79 is not less than ord@xmath29 . therefore , the order of the maf for @xmath79 is ord@xmath29 , @xmath28 is an maf for @xmath79 . let @xmath81 be an instance of either para - rmaf or para - umaf . now according to lemma  [ maximal - maf ] , we can give the general frame of our parameterized algorithms . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ main - algorithm + 1 . construct a collection @xmath82 of agreement forests for @xmath31 and @xmath32 that + contains all maximal - af @xmath28 for @xmath31 and @xmath32 with ord@xmath83 ; + 2 . * for * each @xmath28 in the collection @xmath84 constructed in step 1 + recursively work on the instance @xmath85 . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    for an @xmath24-subforest @xmath33 of an @xmath24-forest @xmath28 , we always have ord@xmath86 . thus , no maximal - af @xmath28 for @xmath31 and @xmath32 with ord@xmath87 can contain an maf @xmath33 for @xmath81 with ord@xmath88 . therefore , in step 1 of main - algorithm , we only need examine all maximal - afs whose order is bounded by @xmath12 . [ main - para ] the main - algorithm correctly returns an agreement forest @xmath39 with ord@xmath43 for @xmath89 if such an agreement forest exists .    if there exists an agreement forest @xmath39 with ord@xmath43 for @xmath89 , by lemma  [ maximal - maf ] , there must exist a maximal - af @xmath28 for @xmath31 and @xmath32 that @xmath39 is also an maf for @xmath90 , which is an instance examined in step 2 . therefore , if @xmath81 has a solution , then step 2 will return such a solution .    on the other hand , if there exists an agreement forest @xmath39 for @xmath91 with ord@xmath43 , then , obviously , @xmath39 is also a solution for @xmath89 . thus , every solution for @xmath91 is also a solution for @xmath89 . that is , if @xmath81 has no solution , step 2 could not return a solution . the theorem is proved .    in the following two subsections , we will discuss the detail ways of how to construct all maximal - afs for two rooted general @xmath24-forests and for two unrooted general @xmath24-forests separately . then , combining the main algorithm , we can give the detail parameterized algorithms for para - rmaf and para - umaf . two leaves of a rooted general @xmath24-forest are siblings if they have a common parent . sibling set _ is set of leaves that are siblings . maximal sibling set _ mss ) @xmath92 is a sibling set that the common parent @xmath93 of @xmath92 has degree either @xmath94 if @xmath93 has no parent or @xmath95 if @xmath93 has a parent .    in this subsection , we present the way of enumerating all maximal - afs for two rooted general @xmath24-forests @xmath31 and @xmath32 . let @xmath39 be a fixed maximal - af for @xmath31 and @xmath32 . we begin with a simple lemma . [ simpleroot ] let @xmath31 and @xmath32 be two rooted general @xmath24-forests . if @xmath32 has no mss , then @xmath31 and @xmath32 have the unique maximal - af which can be constructed in linear time .    if @xmath32 has no mss , then @xmath32 has at most one edge . if @xmath32 has no edge , then all connected components of @xmath32 are single - vertex trees and @xmath32 itself is the unique maximal - af for @xmath31 and @xmath32 . if @xmath32 has one edge , then all connected components of @xmath32 are single - vertex trees except one that is a single - edge tree whose root is @xmath34 with a unique child that is labeled by a label @xmath96 . if @xmath34 and @xmath96 are in the same connected component in @xmath31 , then the unique maximal - af for @xmath31 and @xmath32 is @xmath32 itself ; otherwise , the unique maximal - af for @xmath31 and @xmath32 consists of only single - vertex trees , each is labeled by an element in @xmath24 .    by lemma  [ simpleroot ] , in the following discussion , we will assume that @xmath32 has an mss @xmath92 . because we assumed that all instances in our discussion are strongly reducible , so none of labels in @xmath92 is a single - vertex tree in @xmath31 ; otherwise , reduction rule 1 can remove the edge incident to the label in @xmath32 which is a single - vertex tree in @xmath31 . in the following , we consider all possible cases for the labels of @xmath92 in @xmath31 . since @xmath97 , we can assume that labels @xmath98 and @xmath99 belong to @xmath92 . * case 1 . * all labels in @xmath92 consist an mss in @xmath31 . in this case , @xmath31 and @xmath32 have the same local structure in term of @xmath92 , which consists of the labels in @xmath92 and the parent of @xmath92 . thus , in the further processing of @xmath31 and @xmath32 , the local structure remains unchanged . therefore , we can treat it as an un - decomposable structure . note that @xmath39 also have the local structure .    * step 1 . * group all labels in @xmath92 and their parent into an un - decomposable structure , and mark the unit with the same label in @xmath31 and @xmath32 .    to implement step 1 , we simply remove all labels in @xmath92 and label the parent with @xmath100 , where @xmath100 is a combination of the labels in @xmath92 ( e.g. , assume @xmath101 , then @xmath102 ) . in the further processing of @xmath31 and @xmath32 , we can treat @xmath100 as a new leaf in the forests . this step not only changes the structures of @xmath31 and @xmath32 , but also replaces the label - set @xmath24 with a new label - set @xmath103 . if we also apply this operation on the maximal - af @xmath39 , then the new @xmath39 remains a maximal - af for the new @xmath31 and @xmath32 . * case 2 . * all labels in @xmath92 are siblings in @xmath31 . let @xmath104 be the common parent of @xmath92 in @xmath31 . and let @xmath105 be the set that contains all vertices whose parent is @xmath104 in @xmath31 , except the labels in @xmath92 . set @xmath106 could not be an empty set , otherwise , the labels in @xmath92 would consist an mss in @xmath31 , which satisfies the condition of case 1 . there are three situations for @xmath98 and @xmath99 in @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath39 . thus , removing the edge incident to @xmath98 in @xmath31 and @xmath32 keeps @xmath39 still a maximal - af for @xmath31 and @xmath32 . situation 2 . @xmath99 is a single - vertex tree in @xmath39 . thus , removing the edge incident to @xmath99 in @xmath31 and @xmath32 keeps @xmath39 still a maximal - af for @xmath31 and @xmath32 . situation 3 . neither @xmath98 nor @xmath99 is a single - vertex tree in @xmath39 . because @xmath98 and @xmath99 are siblings in @xmath32 , so @xmath98 and @xmath99 are siblings in @xmath39 . moreover , for this situation , we have the following lemma . [ allsiblings - rooted ] let @xmath31 and @xmath32 be two rooted general @xmath24-forests , and let @xmath92 be an mss of @xmath32 that all labels in @xmath92 are siblings in @xmath31 . for any maximal - af @xmath28 for @xmath31 and @xmath32 , if there are two labels in @xmath92 that are siblings in @xmath28 , then all labels in @xmath92 consist an mss in @xmath28 . suppose that labels @xmath98 and @xmath99 belong to @xmath92 and @xmath98 and @xmath99 are siblings in @xmath28 . at first , we show that all labels in @xmath92 are siblings in @xmath28 . there are two cases based on the cardinality of @xmath92 .    case ( i ) : @xmath107 . then , @xmath108 . obviously , this case holds true . case ( ii ) : @xmath109 . assume that label @xmath110 . if @xmath98 and @xmath111 are in different connected components in @xmath28 , then because @xmath98 and @xmath111 are siblings in @xmath32 , so at least one of @xmath112 and @xmath113 can not be in @xmath28 , where @xmath112 and @xmath113 are the edges that incident to @xmath98 and @xmath111 in @xmath32 , respectively . therefore , at least one of @xmath98 and @xmath111 is a single - vertex in @xmath28 . but @xmath98 and @xmath99 are siblings in @xmath28 , so @xmath98 is not a single - vertex tree in @xmath28 , thus , @xmath111 is a single - vertex tree in @xmath28 . by attaching the single - vertex tree @xmath111 to the common parent of @xmath98 and @xmath99 in @xmath28 , we could get an agreement forest for @xmath31 and @xmath32 that consists of fewer trees , which contracts the fact that @xmath28 is a maximal - af for @xmath31 and @xmath32 . thus , @xmath98 and @xmath111 must be in the same connected component in @xmath28 . then , because @xmath98 and @xmath111 are siblings in @xmath32 , so @xmath98 and @xmath111 are also siblings in @xmath28 . therefore , all labels in @xmath92 are siblings in @xmath28 . now we show that the labels in @xmath92 consist an mss in @xmath28 . since @xmath28 is a subforest of @xmath32 , the parent of @xmath92 in @xmath32 corresponds to the the parent of @xmath92 in @xmath28 . and because the parent of @xmath92 in @xmath32 has @xmath94 children , so the parent of @xmath92 in @xmath28 has at most @xmath94 children . therefore , the labels in @xmath92 consist an mss in @xmath28 . let @xmath114 be the set that contains all edges @xmath115 $ ] , @xmath116 . by lemma  [ allsiblings - rooted ] , all edges in @xmath114 could not be in @xmath39 . therefore , in situation 3 , removing the edges in @xmath114 from @xmath31 keeps @xmath39 still a maximal - af for @xmath31 and @xmath32 . summarizing above analysis , we apply the following step . one of these following three branches keeps @xmath39 a maximal - af for the new @xmath31 and @xmath32 . * step 2 . * ( branch-1 ) remove the edge incident to @xmath98 in both @xmath31 and @xmath32 ; + ( branch-2 ) remove the edge incident to @xmath99 in both @xmath31 and @xmath32 ; + ( branch-3 ) remove the edges in @xmath114 . * some labels in @xmath92 are not siblings in @xmath31 . , we assume that @xmath98 and @xmath99 are not siblings in @xmath31 . let @xmath117 be the common parent of @xmath98 and @xmath99 in @xmath32 . * subcase 3.1 . * @xmath98 and @xmath99 are not in the same connected component in @xmath31 .    because @xmath98 and @xmath99 are not in the same connected component in @xmath31 , so @xmath98 and @xmath99 can not be in the same connected component in @xmath39 . thus , at least one of edges @xmath118 $ ] and @xmath119 $ ] in @xmath32 could not be in @xmath39 . therefore , at least one of @xmath98 and @xmath99 is a single - vertex tree . * step 3.1 . * ( branch-1 ) remove the edge incident to @xmath98 in both @xmath31 and @xmath32 ; + ( branch-2 ) remove the edge incident to @xmath99 in both @xmath31 and @xmath32 . one of the two branches must keep @xmath39 still a maximal - af for the new @xmath24-forests @xmath31 and @xmath32 . * subcase 3.2 . * @xmath98 and @xmath99 are in the same connected component in @xmath31 . let @xmath120 be the path in @xmath31 that connects @xmath98 and @xmath99 , in which @xmath121 is the least common ancestor of @xmath98 and @xmath99 , @xmath122 . and let @xmath123 be the edge set that contains all edges in @xmath31 that incident to @xmath124 , @xmath125 , but not on the path @xmath126 . there are also three situations for @xmath98 and @xmath99 in @xmath39 , which are the same as that for case 2 . the first two situations that either @xmath98 or @xmath99 is a single - vertex tree in @xmath39 again cause removing the edge incident to @xmath98 or @xmath99 in @xmath31 and @xmath32 .    for situation 3 : neither @xmath98 nor @xmath99 is a single - vertex tree in @xmath39 , we have to analyze detailly here . in this situation , again @xmath98 and @xmath99 are siblings in @xmath39 . moreover , all edges in @xmath123 could not be in @xmath39 . note that because the subtrees in an @xmath24-forest preserve the ancestor - descendant relation , the edges incident to @xmath121 , but not on @xmath126 could not be removed in this subcase ( there may be more than one such edge ) . * step 3.2.*(branch-1 ) remove the edge incident to @xmath98 in both @xmath31 and @xmath32 ; + ( branch-2 ) remove the edge incident to @xmath99 in both @xmath31 and @xmath32 ; + ( branch-3 ) remove the edges in @xmath123 . one of these three branches keeps @xmath39 a maximal - af for the new @xmath31 and @xmath32 .    for two given rooted general @xmath24-forests @xmath31 and @xmath32 , if we iteratively apply the above process , branching accordingly based on the cases , then the process will end up with a pair @xmath127 in which @xmath32 contains no mss . when this occurs , the process applies the following step :    * final step . * if @xmath32 contains no mss , then construct the ( unique ) maximal - af @xmath39 for @xmath31 and @xmath32 , and convert @xmath39 into an agreement forest for the original @xmath31 and @xmath32 . when @xmath32 contains no mss , by lemma  [ simpleroot ] , we can construct the unique maximal - af @xmath39 for @xmath31 and @xmath32 in linear time . the forest @xmath39 may not be a subforest of the original @xmath31 and @xmath32 because step 1 shrinks labels . for this , we should `` expand '' the shrunk labels , in a straightforward way . note that this expanding process may be applied iteratively , but in linear time .    summarizing the above discussion , we conclude with the following lemma . [ rootlem ] let @xmath31 and @xmath32 be two rooted general @xmath24-forests . if we apply steps 1 - 3.2 iteratively until @xmath32 contains no mss , then for every maximal - af @xmath39 for the original @xmath31 and @xmath32 , at least one of the branches in the process produces the maximal - af @xmath39 in its final step . fix a maximal - af @xmath39 for the original @xmath31 and @xmath32 . by the above analysis , for each of the cases , at least one of the branches in the corresponding step keeps @xmath39 a maximal - af for @xmath31 and @xmath32 . moreover , when @xmath32 contains no mss , the maximal - af for @xmath31 and @xmath32 becomes unique . combining these two facts , we can conclude that at least one of the branches in the process ends up with a pair @xmath31 and @xmath32 whose maximal - af , after the final step , is @xmath39 . since @xmath39 is an arbitrary maximal - af for @xmath31 and @xmath32 , the lemma is proved . now , according to the discussion given above and main - algorithm , we can present the detail parameterized algorithm for the para - rmaf problem , which is presented in figure  [ algrooted - para ] . 4= @xmath128    we consider the correctness and the complexity of the algorithm . to make our discussion more specific , we denote by @xmath129 the original input to the algorithm , and initiate with @xmath130 for @xmath131 . the algorithm is a branch - and - search process , in which step 7 , step 8.1 , and step 8.2 contain branches . the execution of the algorithm can be depicted by a search tree @xmath132 whose leaves correspond to conclusions or solutions generated by the algorithm based on different branches . each internal node of the search tree @xmath132 corresponds to a branch in the search process at step 7 , or step 8.1 , or step 8.2 based on an instance of the problem . the root of the tree @xmath132 is on the instance that is the original input to the algorithm . we will call a path from the root to a leaf in the search tree @xmath132 a _ computational path _ in the process , which corresponds to a particular sequence of executions in the algorithm that leads to a conclusion or solution . the algorithm returns an agreement forest for the original input if and only if there is a computational path that outputs the forest . we first study the correctness of the algorithm . according to step 1 , the algorithm is correct when @xmath133 . therefore , we will assume that @xmath134 and that the algorithm is correct when the input contains no more than @xmath135 @xmath24-forests . if ord@xmath136 , then an maf @xmath33 for @xmath137 , which is a subforest of @xmath31 , must have ord@xmath138 . thus , the instance @xmath139 is a ` no ' . step 2 is correct . by lemma  [ reduction rule 1 ] , step 3 is also correct . if @xmath32 has no mss , then by lemma  [ simpleroot ] , the unique maximal - af @xmath33 for @xmath31 and @xmath32 can be constructed in linear time . since @xmath33 is the unique maximal - af for @xmath31 and @xmath32 , by lemma  [ maximal - maf ] , the instances @xmath139 and @xmath140 have the same set of mafs . by our induction , the algorithm works correctly on @xmath140 . thus , step 4 is correct . if the instance @xmath139 reaches step 5 , then the @xmath24-forest @xmath32 has an mss @xmath92 , and none of labels in @xmath92 is a single - vertex tree in @xmath31 . steps 6 - 8 are applied on the @xmath24-forests @xmath31 and @xmath32 recursively ( during the recursion , step 3 may also be applied ) . these steps remove edges in @xmath31 and @xmath32 thus reduce the sizes of the forests ( step 6 does not remove edges , but it reduces the size of @xmath31 and @xmath32 without changing their essential structures ) . thus , the steps keep the situation , recursively , that @xmath31 and @xmath32 are subforests of @xmath141 and @xmath142 , respectively . this means that during the process of these steps , every agreement forest for @xmath40 remains an agreement forest for the original @xmath143 . these steps continue until the condition in either step 2 or step 4 is met . by the discussion above , step 2 or step 4 then will return a correct solution to the instance @xmath139 , which is either an answer ` no ' , or an agreement forest @xmath39 for @xmath40 with ord@xmath43 , which is also a solution to the original input @xmath129 . thus , no computational path in the algorithm can output an @xmath24-forest that is not a solution to the original input @xmath129 . in particular , if the original input @xmath129 is a ` no ' for the para - rmaf problem , then the algorithm alg - para - rmaf must return an answer ` no ' . on the other hand , suppose that @xmath129 is a ` yes ' and @xmath143 has an maf @xmath39 with ord@xmath43 . let @xmath33 be the maximal - af for @xmath141 and @xmath142 that has @xmath39 as a subforest ( note ord@xmath144 ) . by lemma  [ rootlem ] , there is a computational path that starts with @xmath145 and @xmath146 , and applies steps 6 - 8 recursively until @xmath31 and @xmath32 satisfy the condition of step 4 . step 4 then constructs the maximal - af @xmath33 for @xmath141 and @xmath142 . by lemma [ maximal - maf ] and our induction , the recursive call in step 4 will return an agreement forest @xmath28 for @xmath143 with ord@xmath83 . therefore , the algorithm also works correctly in this case . this completes the proof of the correctness of the algorithm . now we consider the complexity of the algorithm . because of step 7 , step 8.1 , and step 8.2 , each branch in the search tree @xmath132 can make at most three ways . moreover , by examining steps 7 , 8.1 , and 8.2 , it is easy to verify that between two consecutive branches in a computational path , the value ord@xmath147 is increased by at least @xmath4 . since the algorithm will stop at step 2 when ord@xmath136 , each computational path in the search tree @xmath132 can go through at most @xmath12 branches . as a consequence , the number of leaves in the search tree @xmath132 is bounded by @xmath148 . it takes time @xmath149 to judge whether two labels are in the same connected component , where @xmath14 is the size of label - set @xmath24 . thus , it is easy to verify that between two consecutive branches , the computational path takes time @xmath150 , where @xmath151 is the number of @xmath24-forests in the original input instance . summarizing all these together , we conclude that the algorithm alg - para - rmaf@xmath139 has its running time bounded by @xmath0 . the para - rmaf problem can be solved in time @xmath0 , where @xmath14 is the size of label - set @xmath24 and @xmath151 is the number of @xmath24-forests in the input instance . the discussion for the para - umaf problem on the instance @xmath152 is similar to that for the para - rmaf problem . however , since unrooted @xmath24-forests preserve no ancestor - descendant relation , there is a little difference . two leaves in an unrooted @xmath24-forest are _ siblings _ if either they are connected by an edge or they have a common neighbor . a _ sibling set _ is a set of leaves that are siblings . a sibling set @xmath92 is _ maximal _ mss ) if either @xmath92 is the label set of a single - edge tree or the common neighbor of @xmath92 has degree at most @xmath95 .    an unrooted @xmath24-forest with no mss has an even simpler structure : all its connected components are single - vertex trees . thus , we have the following lemma , which is similar to lemma  [ simpleroot ] .    [ simpleunroot ] let @xmath31 and @xmath32 be two unrooted general @xmath24-forests . if @xmath32 has no mss , then @xmath31 and @xmath32 have the unique maximal - af which can be constructed in linear time . thus , in the following discussion , we will assume that @xmath32 has an mss @xmath92 that none of labels in @xmath92 is a single - vertex tree in @xmath31 . and , we will assume that labels @xmath98 and @xmath99 belong to @xmath92 . in the following , we consider all possible cases for labels of @xmath92 in @xmath31 . let @xmath39 be a fixed maximal - af for @xmath31 and @xmath32 . * all labels in @xmath92 consist an mss in @xmath31 . in this case , we also treat @xmath92 as an un - decomposable structure .    * step 1 . * group all labels in @xmath92 ( and their common neighbor if @xmath92 is not the label set of a single - edge tree ) into an un - decomposable structure , and mark the unit with the same label in @xmath31 and @xmath32 .    to implement step 1 , if @xmath92 is the label set of a single - edge tree , then combine the labels into a single vertex that labeled by @xmath100 ; otherwise , simply remove all labels in @xmath92 and label the common neighbor of @xmath92 with @xmath100 . this step not only changes the structures of @xmath31 and @xmath32 , but also replaces the label - set @xmath24 with a new label - set @xmath103 . if we also apply this operation in the maximal - af @xmath39 , then the new @xmath39 remains a maximal - af for the new @xmath31 and @xmath32 . * case 2 . * all labels in @xmath92 are siblings in @xmath31 .    obviously , the common neighbor @xmath93 of @xmath92 in @xmath31 has degree not less than @xmath153 . let @xmath154 be the vertex set that contains all vertices that are neighbors of @xmath93 , except the labels in @xmath92 . obviously , @xmath155 . let @xmath156 be the edge that between @xmath157 and @xmath93 in @xmath31 , and let @xmath158 be the edge that between @xmath159 and @xmath93 in @xmath31 . there are three situations for @xmath98 and @xmath99 in @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath39 . thus , removing the edge incident to @xmath98 in @xmath31 and @xmath32 keeps @xmath39 still a maximal - af for @xmath31 and @xmath32 . situation 2 . @xmath99 is a single - vertex tree in @xmath39 . thus , removing the edge incident to @xmath99 in @xmath31 and @xmath32 keeps @xmath39 still a maximal - af for @xmath31 and @xmath32 . situation 3 . neither @xmath98 nor @xmath99 is a single - vertex tree in @xmath39 . because @xmath98 and @xmath99 are siblings in @xmath32 , so @xmath98 and @xmath99 are siblings in @xmath39 . moreover , in this situation , we have the following lemma . [ allsiblings - unrooted ] let @xmath31 and @xmath32 be two unrooted general @xmath24-forests , and let @xmath92 be an mss of @xmath32 that all labels in @xmath92 are siblings in @xmath31 . for any maximal - af @xmath28 for @xmath31 and @xmath32 , if there are two labels in @xmath92 that are siblings in @xmath28 , then all labels in @xmath92 consist an mss in @xmath28 . suppose that labels @xmath98 and @xmath99 belong to @xmath92 and @xmath98 and @xmath99 are siblings in @xmath28 . at first , we show that all labels in @xmath92 are siblings in @xmath28 .    case ( i ) : @xmath107 . then , @xmath108 . obviously , this case holds true . case ( ii ) : @xmath109 . suppose that label @xmath110 . if @xmath98 and @xmath111 are in different connected components in @xmath28 , then because @xmath98 and @xmath111 are siblings in @xmath32 , so at least one of @xmath112 and @xmath113 can not be in @xmath28 , where @xmath112 and @xmath113 are the edges that incident to @xmath98 and @xmath111 in @xmath32 , respectively . therefore , at least one of @xmath98 and @xmath111 is a single - vertex tree in @xmath28 . since @xmath98 and @xmath99 are in the same connected component in @xmath28 , @xmath98 is not a single - vertex tree in @xmath28 , thus , @xmath111 is a single - vertex tree in @xmath28 . by attaching the single - vertex tree @xmath111 to the common neighbor of @xmath98 and @xmath99 in @xmath28 ( if @xmath98 and @xmath99 are two labels of a single - edge tree in @xmath28 , then subdividing the edge between @xmath98 and @xmath99 by a new vertex and attaching @xmath111 to the new vertex ) , we could get an agreement forest for @xmath31 and @xmath32 that consists of fewer trees , which contracts the fact that @xmath28 is a maximal - af for @xmath31 and @xmath32 . thus , @xmath98 and @xmath111 must be in the same connected component in @xmath28 . then , because @xmath98 and @xmath111 are siblings in @xmath32 , so @xmath98 and @xmath111 are siblings in @xmath28 . therefore , all labels in @xmath92 are siblings in @xmath28 . now we show that the labels in @xmath92 consist an mss . the common neighbor of @xmath92 in @xmath32 corresponds to the common neighbor of @xmath92 in @xmath28 . because the common neighbor of @xmath92 in @xmath32 has degree at most @xmath95 , so the common neighbor of @xmath92 in @xmath28 also has degree at most @xmath95 . thus , the labels in @xmath92 consist an mss in @xmath28 .    by lemma  [ allsiblings - unrooted ] , in situation 3 , all labels in @xmath92 are siblings in @xmath39 . if the common neighbor of @xmath92 in @xmath32 has degree @xmath94 , then the common neighbor of @xmath92 in @xmath39 has degree @xmath94 , edges @xmath156 and @xmath158 in @xmath31 can not be in @xmath39 , both of them should be removed . if the common neighbor of @xmath92 in @xmath32 has degree @xmath95 , then the common neighbor of @xmath92 in @xmath39 has degree at most @xmath95 . but the common neighbor of @xmath92 in @xmath31 has degree at least @xmath153 , thus , at least one of @xmath156 and @xmath158 in @xmath31 could not be in @xmath39 . however , the subtrees in unrooted @xmath24-forests do not preserve any ancestor - descendant relation , we can not decide which one of @xmath156 and @xmath158 in @xmath31 should be removed . therefore , we can branch by removing @xmath156 or @xmath158 .    in situation 3 , whether or not the common neighbor of @xmath92 in @xmath32 has degree @xmath94 , branching by removing @xmath156 or @xmath158 always is right . summarizing the above analysis , we can apply the following step . one of these following branches keeps @xmath39 a maximal - af for the new @xmath31 and @xmath32 . * step 2 . * ( branch-1 ) remove the edge incident to @xmath98 in both @xmath31 and @xmath32 ; + ( branch-2 ) remove the edge incident to @xmath99 in both @xmath31 and @xmath32 ; + ( branch-3 ) remove the edge @xmath156 in @xmath31 ; + ( branch-4 ) remove the edge @xmath158 in @xmath31 . * some labels in @xmath24 are not siblings in @xmath31 . w.l.o.g . , we assume @xmath98 and @xmath99 are not siblings in @xmath31 . * subcase 3.1 . * @xmath98 and @xmath99 are not in the same connected component in @xmath31 . again that at least one of @xmath98 and @xmath99 must be a single - vertex tree in @xmath39 . we can apply the following step . * step 3.1 . * ( branch-1 ) remove the edge incident to @xmath98 in both @xmath31 and @xmath32 ; + ( branch-2 ) remove the edge incident to @xmath99 in both @xmath31 and @xmath32 . * subcase 3.2 . * @xmath98 and @xmath99 are in the same connected component in @xmath31 . let @xmath160 be the unique path that connects @xmath98 an @xmath99 in @xmath31 , @xmath155 . there are also three situations for @xmath98 and @xmath99 in @xmath39 , which are the same as that for case 2 . the first two situations that either @xmath98 or @xmath99 is a single - vertex tree in @xmath39 again cause removing the edge incident to @xmath98 or @xmath99 in both @xmath31 and @xmath32 .    for situation 3 : neither @xmath98 nor @xmath99 is a single - vertex tree in @xmath39 , we have to analyze in detail . because @xmath98 and @xmath99 are siblings in @xmath32 , so @xmath98 and @xmath99 are siblings in @xmath39 .    if @xmath98 and @xmath99 are connected by an edge in @xmath39 , then all internal vertices in @xmath126 should be removed by the forced contraction . that is , all the edges that not on the path @xmath126 but incident to a internal vertex in @xmath126 can not be in @xmath39 , thus , all these edges should be removed . if @xmath98 and @xmath99 have a common neighbor in @xmath39 , then only one internal vertex in @xmath126 can be kept , and all the other internal vertices in @xmath126 should be removed by the forced contraction . since the subtrees in unrooted @xmath24-forests do not preserve any ancestor - descendant relation , we do not know which one of the internal vertices in @xmath126 should be kept . on the other side , we know that at least one of @xmath161 and @xmath162 should be removed by the forced contraction . that is , either the edges that incident to @xmath161 but not on @xmath126 or the edges that incident to @xmath162 but not on @xmath126 should be removed . therefore , we can branch by removing the edges that incident to @xmath161 but not on @xmath126 or the edges that incident to @xmath162 but not on @xmath126 . in this situation , whether or not @xmath98 and @xmath99 are connected by an edge in @xmath39 , this branching way is always right .    summarizing the above analysis , we can apply the following step . one of these branches keeps @xmath39 a maximal - af for the new @xmath31 and @xmath32 . * step 3.2 . * ( branch-1 ) remove the edge incident to @xmath98 in both @xmath31 and @xmath32 ; + ( branch-2 ) remove the edge incident to @xmath99 in both @xmath31 and @xmath32 ; + ( branch-3 ) the edges that incident to @xmath161 but not on @xmath126 in @xmath31 ; + ( branch-4 ) the edges that incident to @xmath162 but not on @xmath126 in @xmath31 .    for two given unrooted general @xmath24-forests @xmath31 and @xmath32 , if we iteratively apply the above process , branching accordingly based on the cases , then the process will end up with a pair @xmath127 in which @xmath32 contains no mss . when this occurs , we again apply the following step :    * final step . * if @xmath32 contains no mss , then construct the ( unique ) maximal - af @xmath39 for @xmath31 and @xmath32 , and convert @xmath39 into an agreement forest for the original @xmath31 and @xmath32 . the above analysis finally gives the following conclusion , whose proof is exactly the same as that of lemma  [ rootlem ] in subsection 4.1 . [ unrootlem ] let @xmath31 and @xmath32 be two unrooted general @xmath24-forests . if we apply steps 1 - 3.2 iteratively until @xmath32 contains no mss , then for every maximal - af @xmath39 for the original @xmath31 and @xmath32 , at least one of the branches in the process produces the maximal - af @xmath39 in its final step . now we are ready for giving the detail parameterized algorithm for the para - umaf problem , which is presented in figure  [ algunrt - para ] . 4= @xmath128    similar to the one for para - rmaf , the algorithm for the para - umaf problem is a combination of the analysis given in section 4.2 and the main - algorithm . comparing the analysis for para - rmaf given in section 4.1 and the analysis for para - umaf given in section 4.2 , we can see that they only differ for case 2 and case 3.2 : case 2 and case 3.2 in section 4.1 branches into three ways while case 2 and case 3.2 in section 4.2 branch into four ways . therefore , the two algorithms only need to differ in step 7 and step 8.2 .    the proof of the correctness for the algorithm alg - para - umaf proceeds in exactly the same way , based on the analysis in section 4.2 , as that for the algorithm alg - para - rmaf , which was based on the analysis in section 4.1 . for the computational complexity , since step 7 and step 8.2 of the algorithm alg - para - umaf branches into four ways , the search tree @xmath132 for the algorithm alg - para - umaf has four - way branches . therefore , we can conclude that the number of leaves in the search tree @xmath132 is bounded by @xmath163 . all other analysis is the same as that for the algorithm alg - para - rmaf . as a result , we conclude that the algorithm alg - para - umaf runs in time @xmath2 . the para - umaf problem can be solved in time @xmath2 , where @xmath14 is size of the label - set @xmath24 and @xmath151 is the number of @xmath24-forests in the input instance . in this section , we will present the approximation algorithms for app - rmaf and app - umaf first of all , we give several related definitions , which apply for both app - rmaf and app - umaf . let @xmath28 be an @xmath24-forest ( either rooted or unrooted ) , and let @xmath49 be a subset of edges in @xmath28 . because of forced contraction , we have that ord@xmath164 . an edge - subset @xmath47 of @xmath28 is an _ essential edge - set _ ee - set ) if ord@xmath165 . let @xmath49 be an arbitrary edge - subset of @xmath28 . define the _ essential subset _ of @xmath49 , denoted by @xmath166 , to be a subset of @xmath49 that is an ee - set of @xmath28 such that @xmath167 . obviously , if @xmath49 itself is an ee - set , then @xmath168 . note that for an edge - subset @xmath49 of @xmath28 which is not an ee - set , there maybe more than one essential subset of @xmath49 . our approximation algorithm for app - maf ( app - rmaf or app - umaf ) consist of a sequence of  meta - steps " . an _ edge - removal meta - step _ ( or simply meta - step ) of an algorithm is a collection of consecutive computational steps in the algorithm that on an instance @xmath169 of app - maf removes certain edges in the forests in @xmath169 ( and applies the forced contraction ) . our approximation algorithms for app - maf ( app - rmaf or app - umaf ) have the following general framework .    4= @xmath128    the performance of the approximation algorithm alg - app - maf heavily depends on the quality of the meta - steps we employ in step 3 of the algorithm . thus , we introduce the following concept that measures the quality of a meta - step , where @xmath170 is an arbitrary real number . * definition - r . * let @xmath171 be an instance of app - maf ( app - rmaf or app - umaf ) , and let @xmath172 be an edge - removal meta - step that removes a set @xmath173 of edges in the forests in @xmath174 . meta - step @xmath172 keeps a _ @xmath35 if the set @xmath173 contains a subset @xmath175 of edges in @xmath31 such that no edge in @xmath176 is in any agreement forest for @xmath177 , and for each agreement forest @xmath28 for @xmath174 , there always exists an ee - set @xmath178 of @xmath31 , @xmath179 , @xmath180 , and no edge in @xmath178 is in @xmath28 .    * remark 1 . * @xmath175 contains all edges in @xmath173 that in @xmath31 . @xmath175 may not be an ee - set of @xmath31 , but @xmath178 should be an ee - set of @xmath31 . * remark 2 . * by definition , if an edge - removal meta - step removes only edges that not in any agreement forest for the instance , then this meta - step keeps ratio @xmath35 for any @xmath170 . define an edge - removal meta - step is _ safe _ if it keeps ratio @xmath35 for any @xmath170 . define the order of an maf for the instance @xmath181 of app - maf ( app - rmaf or app - umaf ) to be the _ optimal order _ for the instance , denoted @xmath182 .    [ equation ] let @xmath171 be an instance of app - maf ( app - rmaf or app - umaf ) , and let @xmath172 be an edge - removal meta - step on @xmath174 producing instance @xmath183 . if @xmath172 keeps ratio @xmath35 , then @xmath184 . let @xmath28 be a fixed maf for @xmath171 . according to definition - r , there exists an edge - set @xmath185 that no edge in @xmath186 is in any agreement forest for @xmath177 . thus , instances @xmath183 and @xmath177 have the same collection of solutions . because @xmath187 , so @xmath183 and @xmath188 also have the same collection of solutions . @xmath189 is the same as the optimal order for @xmath188 .    since @xmath28 is an agreement forest for @xmath181 , in order to construct an agreement forest for @xmath188 by removing edges from @xmath28 , we just need removing the edges from @xmath28 that are not in @xmath190 to make the new @xmath28 be a subforest of @xmath190 . here , we denote by @xmath191 the subset of @xmath192 in which the edges are in @xmath28 , and denote by @xmath193 the subset of @xmath192 in which the edges are not in @xmath28 . obviously , @xmath194 is an agreement forest for @xmath188 . in the following , we analyze the order of @xmath194 detailly .    according to definition - r , we have that for @xmath28 , there exists an ee - set @xmath178 of @xmath31 , @xmath179 , @xmath195 , and no edge in @xmath178 is in @xmath28 . note that we can easily get an essential subset of @xmath185 that contains @xmath178 , thus , we can assume that @xmath196 . therefore , we have that @xmath197 and @xmath198 . because @xmath199 , so @xmath200 . therefore , @xmath201 .    since @xmath202 and @xmath203 , we have @xmath184 .    [ ratio ] let @xmath204 be an instance of app - maf ( app - rmaf or app - umaf ) , and let @xmath57 be an arbitrary real number . if each meta - step in step 3 of algorithm alg - app - maf keeps ratio not greater than @xmath205 and that the algorithm alg - app - maf halts on the instance @xmath174 , then the output of alg - app - maf is an agreement forest for @xmath174 whose order is at most @xmath205 times the optimal value for @xmath174 . suppose the sequence of meta - steps in the algorithm is @xmath206 , where for each @xmath38 , @xmath207 , meta - step @xmath208 removes an edge - set @xmath209 from the instance @xmath210 produces an instance @xmath211 . by the judgement condition in step 3 , we can make sure that @xmath212 is a subforest of @xmath213 . thus , @xmath212 is an maf for @xmath214 , ord@xmath215 .    because each meta - step @xmath208 in @xmath92 , @xmath207 , removes certain edges from forests in @xmath216 , so every agreement forest for @xmath217 is also an agreement forest for @xmath216 . therefore , the forest @xmath212 returned by step 4 is also an agreement forest for the original input instance @xmath218 .    for each meta - step @xmath219 , @xmath220 , by lemma  [ equation ] , there is @xmath221 . note that , @xmath222 . therefore , for each meta - step @xmath219 , we have the inequality @xmath223 .    then , we add up these inequalities for all meta - steps in @xmath92 , and get @xmath224 , where @xmath225 . from this , we can easily get @xmath226 , which proves the theorem . we develop meta - steps for app - rmaf in this subsection . thus , all x - forests considered in this subsection are rooted . as given in the algorithm alg - app - maf ( see figure  [ alg - app ] ) , for each execution of step 3 in the algorithm , we are given a fixed integer @xmath227 and an instance @xmath204 of app - rmaf , which is a collection of rooted x - forests , with @xmath31 is a subforest of @xmath228 , and , as long as @xmath229 , meta - steps are applied on @xmath31 and @xmath37 . in the following , we show how these meta - steps are constructed based on different structures of @xmath31 and @xmath37 . let @xmath39 be a fixed maf for @xmath204 , and let @xmath33 be a maximal - af for @xmath31 and @xmath37 that contains @xmath39 . since @xmath39 is a subforest of @xmath33 , if an edge @xmath45 of @xmath31 is not in @xmath33 , then @xmath45 is also not in @xmath39 . an execution of reduction rule 1 on @xmath31 and @xmath37 can be regarded as an edge - removal meta - step . by lemma  [ reduction rule 1 ] and remark 2 of definition - r , we can easily get the following lemma . [ reduction rule 1 safe ] reduction rule 1 is safe . by lemma  [ simpleroot ] , if @xmath37 has no mss , then @xmath31 and @xmath37 have an unique maf @xmath28 , which either is isomorphic to @xmath37 or consists of a collection of single - vertex trees . and by a series of executions of reduction rule 1 on @xmath31 and @xmath37 , there is @xmath230 , which satisfies the judgement condition of step 3 in algorithm alg - app - maf . therefore , in the following discussion , we will assume that @xmath37 has an mss @xmath92 . note that the instances in our discussion are strongly reducible , so none of labels in @xmath92 is a single - vertex tree in @xmath31 . , we will assume that labels @xmath98 and @xmath99 belong to @xmath92 . * case 1 . * all labels in @xmath92 consist an mss in @xmath31 .    * meta - step 1 . * group all labels in @xmath92 and their parent into an un - decomposable structure , and mark the unit with the same label in @xmath31 and @xmath37 . the implementation of meta - step 1 is the same as that of step 1 for para - rmaf . this meta - step can be regarded as a special meta - step that does not remove any edges in the instance . instead , it groups certain structures in some x - forests into un - decomposable units . using the notation in definition - r , @xmath231 . and , we have    [ meta - step 1 ] meta - step 1 is safe .    this meta - step may lead a subtle problem in the following discussion . because meta - step 1 changes the label - sets of @xmath31 and @xmath37 , so the label - sets of @xmath31 and @xmath37 are different from the label - sets of the other forests in the instance . thus , there is ambiguity of the sentence  there exists an maf for the new instance " . note that this operation is just simply for notational convenience . we still can construct an maf for the new instance if we  expand " these combined leaves in @xmath31 and @xmath37 . therefore , in the following discussion , we can simply say that there exists an maf @xmath39 for the new instance , although the label - sets of the forests in the instance are different . note again that in the maf @xmath39 for the instance , there maybe no such an un - decomposable structure , because some labels in @xmath92 maybe in different connected components in @xmath39 . however , the maximal - af @xmath33 for @xmath31 and @xmath37 that contains @xmath39 must have such an un - decomposable structure . therefore , in the following discussion , we can assume that the maximal - af @xmath33 for @xmath31 and @xmath37 that contains @xmath39 has been applied all possible  group " operations so that @xmath31 , @xmath37 , and @xmath33 have the same new label - set . similarly , even though @xmath39 and @xmath33 have different label - sets , we can also simply say that @xmath33 contains @xmath39 , because we just need to expand these combined leaves in @xmath33 . let @xmath232 be the forest that getting by expanding these combined leaves in @xmath33 . obviously , @xmath232 and @xmath39 have the same label - set , and @xmath39 is a subforest of @xmath232 . therefore , for any edge @xmath45 that in @xmath31 or @xmath37 , if @xmath45 is not in @xmath33 , then @xmath45 is not in @xmath232 . thus , @xmath45 is also not in @xmath39 .    * case 2 . * all labels in @xmath92 are siblings in @xmath31 . let @xmath104 be the common parent of @xmath92 in @xmath31 . in this case , there must exist a vertex @xmath30 in @xmath31 which is a child of @xmath104 but not belongs to @xmath92 ( @xmath30 maybe a non - leaf ) . let @xmath45 be the edge that between @xmath104 and @xmath30 in @xmath31 .    * meta - step 2 . * remove the edges that incident to @xmath98 and @xmath99 in @xmath31 and @xmath37 , and remove edge @xmath45 . [ meta - step 2 ] meta - step 2 keeps ratio @xmath1 . let @xmath112 and @xmath233 be the edges that incident to @xmath98 and @xmath99 in @xmath31 , respectively , and let @xmath234 and @xmath235 be the edges that incident to @xmath98 and @xmath99 in @xmath37 , respectively . using the notations in definition - r , we have @xmath236 and @xmath237 .    in the @xmath24-forest @xmath238 , labels @xmath98 and @xmath99 are single - vertex trees . thus , every maximal - af for @xmath238 and @xmath37 have @xmath98 and @xmath99 as single - vertex trees , no edges in @xmath239 can be in any maximal - af for @xmath238 and @xmath37 . because every agreement forest for @xmath177 must be a subforest of a maximal - af for @xmath238 and @xmath37 , so no edges in @xmath239 can be in any agreement forest for @xmath177 .    there are three situations for @xmath98 and @xmath99 in the maximal - af @xmath33 for @xmath31 and @xmath37 which contains @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath33 . thus , @xmath112 is not in @xmath33 , and @xmath112 is also not in @xmath39 . therefore , we can pick @xmath240 as the set @xmath241 , which satisfies : @xmath242 , @xmath243 . note that @xmath244 is not greater than @xmath245 . moreover , since @xmath31 is irreducible and @xmath98 is not a single - vertex tree in @xmath31 , the set @xmath241 is an ee - set of @xmath31 . therefore , for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath1 . situation 2 . @xmath99 is a single - vertex tree in @xmath33 . thus , @xmath233 is not in @xmath33 , and @xmath233 is also not in @xmath39 . then similarly we let @xmath246 and can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath1 . situation 3 . @xmath98 and @xmath99 are siblings in @xmath33 . then , by lemma  [ allsiblings - rooted ] , the labels of @xmath92 consist an mss in @xmath33 . in order to make the labels of @xmath92 consist an mss in @xmath31 , edge @xmath45 should be removed . that is , in this situation , edge @xmath45 is not in @xmath33 , and @xmath45 is also not in @xmath39 . thus , in this situation , we let @xmath247 , and verify easily that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath1 .    this verifies that the set @xmath175 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath1 . thus , meta - step 2 keeps ratio @xmath1 . * some labels in @xmath92 are not siblings in @xmath31 . w.l.o.g . , we assume @xmath98 and @xmath99 are not siblings in @xmath31 . * subcase 3.1 . * @xmath98 and @xmath99 are in different connected components in @xmath31 .    * meta - step 3.1 . * remove the edges incident to @xmath98 and @xmath99 in both @xmath31 and @xmath37 . [ meta - step 3.1 ] meta - step 3.1 keeps ratio @xmath23 . let @xmath112 and @xmath233 be the edges that incident to @xmath98 and @xmath99 in @xmath31 , respectively , and let @xmath234 and @xmath235 be the edges that incident to @xmath98 and @xmath99 in @xmath37 , respectively . using the notations in definition - r , we have @xmath248 and @xmath249 .    in the @xmath24-forest @xmath238 , labels @xmath98 and @xmath99 are single - vertex trees . thus , every maximal - af for @xmath238 and @xmath37 have @xmath98 and @xmath99 as single - vertex trees , no edges in @xmath239 can be in any maximal - af for @xmath238 and @xmath37 . because every agreement forest for @xmath177 must be a subforest of a maximal - af for @xmath238 and @xmath37 , so no edges in @xmath239 can be in any agreement forest for @xmath177 . there are two situations for @xmath98 and @xmath99 in the maximal - af @xmath33 for @xmath31 and @xmath37 which contains @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath33 . thus , @xmath112 is not in @xmath33 , and @xmath112 is also not in @xmath39 . therefore , we can pick @xmath240 as the set @xmath241 , which satisfies : @xmath242 , @xmath250 . moreover , since @xmath31 is irreducible and @xmath98 is not a single - vertex tree in @xmath31 , the set @xmath241 is an ee - set of @xmath31 . therefore , for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.1 to keep a ratio @xmath23 . situation 2 . @xmath99 is a single - vertex tree in @xmath33 . thus , @xmath233 is not in @xmath33 , and @xmath233 is also not in @xmath39 . then similarly we let @xmath246 and can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.1 to keep a ratio @xmath23 .    this verifies that the set @xmath175 satisfies all conditions in definition - r to make meta - step 3.1 to keep a ratio @xmath23 . thus , meta - step 3.1 keeps ratio @xmath23 . * subcase 3.2 . * @xmath98 and @xmath99 are in the same connected component in @xmath31 . let @xmath251 be the path that connects @xmath98 and @xmath99 in @xmath31 , and let @xmath121 be the least common ancestor of @xmath98 and @xmath99 in @xmath31 , @xmath252 . let @xmath123 be the edge set that contains all edge that incident to @xmath124 , @xmath116 , @xmath253 , but not on the path @xmath126 , and let @xmath45 be an arbitrary edge of @xmath123 .    * meta - step 3.2 . * remove the edges incident to @xmath98 and @xmath99 in both @xmath31 and @xmath37 , and remove edge @xmath45 . [ meta - step 3.2 ] meta - step 3.2 keeps ratio @xmath1 . let @xmath112 and @xmath233 be the edges that incident to @xmath98 and @xmath99 in @xmath31 , respectively , and let @xmath234 and @xmath235 be the edges that incident to @xmath98 and @xmath99 in @xmath37 , respectively . using the notations in definition - r , we have @xmath236 and @xmath237 .    in the @xmath24-forest @xmath238 , labels @xmath98 and @xmath99 are single - vertex trees . thus , every maximal - af for @xmath238 and @xmath37 have @xmath98 and @xmath99 as single - vertex trees , no edges in @xmath239 can be in any maximal - af for @xmath238 and @xmath37 . because every agreement forest for @xmath177 must be a subforest of a maximal - af for @xmath238 and @xmath37 , so no edges in @xmath239 can be in any agreement forest for @xmath177 .    there are three situations for @xmath98 and @xmath99 in the maximal - af @xmath33 for @xmath31 and @xmath37 which contains @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath33 . thus , @xmath112 is not in @xmath33 , and @xmath112 is also not in @xmath39 . therefore , we can pick @xmath240 as the set @xmath241 , which satisfies : @xmath242 , @xmath243 . moreover , since @xmath31 is irreducible and @xmath98 is not a single - vertex tree in @xmath31 , the set @xmath241 is an ee - set of @xmath31 . therefore , for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath1 . situation 2 . @xmath99 is a single - vertex tree in @xmath33 . thus , @xmath233 is not in @xmath33 , and @xmath233 is also not in @xmath39 . then similarly we let @xmath246 and can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath1 . situation 3 . @xmath98 and @xmath99 are siblings in @xmath33 . in order to make labels @xmath98 and @xmath99 be siblings in @xmath31 , all the edges in @xmath123 should be removed . that is , in this situation , all the edges in @xmath123 are not in @xmath33 , so all the edges in @xmath123 are not in @xmath39 . here , we just remove the edge @xmath45 in @xmath123 , so we let @xmath247 , and verify easily that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath1 .    this verifies that the set @xmath175 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath1 . thus , meta - step 3.2 keeps ratio @xmath1 .    for two rooted x - forests @xmath31 and @xmath37 , if we iteratively apply the above process based on the cases , then the process will end up that @xmath31 is isomorphic to @xmath37 . ( to here , we also  expand " these combined labels in @xmath31 and @xmath37 . )    now , combining the general framework given in figure  [ alg - app ] and the meta - steps given above , we are ready to present our approximation algorithm for app - rmaf . 4= @xmath128    [ alg - app - rmaf - ratio ] algorithm alg - app - rmaf is @xmath1-approximation algorithm for the app - rmaf problem that runs in time @xmath254 , where @xmath14 is the size of the label - set @xmath24 and @xmath151 is the number of forests in the input instance .    by lemmas  [ meta - step 1 ] ,  [ meta - step 2 ] ,  [ meta - step 3.1 ] , and  [ meta - step 3.2 ] , each of the meta - steps keeps a ratio bounded by @xmath1 . by theorem [ ratio ] , if the algorithm alg - app - maf uses these meta - steps in step 3 , and halts on an instance @xmath174 of app - rmaf , then the algorithm alg - app - rmaf produces an agreement forest for the instance @xmath174 whose order is bounded by @xmath1 times the optimal value for @xmath174 . therefore , to show that the algorithm alg - app - rmaf is a @xmath1-approximation algorithm for the app - rmaf problem , it suffices to show that on any instance @xmath174 of app - rmaf , the algorithm alg - app - rmaf runs in time @xmath255 .    by the above discussion , as long as @xmath229 , at least one of the above meta - steps is applicable . let @xmath256 . then , the number of vertices plus the number of edges in an x - forest is @xmath149 . by the algorithm alg - app - rmaf , a meta - step in step 3 is applied on @xmath31 and @xmath37 only when @xmath229 . under the condition @xmath229 , it is easy to verify that each of the meta - steps 2 , 3.1 , 3.2 , and reduction rule 1 removes at least one edge in @xmath257 . therefore , the total number of times these meta - steps can be applied is bounded by @xmath149 . now consider meta - step 1 . initially , each vertex in @xmath31 and @xmath37 is an un - decomposable unit . thus , the total number of un - decomposable units in @xmath257 is @xmath149 . each application of meta - step 1 groups three un - decomposable units into a single un - decomposable unit , in each of @xmath31 and @xmath37 . therefore , meta - step 1 can be applied at most @xmath149 times .    summarizing the above discussion , we conclude that if the algorithm alg - app - rmaf uses these meta - steps in step 3 , then the number of times meta - steps are applied in each execution of step 3 is @xmath149 . moreover , it is not very difficult to see that with careful implementation of the data structure representing x - forests , the running time of each of the meta - steps , can be bounded by @xmath149 . therefore , the running time of the algorithm is @xmath254 , where @xmath256 and @xmath151 is the number of x - forests in the input instance .      in this subsection , we develop meta - steps for app - umaf . let @xmath39 be a fixed maf for the instance @xmath171 of app - umaf , and let @xmath33 be a maximal - af for @xmath31 and @xmath37 that contains @xmath39 . by lemma  [ simpleunroot ] , if @xmath37 has no mss , then @xmath31 and @xmath37 have an unique maf , which consists of a collection of single - vertex trees . and by a series of executions of reduction rule 1 on @xmath31 and @xmath37 , we can get that @xmath258 , which satisfies the judgement condition of step 3 in algorithm alg - app - maf . therefore , in the following discussion , we will assume that @xmath37 has an mss @xmath92 . note that none of labels in @xmath92 is a single - vertex tree in @xmath31 . , we will also assume that labels @xmath98 and @xmath99 belong to @xmath92 . * case 1 . * all labels in @xmath92 consist an mss in @xmath31 .    * meta - step 1 . * group all labels in @xmath92 ( and their common neighbor if @xmath92 is not the label set of a single - edge tree ) into an un - decomposable structure , and mark the unit with the same label in @xmath31 and @xmath32 . the implementation of meta - step 1 is the same as that of step 1 for para - umaf . this meta - step also can be regarded as a special meta - step that does not remove any edges in the instance . and , we have    [ unrooted meta - step 1 ] meta - step 1 is safe . * case 2 . * all labels in @xmath92 are siblings in @xmath31 .    obviously , the common neighbor @xmath93 of @xmath92 in @xmath31 has degree greater than @xmath259 . let @xmath156 and @xmath260 be two arbitrarily edges in @xmath31 that incident to @xmath93 but not incident to the labels in @xmath92 .    * meta - step 2 . * remove the edges that incident to @xmath98 and @xmath99 in both @xmath31 and @xmath32 , and remove edges @xmath156 and @xmath260 . [ unrooted meta - step 2 ] meta - step 2 keeps ratio @xmath3 . let @xmath112 and @xmath233 be the edges that incident to @xmath98 and @xmath99 in @xmath31 , respectively , and let @xmath234 and @xmath235 be the edges that incident to @xmath98 and @xmath99 in @xmath37 , respectively . using the notations in definition - r , we have @xmath261 and @xmath262 .    in the @xmath24-forest @xmath238 , labels @xmath98 and @xmath99 are single - vertex trees . thus , every maximal - af for @xmath238 and @xmath37 have @xmath98 and @xmath99 as single - vertex trees , no edges in @xmath239 can be in any maximal - af for @xmath238 and @xmath37 . because every agreement forest for @xmath177 must be a subforest of a maximal - af for @xmath238 and @xmath37 , so no edges in @xmath239 can be in any agreement forest for @xmath177 .    there are three situations for @xmath98 and @xmath99 in the maximal - af @xmath33 for @xmath31 and @xmath37 which contains @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath33 . thus , @xmath112 is not in @xmath33 , and @xmath112 is also not in @xmath39 . therefore , we can pick @xmath240 as the set @xmath241 , which satisfies : @xmath242 , @xmath263 . note that @xmath244 is not greater than @xmath264 . moreover , since @xmath31 is irreducible and @xmath98 is not a single - vertex tree in @xmath31 , the set @xmath241 is an ee - set of @xmath31 . therefore , for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath3 . situation 2 . @xmath99 is a single - vertex tree in @xmath33 . thus , @xmath233 is not in @xmath33 , and @xmath233 is also not in @xmath39 . then similarly we let @xmath246 and can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath3 . situation 3 . @xmath98 and @xmath99 are siblings in @xmath33 . by lemma  [ allsiblings - unrooted ] , all labels of @xmath92 are siblings in @xmath33 . because the labels of @xmath92 consist an mss in @xmath37 , so the labels of @xmath92 consist an mss in @xmath33 . in order to make the labels of @xmath92 consist an mss in @xmath31 , the degree of @xmath93 can not be greater than @xmath259 . that is , at least one of edges @xmath156 and @xmath260 in @xmath31 should be removed . if @xmath156 is not in @xmath33 , then @xmath156 is also not in @xmath39 . let @xmath265 , we can easily verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath3 . the same argument is applied to the case that @xmath260 is not in @xmath33 .    this verifies that the set @xmath175 satisfies all conditions in definition - r to make meta - step 2 to keep a ratio @xmath3 . thus , meta - step 2 keeps ratio @xmath3 . * some labels in @xmath92 are not siblings in @xmath31 . , we will assume that labels @xmath98 and @xmath99 are not siblings in @xmath31 . * subcase 3.1 . * @xmath98 and @xmath99 are in different connected components in @xmath31 .    * meta - step 3.1 . * remove the edges incident to @xmath98 and @xmath99 in both @xmath31 and @xmath37 . [ unrooted meta - step 3.1 . ] meta - step 3.1 keeps ratio @xmath23 . let @xmath112 and @xmath233 be the edges that incident to @xmath98 and @xmath99 in @xmath31 , respectively , and let @xmath234 and @xmath235 be the edges that incident to @xmath98 and @xmath99 in @xmath37 , respectively . using the notations in definition - r , we have @xmath248 and @xmath249 .    in the @xmath24-forest @xmath238 , labels @xmath98 and @xmath99 are single - vertex trees . thus , every maximal - af for @xmath238 and @xmath37 have @xmath98 and @xmath99 as single - vertex trees , no edges in @xmath239 can be in any maximal - af for @xmath238 and @xmath37 . because every agreement forest for @xmath177 must be a subforest of a maximal - af for @xmath238 and @xmath37 , so no edges in @xmath239 can be in any agreement forest for @xmath177 . there are two situations for @xmath98 and @xmath99 in the maximal - af @xmath33 for @xmath31 and @xmath37 which contains @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath33 . thus , @xmath112 is not in @xmath33 , so @xmath112 also is not in @xmath39 . therefore , we can pick @xmath240 as the set @xmath241 , which satisfies : @xmath242 , @xmath250 . moreover , since @xmath31 is irreducible and @xmath98 is not a single - vertex tree in @xmath31 , the set @xmath241 is an ee - set of @xmath31 . therefore , for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.1 to keep a ratio @xmath23 . situation 2 . @xmath99 is a single - vertex tree in @xmath33 . thus , @xmath233 is not in @xmath33 , so @xmath233 also is not in @xmath39 . then similarly we let @xmath246 and can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.1 to keep a ratio @xmath23 .    this verifies that the set @xmath175 satisfies all conditions in definition - r to make meta - step 3.1 to keep a ratio @xmath23 . thus , meta - step 3.1 keeps ratio @xmath23 . * subcase 3.2 . * @xmath98 and @xmath99 are in the same connected component in @xmath31 . let @xmath251 be the path that connects @xmath98 and @xmath99 in @xmath31 . and let @xmath123 be the edge set that contains all edge that incident to @xmath124 , @xmath116 , but not on the path @xmath126 . obviously , @xmath266 . let @xmath156 and @xmath260 be two arbitrary edges in @xmath123 .    * meta - step 3.2 . * remove the edges that incident to @xmath98 and @xmath99 in both @xmath31 and @xmath37 , and remove edges @xmath156 and @xmath260 in @xmath31 . [ meta - step 3.2 . ] meta - step 3.2 keeps ratio @xmath3 . let @xmath112 and @xmath233 be the edges that incident to @xmath98 and @xmath99 in @xmath31 , respectively , and let @xmath234 and @xmath235 be the edges that incident to @xmath98 and @xmath99 in @xmath37 , respectively . using the notations in definition - r , we have @xmath261 and @xmath262 .    in the @xmath24-forest @xmath238 , labels @xmath98 and @xmath99 are single - vertex trees . thus , every maximal - af for @xmath238 and @xmath37 have @xmath98 and @xmath99 as single - vertex trees , no edges in @xmath239 can be in any maximal - af for @xmath238 and @xmath37 . because every agreement forest for @xmath177 must be a subforest of a maximal - af for @xmath238 and @xmath37 , so no edges in @xmath239 can be in any agreement forest for @xmath177 .    there are three situations for @xmath98 and @xmath99 in the maximal - af @xmath33 for @xmath31 and @xmath37 which contains @xmath39 . situation 1 . @xmath98 is a single - vertex tree in @xmath33 . thus , @xmath112 is not in @xmath33 , and @xmath112 is also not in @xmath39 . therefore , we can pick @xmath240 as the set @xmath241 , which satisfies : @xmath242 , @xmath263 . note that @xmath244 is always less than @xmath264 . moreover , since @xmath31 is irreducible and @xmath98 is not a single - vertex tree in @xmath31 , the set @xmath241 is an ee - set of @xmath31 . therefore , for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath3 . situation 2 . @xmath99 is a single - vertex tree in @xmath33 . thus , @xmath233 is not in @xmath33 , and @xmath233 is also not in @xmath39 . then similarly we let @xmath246 and can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath3 . situation 3 . @xmath98 and @xmath99 are siblings in @xmath33 . thus , @xmath98 and @xmath99 either are connected by an edge or have a common neighbor in @xmath33 . if @xmath98 and @xmath99 are connected by an edge in @xmath33 , then all edges in @xmath123 should be removed . here , we just remove edges @xmath156 and @xmath260 , and let @xmath267 , we can easily verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath3 . if @xmath98 and @xmath99 have a common neighbor in @xmath33 , then at least one of @xmath156 and @xmath260 should be removed . if @xmath156 is not in @xmath33 , then @xmath156 is also not in @xmath39 . let @xmath265 , we can verify that for the agreement forest @xmath39 , the set @xmath241 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath3 . the same argument is applied to the case that @xmath260 is not in @xmath33 .    this verifies that the set @xmath175 satisfies all conditions in definition - r to make meta - step 3.2 to keep a ratio @xmath3 . thus , meta - step 3.2 keeps ratio @xmath3 .    for two unrooted general x - forests @xmath31 and @xmath37 , if we iteratively apply the above process based on the cases , then the process will end up that @xmath31 is isomorphic to @xmath37 . ( to here , we also  expand " these combined labels in @xmath31 and @xmath37 . ) the approximation algorithm alg - app - umaf for app - umaf proceeds similarly with the alg - app - rmaf for app - rmaf . due to limit space , we will not present the details of alg - app - umaf here . for app - umaf , we have the following theorem , whose proof is similar to that for theorem  [ alg - app - rmaf - ratio ] .    [ alg - app - umaf - ratio ] algorithm alg - app - umaf is @xmath3-approximation algorithm for the app - umaf problem that runs in time @xmath254 , where @xmath14 is the size of the label - set @xmath24 and @xmath151 is the number of forests in the input instance . we have implemented our algorithms alg - para - rmaf and alg - app - rmaf in c++ , obtain programs pmaf and amaf , respectively . let @xmath171 be an instance of maf . the program pmaf searches for the optimal value for the instance @xmath174 by starting with a lower bound @xmath12 of opt@xmath268 and increasing @xmath12 until it can return an agreement forest for @xmath174 whose order is not greater than @xmath12 . firstly , we use the program amaf to get an agreement forest whose order is @xmath269 . according to the theoretical analysis given above , we have that @xmath269 is not greater than @xmath1 times the optimal value for the instance . therefore , @xmath270 , and the program pmaf can start with @xmath271 . we test our programs for both simulated and biological data on a 3.06ghz pentium(r ) dual - core cpu system with 2 gb of ram running windows xp .      the simulated data are generated by using the following three - stage approach . firstly , generating a random rooted binary phylogenetic tree with @xmath14 labels . our way of generating random rooted binary phylogenetic trees is the same as that in  @xcite . we use the integers from @xmath4 to @xmath14 to represent the @xmath14 irrelevant labels . at first , a bipartition on the @xmath14 integers is created by randomly cutting the list into two non - empty parts . this bipartition represents the edges adjacent to the root node of the tree being constructed . then , each of the two induced partitions is randomly split into two lists to create a further bipartition of these sets . new bipartitions are then created recursively by cutting elements of previously created bipartitions into two sets until the bipartitions only consists of singleton elements . thus , the tree is created by starting at the root and creating bipartitions ( edges ) until the leaf nodes are reached . the labels of the leaves are the singleton elements in the bipartitions , respectively . to maintain the consistency with the previous definition of phylogenetic trees , a new leaf labeled with @xmath34 would be attached to the root of the tree . and the leaf @xmath34 will be regarded as the new root of this tree .    secondly , transforming the binary tree to a general tree . we randomly choose some internal edges in the binary tree , whose two ends are both internal vertices , to contract . the contracting operation is applied by removing the two endpoints @xmath272 and @xmath30 of the edge and introducing a new vertex which is adjacent to every vertex that is adjacent to at least one of @xmath272 and @xmath30 . the number of edges that are contracted is also random .    finally , transforming the original tree into other resulting trees by using a known number of spr operations . suppose @xmath273 resulting trees are constructed by applying @xmath274 spr operations on the original tree @xmath275 , respectively . then the instance which consists of the original tree @xmath275 and the @xmath273 resulting trees @xmath276 has an maf whose order could not be greater than @xmath277 . note that there are two reasons for that the order of the maf for the instance could not be greater than @xmath277 : ( 1 ) . the sequence of spr operations we use to obtain @xmath67 from @xmath275 , @xmath278 , may not be the shortest such sequence , that is , the order of the maf for @xmath275 and @xmath67 maybe less than @xmath279 ; ( 2 ) . the construction of @xmath67 and @xmath280 may use a same spr operation , @xmath281 , that is , the order of the maf for @xmath67 and @xmath280 maybe less than @xmath282 .    in the following discussion , we denote by t@xmath283 a set of instances of maf , each instance of which consists of @xmath151 phylogenetic trees with @xmath14-leaves . we run our program pmaf on the simulated data set t@xmath283 , where @xmath284 and @xmath285 . for each instance set t@xmath283 , @xmath284 , @xmath285 , it contains at least @xmath286 instances . figure  [ average - time ] shows the mean running time of pmaf on these simulated instances with the given order of maf . the slopes of the curves in the figure are always between @xmath4 and @xmath287 , which indicating that the actual running time of the algorithm is between its worst - case running time of @xmath0 and its best running time @xmath288 ( in the best case , all branches in the search tree of the algorithm for the instance always make two ways ) . the running time of amaf on each instance of the simulated data set t@xmath283 , where @xmath284 and @xmath285 , is always less than one second . figure  [ worst - ratio ] shows the worst approximation ratio of amaf for the simulated data set t@xmath283 , where @xmath284 and @xmath285 . the top points of the curves in the figure are always not greater than @xmath1 , which indicating that the actual approximation ratio of the algorithm is less than @xmath1 . moreover , as can be seen from the figure , when the order of maf is greater than @xmath289 , there is a down trending for the ratio of the algorithm with the order of maf increasing . this is because as the increasing of the order of maf , the number of  right " edges in a tree , which are the edges that are not in the maf for the instance , is increasing . thus , the probability of removing  right " edges by the algorithm is increasing . therefore , the ratio of the algorithm trends down . we run pmaf on the protein tree data set  @xcite . the protein tree data set consists of 22,437 binary protein trees , each constructed from a set of proteins covering from 4 to 144 microbial genomes . among these trees , there are @xmath290 protein trees covering all 144 microbial genomes . thus , the @xmath290 trees have the same label - set , and it is of biological meaning to compare these trees . we create extensive instances for the @xmath290 protein trees . the instances are created by the following way . firstly , create a random label - set @xmath291 with fixed size not greater than @xmath292 . secondly , construct the subtrees with label - set @xmath291 of the @xmath290 protein trees , respectively . finally , randomly choose a fixed number of subtrees to compare . +    figure  [ mean - order ] shows the mean order of mafs for the instances of protein trees . the number of instances we tested in each instance set t@xmath283 is not less than @xmath293 , where @xmath294 and @xmath285 . as can be seen from the figure  [ mean - order ] , we can get that the mean order of mafs for the instances are increase as the number of trees in the instances increase , which indicates that the reticulation has influenced the evolutionary history of these parts of the genomes that being compared . therefore , it makes perfect sense to study the maf problem on multiple trees . we also run pmaf and amaf on the poaceae data set from the grass phylogeny working group  @xcite . the dataset contains sequences for six loci : internal transcribed spacer of ribosomal dna ( its ) ; nadh dehydrogenase , subunit f ( ndhf ) ; phytochrome b ( phyb ) ; ribulose 1,5-biphosphate carboxylase / oxygenase , large subunit ( rbcl ) ; rna polymerase ii , subunit @xmath295 ( rpoc2 ) ; and granule bound starch synthase i ( waxy ) . when comparing these trees , only shared taxa of the set of trees are kept . .comparing the trees of poaceae data set . [ cols="^,^,^,^",options="header " , ]     tabel  [ poaceae ] shows our experimental results on the poaceae data set . as can be seen from the table , the ratios outputted by amaf are small , because the size of instances are very small and the order of an maf for these instances are large , relative to their sizes . +    the protein tree data set and poaceae data set above , are all binary tree . in order to test our programs on biological data sets of general phylogenetic trees , we introduce the multifurcations in the @xmath290 protein trees which has been discussed above by collapsing each bipartition with a bootstrap support value of less than 0.8 . the way for introduction of multifurcations is the same as the way in @xcite . figure  [ mean - nonbinary - order ] shows the mean order of mafs for the instances of general protein trees . the number of instances we tested in each instance set t@xmath283 is not less than @xmath293 , where @xmath294 and @xmath285 . in this paper , we presented the first group of parameterized algorithms for the maximum agreement forest problem on multiple general phylogenetic trees : one for rooted trees that runs in time @xmath0 ; and the other for unrooted trees that runs in time @xmath2 . we also presented the first group of approximation algorithms for the maximum agreement forest problem on multiple general phylogenetic trees : one for rooted trees with ratio @xmath1 , and the other for unrooted trees with ratio @xmath3 . extensive experiments on simulated data and biological data show that our programs pmaf and amaf are able to calculate the orders of mafs for the constructed instances . in particular , when the order of maf is small , pmaf can return the order of maf for the instance quickly . further improvements on the algorithm complexity of parameterized algorithms and the ratio of polynomial - time approximation algorithms for the maximum agreement forest problem on multiple general phylogenetic trees are certainly desired . however , the improvement seems require new observations in the graph structures of the phylogenetic trees . f. hodson , d. kendall , and p. tauta , _ the recovery of trees from measures of dissimilarity . in mathematics in the archaeological and historical sciences _ , edinburgh , u.k . : edinburgh university press , pp . 387 - 395 , 1971 . m. baroni , s. grnewald , v. moulton , and c. semple , `` bounding the number of hybridisation events for a consistent evolutionary history , '' _ journal of mathematical biology _ , vol . 171 - 182 , 2005 . j. fehrer , b. gemeinholzer , j. chrtek jr , et al , `` incongruent plastid and nuclear dna phylogenies reveal ancient intergeneric hybridization in pilosella hawkweeds ( hieracium , cichorieae , asteraceae ) , '' _ molecular phylogenetics and evolution _ 347 - 361 , 2007 . o. paun , c. lehnebach , j. t. johansson , et al , `` phylogenetic relationships and biogeography of ranunculus and allied genera ( ranunculaceae ) in the mediterranean region and in the european alpine system , '' _ taxon _ , vol . 4 , pp . 911 - 932 , 2005 . coyne , s. elwyn , s.y . kim , and a. llopart , `` genetic studies of two sister species in the drosophila melanogaster subgroup , d. yakuba and d. santomea , '' _ genetical research _ , vol . 11 - 26 , 2004 . kliman , p. andolfatto , j.a . coyne , f. depaulis , m. kreitman , a.j . berry , j. mccarter , j. wakeley , and j. hey , `` the population genetics of the origin and divergence of the drosophila simulans complex species , '' _ genetics _ , vol . 1913 - 1931 , 2000 . k. takahashi , y. terai , m. nishida , and n. okada , `` phylogenetic relationships and ancient incomplete lineage sorting among cichlid fishes in lake tanganyika as revealed by analysis of the insertion of retroposons , '' _ molecular biology and evolution _ 18 , pp . 2057 - 2066 , 2001 . rodrigues , m.f . sagot , and y. wakabayashi , `` some approximation results for the maximum agreement forest problem , '' proc . approximation , randomization , and combinatorial optimization : algorithms and techniques ( approx 2001 and random 2001 ) , pp . 159 - 169 , aug . 2007 . e. rodrigues , m. sagot , and y. wakabayashi , `` the maximum agreement forest problem : approximation algorithms and computational experiments , '' _ theoretical computer science _ , vol . 374 , no . 1 - 3 , pp . 91 - 110 , 2007 . j. chen , j.h . fan , and s.h . sze , `` parameterized and approximation algorithms for the maf problem in multifurcating trees , '' proc . graph - theoretic concepts in computer science ( wg 2013 ) , pp . 152 - 164 , jan . 2013 . o. paun , c. lehnebach , j.t . johansson , et al , `` phylogenetic relationships and biogeography of ranunculus and allied genera ( ranunculaceae ) in the mediterranean region and in the european alpine system , '' _ taxon _ , vol . 911 - 932 , 2005 .
Abstract:

Answer: the maximum agreement forest ( maf ) problem is a well - studied problem in evolutionary biology , which asks for a largest common subforest of a given collection of phylogenetic trees with identical leaf label - set . however , the previous work about the maf problem are mainly on two binary phylogenetic trees or two general ( i.e. , binary and non - binary ) phylogenetic trees . in this paper , we study the more general version of the problem : the maf problem on multiple general phylogenetic trees . we present a parameterized algorithm of running time @xmath0 and a @xmath1-approximation algorithm for the maf problem on multiple rooted general phylogenetic trees , and a parameterized algorithm of running time @xmath2 and a @xmath3-approximation algorithm for the maf problem on multiple unrooted general phylogenetic trees . we also implement the parameterized algorithm and approximation algorithm for the maf problem on multiple rooted general phylogenetic trees , and test them on simulated data and biological data . [ section ] [ theorem]lemma [ theorem]corollary [ theorem]proposition    # 1