  The notion of a Persistent Phylogeny generalizes the well-known Perfect
phylogeny model that has been thoroughly investigated and is used to explain a
wide range of evolutionary phenomena. More precisely, while the Perfect
Phylogeny model allows each character to be acquired once in the entire
evolutionary history while character losses are not allowed, the Persistent
Phylogeny model allows each character to be both acquired and lost exactly once
in the evolutionary history. The Persistent Phylogeny Problem (PPP) is the
problem of reconstructing a Persistent phylogeny tree, if it exists, from a
binary matrix where the rows represent the species (or the individuals) studied
and the columns represent the characters that each species can have.
  While the Perfect Phylogeny has a linear-time algorithm, the computational
complexity of PPP has been posed, albeit in an equivalent formulation, 20 years
ago. We settle the question by providing a polynomial time algorithm for the
Persistent Phylogeny problem.
