Планирование сотрудников с требуемыми наборами навыков на основе проектов различной продолжительности, с несколькими задачами, все из которых длятся несколько дней
добрый день,
Я работаю над решением проблемы планирования для компании. Вот несколько фактов:
Компания начинает проекты до нескольких раз в неделю. В этом году у них есть 75 проектов, которые либо уже стартовали, либо начнутся до конца года. Независимо от того, когда проект будет завершен, все они считаются проектами 2018 года, если они начинаются в любой день 2018 года.
Каждый проект состоит из заранее определенного набора задач.
Каждая задача может потребовать различного количества механиков с различными специализированными наборами навыков. Однако любой механик с необходимым набором навыков может работать над любой задачей, требующей их набора навыков.
Каждая задача также должна выполняться в конкретной мастерской и требует специальных инструментов.
Некоторые задачи требуют одних и тех же инструментов, а некоторые-нет. Инструменты рассматриваются не как заранее упакованные наборы, а как индивидуальные потребности для конкретной задачи, которая выполняется.
Чтобы максимально повысить эффективность планирования для механиков, мастерских, инструментов, каждый проект может следовать одному из 8 различных проектов.
Проекты могут длиться от 2 часов до нескольких сотен рабочих дней.
Задания могут длиться от 15 минут до 8 часов.
Рабочий день длится 8 часов с 1 часовым перерывом на обед.
Некоторые рабочие дни длятся 12 или 14 часов. Однако каждый из этих дней происходит в определенное время в зависимости от того, какой проект используется.
Я могу создать составное расписание работы для проектов. Компания работает только с понедельника по пятницу и снимает признанные праздники. Поскольку дата начала проекта запланирована заранее, мы можем легко разработать ежедневный график выполнения задач, используя простые SQL-запросы.
Трудная часть и причина моего поста-это определение минимального количества механиков, которые компания должна иметь на дежурстве каждый день для выполнения запланированных задач. А также определение часов, которые нам нужно запланировать, чтобы эти механики работали каждый день.
Что я уже пробовал:
Я использовал базовый SQL, чтобы определить, какие часовые периоды времени в течение дня требуют дежурства механиков и сколько их должно быть доступно в течение каждого указанного периода времени. Однако это не дает ответа на главный вопрос: "каково минимальное количество механиков, которые должны дежурить каждый день?"
Кто-нибудь сталкивался с подобной ситуацией? Есть ли у кого-нибудь рекомендации, как рассчитать это число?
CHill60
- Кто-нибудь сталкивался с подобной ситуацией? - ...Только в качестве упражнения для моей курсовой работы.
- У кого-нибудь есть рекомендации, как вычислить это число? "- вы уже разработали "сколько должно быть доступно в течение каждого указанного периода времени", поэтому минимальное количество механиков, которые должны дежурить каждый день, безусловно, является максимальным количеством механиков, необходимых для любого временного интервала в этот день?