C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Генератор рассписаний, Нужен рабочий алгоритм или ссылки
full_lamer
Отправлено: 13.05.2005, 16:50


Машинист паровоза

Группа: Участник
Сообщений: 225



доброго времени суток.
стоит следующая задача: необходимо написать программу-генератор рассписаний для ВУЗа, а я даже не знаю с какого бока к задаче подойти... мы уже облазили множество сайтов, но ничего путного найти не смогли. если кто может помогите ссылкой или алгоритмом.
заранее спасибо.
Doga
Отправлено: 24.05.2005, 19:40


Мастер участка

Группа: Участник
Сообщений: 575



QUOTE

я даже не знаю с какого бока к задаче подойти...


Пологаю, надо начать с анализа исходных данных.
Rius
Отправлено: 24.05.2005, 20:23


Мастер участка

Группа: Участник
Сообщений: 321



В том-то и дело, что задача сложная. Данных тут огого!
full_lamer где-то читал обзоры про генераторы расписаний для ВУЗов, найти вполне реально. Но только если посмотреть внешнюю реализацию, исходников никто не даст.
Doga
Отправлено: 24.05.2005, 20:55


Мастер участка

Группа: Участник
Сообщений: 575



Данных тут не много: Прдолжительность семестра в сутках, список преподоваемых предметов (и преподователей) и длительность каждого из них в пАрах. Да, макс. кол-во пар в сутки (что ещё, можете, даже должны додумать сами).

Дальше, следует получить в деканате (али где ещё) дополнительные условия и ограничения (Должны же там знать чего хотят, ТЗ, короче).

Для начала, думаю, достаточно. Лично мне уже понятно, что с чем клеить.

А далее за дело. Получив результат, можно будет думать дальше...

biggrin.gif
Rius
Отправлено: 25.05.2005, 04:18


Мастер участка

Группа: Участник
Сообщений: 321



Плюс учитывать пожелания преподов, когда им удобно ставить занятия.
Минимизировать перемещения между корпусами для студней и преподов.
Распределять нагрузку поровну или освободить какой-либо день...
VovaN
Отправлено: 25.05.2005, 15:27


Дежурный стрелочник

Группа: Участник
Сообщений: 72



Посмотри ссылки на тему: "Генетический алгоритм".
Его можно свести к генератору рассписаний.
Если заинтересуешся, маякни. У меня один знакомый недавно реализовывал подобную задачу.
full_lamer
Отправлено: 26.05.2005, 07:51


Машинист паровоза

Группа: Участник
Сообщений: 225



большое спасибо всем за ответы.

2Doga: спасибо за анализ исходных данных, буду исходить из этого

2VovaN: подскажите пожалуйста конкретные ссылки. спасибо.
olegenty
Отправлено: 26.05.2005, 08:23


Ветеран

Группа: Модератор
Сообщений: 2412



мой одногруппник написал такой диплом, модифицировав "метод расскраски графа".
AVC
Отправлено: 26.05.2005, 08:36


Ветеран

Группа: Модератор
Сообщений: 1583



А я когда-то писал задачу составления расписания для экскурсионного бюро используя метод наименьшего влияния. Но для вуза он не прокатит. Как мне кажется довольно "живой" вариант — составление или макета расписания с дальнейшей правкой или просто ручное заполнение и правка пустографки. А программа должна убирать грубые ошибки и мгновенно показывать статистики, необходимые для принятия решения.
olegenty
Отправлено: 26.05.2005, 08:49


Ветеран

Группа: Модератор
Сообщений: 2412



ну, тут система ограничений посложнее. в разработанной системе были такие (например)
1. Закрепление предмета за группой аудиторий (либо любая аудитория)
2. Закрепление препода за группой аудиторий (либо без ограничений)
3. Закрепление предмета за днями недели и определённым диапазоном пар (либо без ограничения)
4. Закрепление препода за днями недели и определённым диапазоном пар (либо без ограничений)
5. Разрешение занятий в выходные и/или праздничные дни

и др. (+ любая комбинация)

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

минусом было то, что прога использовала MS Access в качестве СУБД и весь расчёт вёлся в классовой модели на стороне клиента.

Вернуться в Вопросы программирования в C++Builder