Trees are a useful framework for classifying entities whose attributes are, at least partially, related through a common ancestry, such as species of organisms, family members or languages. In some common applications, such as phylogenetic trees based on DNA sequences, relatedness can be inferred from the statistical analysis of unweighted attributes. The vast majority of mutations that survive across generations are evolutionarily neutral, which means that most genetic differences between species will have accumulated independently and randomly. In these cases, it is possible to calculate the tree from a precomputed matrix of distances. In other cases, such as with anatomical traits or languages, the assumption of random and independent differences does not hold, making it necessary to consider some traits to be more relevant than others for determining how related two entities are. In this paper, we present a constraint programming approach that can enforce consistency between bounds on the relative weight of each trait and tree topologies, so that the user can best determine which sets of traits to use and how the entities are likely to be related.
- Classification trees
- Constraint programming