public Schedule(Schedule c, bool setupOnly)
{
if (setupOnly)
{
// reserve space for time-space slots in chromosomes code
_slots = new List<CourseClass>[(DAYS_NUM * DAY_HOURS * Configuration.GetInstance.GetNumberOfRooms())];
for (int ptr = 0; ptr < (DAYS_NUM * DAY_HOURS * Configuration.GetInstance.GetNumberOfRooms()); ptr++)
_slots[ptr] = new List<CourseClass>();
// reserve space for flags of class requirements
_criteria = new bool[(Configuration.GetInstance.GetNumberOfCourseClasses() * numberOfScores)];
}
else
{
// copy code
_slots = c._slots;
_classes = c._classes;
// copy flags of class requirements
_criteria = c._criteria;
// copy fitness
_fitness = c._fitness;
}
// copy parameters
_numberOfCrossoverPoints = c._numberOfCrossoverPoints;
_mutationSize = c._mutationSize;
_crossoverProbability = c._crossoverProbability;
_mutationProbability = c._mutationProbability;
}