2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

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

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

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Задача составления расписания
Сообщение06.09.2009, 11:44 


06/09/09
9
Постановка:
    есть набор задач. характеристики каждой: важность, длительность, набор необходимых навыков для выполнения, срок обязательной сдачи, географическое положение.

    есть работники. характеристики: стоимость часа, набор навыков, расписание работы.

    есть условия/ограничения. множество условий 2 типов: для старта задачи A должна быть выполнена задача B; задачи A и B должны быть запущенны одновременно. для выполнения задачи нужно соответствие навыков рабочего и задачи. перемещение работника между задачами требует времени (зависит от расстояний между задачами)

Необходимо минимизировать стоимость выполнения набора задач заданным набором работников. стоимость складывается из оплаты времени труда и транспортных расходов на перемещения между задачами

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

Спасибо.

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение06.09.2009, 12:56 
Заслуженный участник


26/07/09
1559
Алматы
Похоже на какой-то гибрид сетевых графиков и транспортной задачи...

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение06.09.2009, 18:19 
Экс-модератор
Аватара пользователя


11/07/08
1169
Frankfurt
Я бы начал с обозначений, целевой функции, бюджетных ограничений и эволюции $s_{t+1}=S^M(s_t, x_t)$ где $s$ -- состояние, а $x$ -- управление.

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение06.09.2009, 21:06 


17/10/08

1313
1. Задача коммерческая? Если нет, можете сразу бросить. Если да, то без денег не обойтись.
2. Какая дискретность времени? Один день?
3. Сколько примерно работ?
4. Сколько примерно работников?
5. Сколько примерно отношений между началами/концами работ?
6. Работники посещают свой дом, или это таджики с цыганским образом жизни? Без выходных что ли работают или где?
И т.д. и т.п.

Реальные данные есть к задаче?

Подходящей литературы на русском языке нет (по крайней мере, года 3 назад не было). На английском можете поискать scheduling, но без опыта такие задачи не решаются. Особенно смешно наблюдать за студентами и выпускники ВУЗов. Это комедия в трех частях. Могу рассказать, если интересно...

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение07.09.2009, 01:35 


06/09/09
9
2. Дискретность не задана. Для определенности можно считать 15 минут, горизонт планирования - от 1 дня до 10 дней (в идеале).
3. 10000 работ в день.
4. 1000 работников.
5. Если правильно понял вопрос, то длину цепочки связанных между собой работ можно считать не больше 5.
6. У каждого работника есть личное разумное расписание (только до обеда или только утром и вечером), в которое он может работать; можно считать, что есть заданное начальное положение работника, где закончится его рабочий день - без разницы.
7. Реальные данные в принципе существуют. Чтобы их согласились показать, нужно предоставить хоть какую-то модель.
8. Я нашел учебники по теории расписаний 70-80 годов (Танаев и компания), но вот там не совсем то... Современные зарубежные (от Springer) более применимы, но в них тоже задачи существенно проще. Если у Вас есть примеры годных книжек\статей на английском, пожалуйста, расскажите.
9. Расскажите и про комедию, интересно :)

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение07.09.2009, 12:47 


17/10/08

1313
Правильно ли я понимаю, что для выполнения работы необходим только один работник? Ну, или, суть к этому задачу можно привести?

Создать модель - большего ума не нужно. Только она будет неподъемной, да и еще и бесполезной. Например, можете попробовать OPL Studio. В ней есть специальный язык, на котором за пару дней можно создать и опробовать модель вашей задачи. Все необходимое для описания вашей задаче там есть. Наверняка там же есть библиография, но сам я «пользуюсь» статьями.

Но все это бесполезно, т.к.
* слишком много работ – нужно применять другие методы планирования
* работать приходится с людьми – могут заболеть, уволиться, забеременеть и т.п. – весь план может рухнуть, особенно если план оптимальный
* набор работ может измениться, длительность работ может быть рассчитана неправильно и т.д
* условия могут быть противоречивыми, например, слишком много работ и мало людей, не достаточно людей требуемой квалификации – результат будет «нет решения». И что дальше?

И т.д. и т.п. – задача тупого назначения работ и времени сотрудникам – нерешаемая и бессмысленная задача, которая не даст ничего кроме убытков. Неадекватность, неконтролируемость, неустойчивость и т.д. – таков будет результат решения описанной вами задачи. Если бы была техническая возможность ее решения и внедрения – в компании воцарился бы хаос… Се ля ви.

Тем не менее, можно ли сэкономить? При правильном планировании без ущерба качества работы компании резерв экономии обычно составляет 5-15%.

Про комедию напишу чуть позднее…

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение07.09.2009, 13:09 


06/09/09
9
Да, одна задача - один работник.
При горизонте планирования в 1 день болезни\смерти\беременность и прочее можно узнать в начале дня и пересчитать с учетом новой информации. Набор задач не меняется, длительность расчитана верно (т.е. с запасом).
Уточню, ясно дело, что самое лучше решение найти при таких размерностях не получится. Близкое к нему - вот цель. Хотя вопрос устойчивости тоже надо рассмотреть, согласен.

Не понял вопрос про экономию...
Если Вы про сокращение размерности, то задача подразумевает возможность разбить всю местность на районы и работать с командами человек по 20. Т.е. оптимизируем 200 задач на 20 человек, но тут трудности, так-как ситуация "нужный специалист есть только на соседнем районе" бывает часто.

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение07.09.2009, 14:21 


17/10/08

1313
Про экономию – это про издержки, т.е. речь о (денежной) выгоде компании.

Представьте себе, что был оптимальный план на завтра. Утром следующего дня один человек заболел – и утром происходит перерасчет, и ни один человек не будет заниматься тем, чем было запланировано вчера. Каково это?
Расходы же складываются не только из зарплаты непосредственных работников и транспорта, но и из затрат управленцев. Если сроки будут срываться, то кто будет отвечать за это? Программа составления расписания? Если что-то будет не так, менеджеры будут кивать на программу и т.д. Если начинается экономия на непосредственных исполнителях, то возрастают затраты на управленцев и тут важно найти баланс (оптимум).

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

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение08.09.2009, 22:05 


17/10/08

1313
Обещанная комедия в 3-ч частях.

Часть 1: расписание для школ.
Как раз ко мне обратился студент, который написал программу для составления школьных расписаний. Только возникла у него одна проблемка – программа не может расставить все занятия. Т.е. не составляет расписание. Он спрашивал меня, в чем тут может быть дело. За условия задачи ручался головой (не своей – завуча) – они де все правильные и обязательно должны выполняться.
Я составил математическую модель задачи и попробовал составить расписание. Сразу же обнаружил противоречие в условиях. Все клятвы завуча оказались пустым звуком. У студента, видимо, был шок. Он верил завучу как себе, а она!
Но не этом дело. Подобная постановка задачи – насмешка над здравым смыслом. Если задача не имеет решения, это что значит? Школу закрываем? Если не закрываем, то что делать дальше? Перебирать отключение/включение ограничений по посинения и пытаться рассчитывать расписание каждый раз?
Все эти вопросы решаются довольно просто – каждое требование имеет свою «цену». Решение есть всегда – нужно максимизировать суммарный «цену» требований. Разумеется, выполнение учебного плана – самое ценное. Так как решение есть при «любых» требованиях, всегда можно получить расписание. Далее нужно анализировать само расписания и нарушенные требования. В подавляющем числе случаев этот анализ подсказывает, что делать дальше и РЕАЛЬНО позволяет получать очень хорошее расписание.
Я пытаюсь представить вашу организацию, у которой 10000 задач в день, чтобы в ней все было гладко. Вероятность того, что случится срыв сроков равна 1. Не бывает такого, чтобы сроки не срывались. Опаздывают самолеты, поезда, военные, милиция, скорая, педанты и т.д. Т.е. в вашей постановке задачи точно такие же проблемы, как и студента в составлении расписания.

Часть 2: расписание для ВУЗов
Пара студентов решила написать диплом на тему составления расписания для ВУЗов. Я им посоветовал для простоты не связываться с под/над чертой. Чтобы они могли что-либо продемонстрировать, я предложил им решать последовательно задачи распределения занятий по дням, а потом для каждого дня отдельно найти время проведения занятий. И использовать пакет линейной оптимизации для решения этих задач.
Эти балбесы создали одну огромную двухнедельную модель (вместо семи маленьких) для расписания на потоке. А потом меня спрашивают, а почему оптимизатор долго считает, а полученный результат плохой?
Хотелось ответить «да потому что слушать надо, что вам говорят». При распределении занятий по дням недели надо дополнительно включать условие устойчивости. Это в некоторой степени гарантирует в дальнейшем возможность получения хорошего расписания в течение каждого дня. При этом такой подход – задачи вполне решаемые, а результат практически оптимальный. Для получения двухнедельного расписания есть еще один трюк, но не суть.
Мораль сей басни такова – хотите получить решение низкого качества при огромных вычислительных затратах? Это очень просто! Составьте одну большую модель. Не много времени пройдет от воодушевленного энтузиазма до полного уныния. Весело было наблюдать, как менялся тон студенческих писем от «страстного желания создать вожделенную программу» до «быстрее отделаться от этой задачи и больше к ней никогда не возвращаться».
Если бить задачу на части - но это уже акт другой комедии...

Часть 3: расписание для производства.
Не буду утомлять деталями, но суть такова. Ситуация была примерно как с вашей задачей. Обратившемуся товарищу я сразу сказал – не сможешь составить адекватную, применимую в реальности модель. Говорю, пойдем к вашему руководству, заключим договор, и будем работать. «Вы быстро научитесь, я получу деньги, а предприятие – снижение издержек». Он выразился в том смысле, что надо сначала показать модель, пусть «медленную», - чтобы было доверие руководства. Я заподозрил неладное, и составил модель так, что она могла работать только на малых объемах данных. Товарищ решил, что я больше ему не нужен, и он сам дальше решит все вопросы. Как я понял, ему было важно доказать руководству, что он может решать задачи адской сложности. Ну, а я бы подпортил его имидж. На этом и расстались.
Примерно через года полтора на форуме линейного программирования вижу сообщение примерно такого содержания. «Сами мы не местные, но очень нужен БЕСПЛАТНЫЙ пакет оптимизации, которые быстро решает такую то задачу с суть астрономическим объемом данных. И далее следовала моя «подлая» постановка задачи...».
К гадалке ходить не нужно, чтобы догадаться, каков будет финал этой истории. Только убытки на зарплату этого товарища за время его деятельности составят несколько десятков тысяч долларов. И это не считая, сколько времени он отнял у остальных и сколько составят неоптимальных издержки компании.

На этом можно закрывать занавес. Хотите решить задачу сами – присылайте по завершении материал для четвертой части комедии... Хотя, можете позвать французов из бывшего ILOG, будет недорого. Думаю, на 1500 евро в день сторгуетесь.

P.S. Что-то никто не классифицирует, что описанная задача NP-полна. Что происходит?

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение08.09.2009, 22:28 


06/09/09
9
Спасибо.
Почитав интернет по этой тематике, наткнулся на множество повторений частей 1 и 2 :)

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

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение09.09.2009, 19:36 


17/10/08

1313
Вам для каждой работы нужно указать время начала и назначить работника. Если даже каждый десятый может выполнить работу, то количество переменных в задаче будет примерно 10млн. Для генетического алгоритма и 2 целочисленные переменные могут быть проблемой.
Лучшее что можно сделать с помощью генетического алгоритма – это придумать стратегии получения решения. Например, один шаг такой стратегии – выбор работы и назначение сотрудника. Потом сделать смесь этих стратегий с помощью переменных, подбираемых генетическим алгоритмом.
Что касается практического применения этого … если заказчик не даст в морду, то это будет большое везение.

 Профиль  
                  
 
 Re: Задача составления расписания
Сообщение02.08.2011, 13:09 


02/08/11
1

(Оффтоп)

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

рекламная ссылка удалена. //cepesh

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group