def _crossover_schedule(self, schedule1, schedule2): crossover_schedule = Schedule(self._data).initialize() for i in range(0, len(crossover_schedule.get_lectures())): if rnd.random() > 0.5: crossover_schedule.get_lectures()[i] = schedule1.get_lectures()[i] else: crossover_schedule.get_lectures()[i] = schedule2.get_lectures()[i] return crossover_schedule
def _mutate_schedule(self, mutate_schedule): schedule = Schedule(self._data).initialize() for i in range(0, len(mutate_schedule.get_lectures())): if MUTATION_RATE > rnd.random(): mutate_schedule.get_lectures()[i] = schedule.get_lectures()[i] return mutate_schedule