Contains all classes related to model optimization. The RunEstimator interface contains the method signatures which every optimizer must implement. There is a generic class with common method implementations: RunEstimatorImpl, but every specific strategy to optimize the models should extend this class or at least implement the interface.

For example, PhyML optimizer has his own implementation PhyMLv3AminoAcidRunEstimator. In future versions this vertical hierarchy, which could allow extension to support Nucleotide models, should be transformed following a Bridge Pattern.

@since 3.0