We describe algorithms to explore the space of all possible reconciliations between a gene tree and a species tree. We propose an algorithm for generating a random reconciliation, and combinatorial operators and algorithms to explore the space of all possible reconciliations between a gene tree and a species tree in optimal time. We apply these algorithms to simulated data. is extended abstract appeared in the proceedings of the 6th RECOMB Comparative Genomics Satellite Workshop (RCG 2008), volume 5267 of Lecture Notes in Computer Scence, pages 1-13, Springer, 2008.