Программное обеспечение на основе ограничений, чтобы помочь с планированием

Обзор

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

Я ищу программное обеспечение, которое будет составлять расписание для меня. Я пробовал TaskJuggler, но я не уверен, способен ли он делать то, что я хочу (документация бесполезна, и люди в списке рассылки просто говорят мне прочитать документацию - что я и сделал без окончательных результатов) ).

Кто-нибудь может порекомендовать что-нибудь?

Подробности

Пример расписания

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

Примеры ограничений

Вот некоторые из моих ограничений:

  • Все запланированные обязанности должны быть можно указать вручную.
  • У каждого учителя должно быть ровно два выходных. Некоторые выходные определяются как обязательные рабочие выходные; ни у одного учителя не может быть выходных. Другие выходные могут быть обязательными в выходные дни; такие выходные не имеют запланированных обязанностей и учитываются в течение двух выходных каждого учителя. Наконец, могут быть и другие выходные, у которых нет назначенных обязанностей, но, тем не менее, они не учитываются в двух выходных учителей.
  • Обязанности должны быть распределены как можно более равномерно. Это означает, что, насколько это возможно, у каждого учителя должно быть заданное задание одинаковое количество раз, у каждого разное задание равное количество раз и равный вес обязанностей в данный уик-энд (см. Ниже весовые обязанности). Там, где это невозможно, избыточные обязанности должны быть сбалансированы между учителями. В идеале, избыточные обязанности должны планироваться с учетом предпочтительных обязанностей каждого учителя; таким образом, учитель, который предпочитает детскую историю, может получить ее в дополнительное время вместо того, кому она действительно не нравится.
  • Ни один учитель не должен выполнять одни и те же обязанности в течение нескольких недель подряд.
  • Никаких учителей нельзя запланировать на выходные.
  • Ни один учитель не может иметь одновременные обязанности.
  • Главные обязанности - TGIF и проповедь.
  • Ни у одного учителя не должно быть другого долга в тот же день, когда они назначены на главную обязанность.
  • Ни один учитель не должен иметь более одной основной обязанности в неделю.
  • Если возможно, ни у одного учителя не должно быть основной обязанности в течение нескольких недель подряд. Это, однако, не является особенно высокоприоритетным ограничением.
3
задан 17 August 2015 в 15:02

2 ответа

Я бы использовал приложение календаря, такое как «Молния в Thunderbird», и у меня были установлены повороты как повторяющиеся события в календаре. Таким образом, если вы начинаете в 9:00 и вам нужно переключаться каждые полчаса, установите будильники на 9:30, 10:00 и т. Д. С описанием смен для каждого события.

Найти приложение, которое выполняет эту задачу исключительно, было бы довольно сложно, так как оно должно было бы быть специально написано для этого типа работы. Там может быть что-то, что сделало бы эту работу, но я не слышал об этом. Я считаю, что календарь должен быть полезен, пока вам не удастся найти что-то более конкретное.

0
ответ дан 17 August 2015 в 15:02

Мне удалось обойти эту проблему, наконец. По-видимому, такого программного обеспечения, которого я ищу, не существует, и у меня нет ни времени, ни опыта, чтобы писать его самостоятельно.

Вот что я в итоге сделал:

  • Во-первых, я изменил порядок столбцов в моем графике, чтобы было проще увидеть мои ограничения с первого взгляда, за счет немного меньших затрат. логический порядок.
  • Совсем недавно я переключил свое расписание с LibreOffice Calc на электронную таблицу Документов Google. Я потерял много возможностей форматирования, но я получил некоторую возможность написания сценариев. (Я никогда не мог понять, как написать макрос для LO или OOo; их документация абсолютно ужасна.)
  • Затем я написал скрипт в Google Apps, который дает мне несколько кнопок, которые, когда я нажимаю их, выделите все ячейки с одинаковым содержимым. Это позволяет мне вручную проверить правильность моего расписания. Вот пример моего расписания.

Этот подход не совсем то, что я хотел, но он работает достаточно хорошо.

0
ответ дан 17 August 2015 в 15:02

Другие вопросы по тегам:

Похожие вопросы: