Execute and recommend a best-fitting model. If drop_doses and no model
        is recommended, drop the highest dose-group and repeat until either:

        1. a model is recommended, or
        2. the dataset is exhausted (i.e., only 3 dose-groups remain).

        The session instance is equal to the final run which was executed; if doses were dropped
        all previous sessions are saved in self.doses_dropped_sessions.

def execute_and_recommend(self, drop_doses=False):
        """
        Execute and recommend a best-fitting model. If drop_doses and no model
        is recommended, drop the highest dose-group and repeat until either:

        1. a model is recommended, or
        2. the dataset is exhausted (i.e., only 3 dose-groups remain).

        The session instance is equal to the final run which was executed; if doses were dropped
        all previous sessions are saved in self.doses_dropped_sessions.
        """
        self.execute()
        self.recommend()

        if not drop_doses:
            return

        while self.recommended_model is None and self.dataset.num_dose_groups > 3:
            self.doses_dropped_sessions[self.doses_dropped] = self.clone()
            self.dataset.drop_dose()
            self.execute()
            self.recommend()
            self.doses_dropped += 1