| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > ищу алгоритм составления расписания |
| Автор: _hunter 15.2.2005, 17:56 |
| Добрый день. Помогите с сабжем кто чем может. Заранее благодарю за ответ. |
| Автор: Akina 15.2.2005, 17:58 |
| А какие проблемы-то? |
| Автор: _hunter 15.2.2005, 18:00 |
| проблемы с хорошей ( и электронной литературой ) |
| Автор: Akina 15.2.2005, 18:06 |
| тьфу... http://www.google.ru/search?hl=ru&q=%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC+%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F+%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= |
| Автор: _hunter 15.2.2005, 18:16 |
| а толку? на первых трех страницах кроме общих рассуждений и рекламы готовых продуктов ничего нет |
| Автор: Akina 15.2.2005, 18:25 |
| а тех страниц - полторы сотни, кстати... лень копать все - уточняй запрос. |
| Автор: _hunter 15.2.2005, 18:29 |
| уточнил, поставив кавычки -- результат -- две страницы ( мимо ) |
| Автор: mvdr 17.2.2005, 01:15 |
| расписания чего? |
| Автор: _hunter 17.2.2005, 15:16 |
| занятий |
| Автор: Marriage 17.2.2005, 15:35 |
| Гы, а что сложного, не пойму .... Выбираешь начальное время, выбираешь интервал о добавляешь время, причем должен быть предусмотрен параметр перерыв(перемена) и параметр (занятия). Двумерный массив структур: Структура состоит из 2-х параметров Времени и свойст времени. Например: (8.30, лекция),(9.15, перемена),(9.20 лекция),(10.05,премена) Или я чего-то не понял ??? |
| Автор: _hunter 17.2.2005, 15:37 |
| скорее второе лекция по какому предмету в какой аудитории? |
| Автор: maxim1000 17.2.2005, 15:41 |
| я вижу три возможных вида помощи в данной ситуации: 1. помочь поискать в Интернете - это, насколько я понял, уже проделано 2. поделиться чем-то готовым - уже прошло некоторое время, а никто не предложил, так что врядли 3. помочь решить задачу из трех вариантов, как мне кажется, остался только один, но он, к сожадению отсекается из-за отсутствия формулировки задачи... |
| Автор: Marriage 17.2.2005, 16:06 |
| ТЕбе что, базу данных сделать надо ??? |
| Автор: Akina 17.2.2005, 16:12 |
| Я такую программу писАл еще аж в 94 или 95 году (точно не помню) на Tbasic... обычная заливка с приоритетами... сотня аудиторий, полторы сотни групп, совмещения-разделения и пр. обрабатывалась минут сорок на 286-12... но т.к. это раз в 3 месяца делается, то пофиг. |
| Автор: _hunter 17.2.2005, 16:12 |
| нет. мне нужно программу составления расписания сделать. т.е. ( примерно ) есть набор пар, предметов и аудиторий; нужно забить аудитории предметами так, чтобы они ( аудитории ) не были заняты во время одной и той же пары разными предеметами + нужно учитывать разные пожелания ( типа после такого-то предмета такой-то ставить не желательно ) |
| Автор: rusbuy 17.2.2005, 19:17 |
| Если хочешь, чтобы в программе было всё так, как тебе надо - делай сам Или человеку всё очень подробно объясняй. Чтобы он понял и сделал её. |
| Автор: Marriage 17.2.2005, 20:21 |
| Данные в файле хранить ???? |
| Автор: _hunter 17.2.2005, 20:23 |
| а какая разница? ( пусть, для удобства, в базе ) |
| Автор: maxim1000 17.2.2005, 20:32 |
| тогда не помешало бы разделить требования на две части: 1. обязательные 2. желательные (1) - при невыполнении хотя бы одного расписание считается невыполнимым (2) - используются для выбора среди нескольких выполнимых расписаний потом можно начинать перебирать все возможные комбинации для начала можно попробовать тупо перебрать всевозможные первые пары понедельника, для каждого варианта - всевозможные вторые и т.д. на каждом шаге проверять выполнение обязательных условий, если что - сразу рубить ветку, чтоб вычислений мнго не было (хотя их и так будет много) если все это начнет чильно тормозить, придется усложнять отсев или реорганизовывать перебор... |
| Автор: Marriage 17.2.2005, 21:01 |
| Предлагаю так таблица или файл Время Дата ЧемЗанято СвободноВремя 8,30 17,02,2005 (перемена,лекция) Да/Нет Составляешь сначала просто расписание для аудитории С датой и временем, потом если СвободноВремя = да, то делаешь вставку чем занято, если нет, то не вставляешь ... |
| Автор: mvdr 18.2.2005, 08:17 |
| насколько я знаю, расписание - ручное дело, и составлять его автоматически - дело не хорошее (надо учитывать человеческий фактор преподавателей ). Но если надо и хочется, то предлагаю свой вариант: Есть аудитории, в которых может проходить только практика, только лабораторные работы и лекционные. - т.е. создается база аудиторий с указанием их типов (Л, П, ЛАБ). Будет примерно так: 1-01-Л 1-02-П 1-03-ЛАБ... Вторая база - ВРЕМЯ ЗАНЯТИЙ - имеет начало и конец ( например, 8:30-10:00 ), если время жестко фиксировано по парам, то можно использовать номера пар (1,2,3...). Третья база - ПРЕДМЕТЫ, у их названия надо ставить их тип ( Л,П, ЛАБ). Приоритетность ставить в виде условий. Сачала распихивает лекции по лекционным аудиториям, потом - лабораторные занятия, потом практики. т.е. ставим условия: если ПРЕДМЕТ1_ТИП = Л то запихиваем его в аудиторию с типом Л. ( все аудитории можно раставить в убывающем порядке по значимости - всяко какая то лучше, какая то хуже ) Аналогично все остальные предметы - смотрим на тип предмета, сортируем для него аудитории по его типу, выбираем номер пары (время занятий). Надо еще проверять условия: (например) 1) не ставить 2 лекции подряд 2) не ставить после предмета1 педмет2 и т.д. Вроде так, но это на скорую руку. Если что - меня всегда можно найти. |