Example #1
0
 public MainWindow()
 {
     InitializeComponent();
     Configuration.Instance.ParseFile("");
     //Schedule schedule = new Schedule(2, 2, 80, 3);
     Algorithm algorithm = new Algorithm(100, 8, 5);
     algorithm.Start();
     var bestSchedule = algorithm.GetBestChromosome();
     Save(algorithm, bestSchedule);
 }
Example #2
0
        private void Save(Algorithm alg, Schedule schedule)
        {
            foreach (var entry in schedule.Classes)
            {
                var courseClass = entry.Key;
                var pos = entry.Value;

                var rooms = Configuration.Instance.GetNumberOfRooms();
                var day = pos/(Consts.DayHours*rooms);
                var hour = pos%(Consts.DayHours*rooms);
                var room = hour/Consts.DayHours;
                var roomHour = hour%Consts.DayHours;
                var row = roomHour + 2;
                var column = day*rooms + room + 1;

                var sb = new StringBuilder();
                var count = 0;
                foreach (var studentGroup in courseClass.StudentGroups)
                {
                    sb.Append(studentGroup.Name + ", ");
                    count += studentGroup.StudentCount;
                }

                var textblock = new TextBlock
                {
                    Text = string.Format("Kurs: {0}\nGrupa: {1}\nProfesor: {2}\nLab: {3}\nIlosc: {4}", courseClass.Course.Name,
                            sb, courseClass.Professor.Name,
                            courseClass.IsLabRequired, count),
                };

                var gen = new TextBlock
                {
                    Text = "Generation: " + alg.CurrentGeneration,
                };

                Grid.SetRow(textblock, row);
                Grid.SetColumn(textblock, column);
                Grid.SetRowSpan(textblock, courseClass.LessonDuration);
                MainGrid.Children.Add(textblock);
                Grid.SetRow(gen, 0);
                Grid.SetColumn(gen, 0);
                MainGrid.Children.Add(gen);
            }
        }