public Schedule(int classCount = 30, int daysPerWeek = 6, int lessonsPerDay = 7) { _guid = Guid.NewGuid(); _teacherSchedule = new ScheduleHelper.TeacherSchedule(); _classes = new List <ClassSchedule>(classCount); AddClasses(classCount, daysPerWeek, lessonsPerDay); }
public override int GetWeight(Schedule s) { TeacherSchedule ts = s.TeacherSchedule; int sum = 0; foreach (TeacherLessonCollection tlc in ts) { sum += tlc.GetTogetherCount(); } return(sum * Weight); }
public Schedule(Schedule other) { this._guid = other._guid; _teacherSchedule = new ScheduleHelper.TeacherSchedule(); _classes = new List <ClassSchedule>(other._classes.Count); foreach (ClassSchedule cs in other._classes) { _classes.Add(new ClassSchedule(cs, this)); } }
private void button1_Click(object sender, EventArgs e) { gas = new Gas(); gas.Evolved += gas_Evolved; gas.Genetic(); schedule = gas.Best; //this.dataGridView1.DataSource = gas.Best.TeacherSchedule[59].GetTeacherLessonTable(); ts = schedule.TeacherSchedule; //ts = gas.Worst.TeacherSchedule; loaded = true; //this.textBox1.AppendText(gas.Best.TeacherSchedule[] this.button1.Text = "完成"; }
public override int GetWeight(Schedule s) { TeacherSchedule ts = s.TeacherSchedule; int sum = 0; foreach (TeacherLessonCollection tlc in ts) { if (tlc.Get4SectionCount() > 3) { sum++; } } return(-sum * Weight); }
public override int GetWeight(Schedule s) { TeacherSchedule ts = s.TeacherSchedule; foreach (TeacherLessonCollection tlc in ts) { if (Global.GradeTeachers[tlc.TeacherID].SubjectName == SubjectName) { foreach (TeacherLesson tl in tlc) { if (Weeks.Contains(tl.DayOfWeek) && tl.Forenoon) { sum += Weight; } } } } return(sum); }
public override int GetWeight(Schedule schedule) { TeacherSchedule ts = schedule.TeacherSchedule; int sum = 0; foreach (TeacherLessonCollection tc in ts) { foreach (TeacherLesson tl in tc) { if (tl.Count > 1) { sum -= Weight * 5; } else { sum += Weight; } } } return(sum); }
public override int GetWeight(Schedule s) { int sum = 0; TeacherSchedule ts = s.TeacherSchedule; //对所有教师都成立的规则 if (TeacherID == -1) { foreach (TeacherLessonCollection tlc in ts) { sum += getCount(tlc, DayOfWeek, Section); } } else { TeacherLessonCollection tlc = ts[TeacherID]; sum = getCount(tlc, DayOfWeek, Section); } return(sum * Weight); }