Страницы: 1
RSS
Подбор оптимального графика
 
Доброй ночи, дамы и господа!

Подскажите, пожалуйста, как лучше  подойти к решению вопроса (в Excel или при помощи Python) подбора  оптимального графика смен сотрудников?

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

Подробнее в файле.

Я подходил к  решению задачи со стороны Solver в Excel и при помощи жадного алгоритма в  Python, но, к сожалению, не сдвинулся с мёртвой точки.

Заранее благодарю за помощь.
 
ремарка
 
Добрый день! Посмотрите вариант в файле. Попробуйте расписать все возможные смены и подобрать сочетание из этого списка.
 
нашел 4 решения. Выбирайте любое. Со сменами не понял: 3/3 - это 3 работаем и 3 отдыхаем? Т.е. вариант {1, 1, 1, 0, 0, 0, 1} для этой "смены" подойдет? Непонятно. Добавьте недостающие / поменяйте неправильные варианты смен в их определении при необходимости.
перебор

Изменено: AlienSx - 25.05.2024 14:29:09
Пришелец-прораб.
 
AlienSx, Огромное спасибо!

По сменам - да, дополнил возможными вариантами.
Единственное - если число смен не равно числу задач в любой из возможных дней недели, то запрос не срабатывает.
Подскажите, пожалуйста, можно внести правки, чтобы рассматривались варианты, когда задач больше или меньше чем смен?
 
Цитата
AlexseiA написал:
если число смен не равно числу задач в любой из возможных дней недели, то запрос не срабатывает.
переведи Запрос ищет точное решение. Что значит не срабатывает? Не находит ничего? Ну, значит, точного решения нет.
Цитата
AlexseiA написал:
можно внести правки, чтобы рассматривались варианты, когда задач больше или меньше чем смен?
Можно, конечно. Сейчас это полное соответствие "поставленной задаче" с точностью до дня недели. "Целевой функцией", на основе которой можно построить выборку (фильтрацию) нужных вариантов, может быть что угодно. Например, покажи варианты, когда в любой день недели расхождение с целью не превышает величину X. Или же сумма расхождений за неделю (сумма по модулю за каждый день или всего за неделю +/- по модулю) не больше, чем Y. Код строит все варианты и потом фильтрует нужные. Сейчас примерно половина кода работает на то, чтобы представить результат в нужном виде (сводная таблица). Но это можно поменять. И что делать дальше с полученными результатами, как их сравнивать с "целью", что удалить, а что оставить - решать только вам.
Пришелец-прораб.
Страницы: 1
Наверх