docs: def maximise(self, **kwargs):
          """ The Maximisation step of the CEM algorithm """
          self.scorer.write_partition(self.partition)
          self.scorer.analyse_cache_dir(**kwargs)
          self.likelihood = self.scorer.get_partition_score(self.partition)
          self.scorer.clean_cache()
          changed = self.get_changed(self.partition, self.prev_partition)
          self.update_perlocus_likelihood_objects(self.partition, changed)
          return self.partition, self.likelihood, sum(inst.get_likelihood() for inst in self.insts)