| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 2 | |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
|
|
|
|
|
|
# 4 |
|
Junior Member
Регистрация: 11.07.2004
Сообщения: 92
![]() |
Kvarx а в каком универе тебе это сказали?
И что за человеческий фактор, когда первоначальный вариант расписания даже в ручную все равно формируется без его учета, а потом в процессе учебы он проявляется и тогда вносят коррективы в расписание. И вообще такая задача решается в лоб - простым перебором все возможных значений или есть более изящные способы? |
|
|
|
|
# 5 |
|
Newbie
Регистрация: 15.10.2006
Сообщения: 6
![]() |
Задача элементарно решается на Прологе. Советую посмотреть этот язык.
Там нужно просто задать спецификацию на задачу(такая-то аудитория тогда-то занята, такой-то преподаватель тогда-то, такой-то преподователь хочет аудиторию обладающую следующим свойством и.т.д) |
|
|
|
|
# 6 |
|
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
да не обязательно пролог тут нужен
сгодится любой язык - алгоритм рекурсивного перебора 1) ставим занятие в сетку 2) если поставить не получается, возвращаемся на шаг назад, сдвигаем занятие, идем на п. 1 ничего фантастического, тривиальная задача (не пугайте человека)
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
|
|
|
|
# 9 |
|
Administrator
Регистрация: 13.05.2002
Сообщения: 11 227
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Chto-to takoe nakidali za paru dnei kogda-to. Raspredelenie po auditoriyam (cel optimizacii: minimalnoe rasstoyanie odnogo zdaniya ot drugogo dlya prowedeniya lekcij chto-bi ne prihodilos begat). Rapsredelenie lekcij i.t.d. s uchetom prioritetow (prioriteti: obedennij chas po-wozmojnosti swoboden, lekcii doljni raspolagatsya s minimalno wozmojnim kol-wom probelow). Yazik goditsya liuboi, mi klepali kajetsya na jave. Samoi gimornoi chastju bilo dat sostawiteliu raspisaniya wruchnuju formirowat prioriteti. Wkliuchili dlya etogo wozmojnost napisaniya prawil na java script. Dlya interpretacii js wospolzowalis paketom ot netscape.
__________________
Осколки прошлого, как снег, закрутит ураган времён, В ушедший день для нас навек, обрушив мост, Оставив в наших душах след, тьма уплывёт за горизонт, И в чистом небе вспыхнет свет, свет новых звёзд. |
|
|
|
|
# 10 | |
|
Newbie
Регистрация: 15.10.2006
Сообщения: 6
![]() |
Цитата:
Сложность <n! где n-количество предметов в неделю. А потом на Прологе задача будет решаться не более чем за строк 100 ) На C++ структуру данных дольше описывать будем. |
|
|
|
|
|
# 11 |
|
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Decline, что ты подразумеваешь под "сложностью"? Рекурсивный алгоритм будет не намного длиннее прологовского
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
|
|
|
|
# 12 |
|
Newbie
Регистрация: 15.10.2006
Сообщения: 6
![]() |
Ты предлагаешь переборный алгоритм.
По сути всякое решение на Прологе имеет переборную природу, впрочем весьма эффективную для перебора. То, что ты предлагаешь примерно соответствует внутренней реализации Пролога этой задачи(там внутри все так и работает - задаем спецификацию, подставляем решение, не удовлетворяет? - берем следующий набор значений). Так вот зачем тогда писать алгоритм, если можно просто написать требования. Я сторонник использования Пролога в задачах перебороного характера и работе с текстом(хотя на счет 2-го можно поспорить) - проще получается для программиста. Под сложностью подразумевал максимальное количество ветвей перебора. |
|
|
|
|
# 13 |
|
Guest
Сообщения: n/a
|
Расскидать преподователей по аудиториям. Только не забудьте, что у преподователя не должно быть перерыва больше одной пары, у студентов не должно быть разрывов в занятии вообще. Вот тогда это расписание будет идеальным. Как то работал я в школе, полгода бился над алгоритмом, но так до конца и не довел. Мой единственный бетатестер завуч с 20 летним стажем каждый раз рубил мою реализацию проблемы.
|
|
|
# 14 |
|
Newbie
Регистрация: 12.09.2003
Адрес: Digital Astral
Сообщения: 37
![]() |
А можно ли конкретнее описать проблему? Какие данные ввода, параметры и т.д.?
Мы писали в рамках учебного проекта в универе, но перед нами стояла задача, чтобы сделать планировщик на основе имеющихся данных о лекциях профессора и т.д. Другими словами, ты задаешь, какие лекции хочешь посещать, наша прога брала нужные данные с сервера, спрашивала о твоих приоритетах (по возможности все пары вместе, позже, раньше т. д.). Это был промежуточный этап, далее все данные отдавались алгоритму и он, на основе преферируемых параматров высчитывал наилучший результат. Писалось на Java 1.4 и отлично работало(ет). http://im-coma.de/vv/stundenplan.php?sem=hws06 Вот оно. Правда на немецком, но разобраться можно: внизу neues fach auswählen это выбрать предмет (и далле подкатегории), вверху HWS06 это семестр (оссенне-зимний) и т.д. Поэкспериментируй.
__________________
DON'T PANIC Последний раз редактировалось 13th Ghost; 27.11.2006 в 23:04. |
|
|
|
|
# 15 | |
|
Junior Member
Регистрация: 01.04.2003
Адрес: Новосибирск
Сообщения: 50
![]() ![]() |
Цитата:
Использовать надо то, с чем хорошо знаком при отсутствии других ограничений, а универсалов хорошо знающих несколько языков не так много, потому что пока работаешь на одном отстаешь от жизни в другом и просто забываешь его. Да, я могу написать эту прогу на прологе, но на Java я её напишу в несколько раз быстрее. Насчет скорости работы проги - вопрос спорный и в наше время не самый главный. |
|
|
|