Algorithms And Heuristics For Combinatorial Optimization In Phylogeny