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