На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

С# Составление расписания с помощью генетического алгоритма (c пояснительной запиской)

    

     Постановка задачи

Цель дипломной работы - разработать алгоритм для составления учебного расписания, используя генетические алгоритмы.

Для решения данной задачи необходимо выполнить следующие задачи:

1) Изучить существующие методы составления учебного расписания и выбрать подходящий метод для решения задачи.

2) Разработать генетический алгоритм, который будет использоваться для оптимизации задачи составления учебного расписания.

3) Сделать выводы и предложить возможные направления дальнейших исследований в данной области.

Результатом дипломной работы должен быть рабочий алгоритм для составления учебного расписания, который может быть использован в образовательных учреждениях для оптимизации учебного процесса

     Описание программы

Перед запуском алгоритма пользователю необходимо заполнить список исходных данных, то есть группы, которые включают в себя предметы, преподавателей и кабинеты.

Следом, он должен настроить параметры алгоритма (количество популяции, поколений, вероятность кроссинговера, вероятность мутации и другие), затем необходимо настроить систему штрафов (штраф за неполные пары, несоответствие предметов преподавателя и так далее). От данных значений зависит насколько правильно алгоритм исполнит свою задачу.

После приведенных действий пользователь может запустить алгоритм и проанализировать его работу, смотря на график зависимости минимальной, средней и максимальной приспособленности от поколения. И в зависимости от конечного результата либо изменить гиперпараметры, чтобы улучшить следующий результат, либо сохранить расписание для последующего его использования.

     Фрагмент программного кода

      public void start(Train output)
        {
            // Инициализируем начальную популяцию
            population = populationCreator();
            // Создаем списки, в которых будет хранится статистика
            List<double> avg = new List<double>();
            List<double> min = new List<double>();
            List<double> max = new List<double>();
            List<double> generations = new List<double>();

            // Запускаем алгоритм на max_generation поколений
            for (int gen = 0; gen < max_generation; gen++)
            {
                // Отбор, кроссинговер, мутаиция
                population = selTournament();
                population = cxTwoPoints();
                population = mutUniformInt();

                // Сохраняем для статистики
                avg.Add(population.Average(ind => ind.Fitness()));
                min.Add(population.Min(ind => ind.Fitness()));
                max.Add(population.Max(ind => ind.Fitness()));
                generations.Add(gen);

                // Сохраняем лучшего индивида
                Hof();

                // Выводим статистику
                output.RefreshListBox(
                    avg[avg.Count() - 1],
                    generations[generations.Count() - 1],
                    min[min.Count() - 1],
                    max[max.Count() - 1]);
                output.Refresh();
                output.DrawGraph(generations, avg, max, min);
            }
        }

    Содержание архива

Страниц отчета - 25

- количество страниц в отчете - 25

- язык программирования C# и среда разработки исходного кода Microsof Visual Studio 2022

Купить 6000,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

6000,00 

Покупается впервые!
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

Timetable_GA.rar
4025433
Оцени работу

рейтинг

С# Составление расписания с помощью генетического алгоритма (c пояснительной запиской)
Решение задачи составления учебного расписания посредством использования генетических алгоритмов
Категория: Образование
Стоимость: 6000,00