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