  Phylogenetic networks are leaf-labelled directed acyclic graphs that are used
to describe non-treelike evolutionary histories and are thus a generalization
of phylogenetic trees. The hybridization number of a phylogenetic network is
the sum of all indegrees minus the number of nodes plus one. The Hybridization
Number problem takes as input a collection of phylogenetic trees and asks to
construct a phylogenetic network that contains an embedding of each of the
input trees and has a smallest possible hybridization number. We present an
algorithm for the Hybridization Number problem on three binary trees on $n$
leaves, which runs in time $O(c^k poly(n))$, with $k$ the hybridization number
of an optimal network and $c$ a constant. For two trees, an algorithm with
running time $O(3.18^k n)$ was proposed before whereas an algorithm with
running time $O(c^k poly(n))$ had prior to this article remained elusive for
more than two trees. The algorithm for two trees uses the close connection to
acyclic agreement forests to achieve a linear exponent in the running time,
while previous algorithms for more than two trees (explicitly or implicitly)
relied on a brute force search through all possible underlying network
topologies, leading to running times that are not $O(c^k poly(n))$ for any $c$.
The connection to acyclic agreement forests is much weaker for more than two
trees, so even given the right agreement forest, reconstructing the network
poses major challenges. We prove novel structural results that allow us to
reconstruct a network without having to guess the underlying topology. Our
techniques generalize to more than three input trees with the exception of one
key lemma that maps nodes in the network to tree nodes and, thus, minimizes the
amount of guessing involved in constructing the network. The main open problem
therefore is to establish a similar mapping for more than three trees.
