next up previous
Next: Compatibility Up: Large Parsimony Previous: Branch and Bound

   
Nearest Neighbor Interchange

Another general optimization method is that of hill-climbing. The basic idea is to define a neighborhood relation for the search-space, and given such a relation, use one of several well-known heuristic algorithms - such as the greedy algorithm, simulated annealing, etc. - to find a local optimum. There are many ways to define neighborhood among trees. For instance - we can say that two unrooted9.3 trees T1 and T2 are neighbors, if T1 can be presented as in figure 9.5, and T2 can be presented as one of the trees in figure 9.6.
  
Figure 9.5: An unrooted tree with 4 subtrees.

\fbox{\epsfig{figure=lec09_figs/smalltree1.ps}}






  
Figure 9.6: Neighbors of the tree in figure 9.5. The subtrees A, B, C, and D are common to all three trees.

\fbox{\epsfig{figure=lec09_figs/smalltree2.ps}}





A similar relation can be defined over 5-branch trees, resulting in a more complex neighborhood graph, also known as Peterson's graph. Another possibility is to say that the neighbors of a tree are those trees created by detaching any subtree and attaching it in some other place than its original location.
next up previous
Next: Compatibility Up: Large Parsimony Previous: Branch and Bound
Itshack Pe`er
1999-02-18