Задача на построение расписания

101
24 января 2021, 17:50

Есть такая задача: 30 работников отметили дни в которые они бы хотели работать ,а в какие отдыхать.

Есть 8 компьютеров за которыми они работают в 2 смены. Алгоритм должен расставить смены работников на следующий месяц максимально близко к их пожеланиям, так чтобы на выходе получилось готовое расписание.

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

Сложность решения(в математическом плане) в принципе не особо важна, т.к это все будет крутиться на весьма мощном сервере.

Хотелось бы понять в какую сторону вообще копать, в идеале название алгоритма который бы это реализовывал.

UPD.

Рабочий график каждого 2/2,следовательно ситуация в которой человек сидит сутки на работе - нереальна совсем забыл это указать.

Answer 1

В Исследовании Операций изучаются задачи подобные вашей - Задача о ранце, Задачи составления расписания и др. Смотрите соответствующие материалы, скорее всего точно вашей задачи и не найдете, но среди разновидностей этих задач - а их сотни - удастся найти что-то близкое.

Однако есть сильное предположение, что такие задачи обычно относятся к задачам, единственным методом решения которых есть полный перебор. В этом случае надо сформулировать критерий по которому вы будете сравнивать варианты "раскладок работников по рабочим дням". (Простейший вариант - сколько пожеланий учтено, а сколько - нет). И тупо перебирать варианты. Тем более задача решается раз в месяц, и потратить на ее решение пару (десятков) часов - в общем-то не проблема.

READ ALSO
C# htmlAgilityPack как получить строку в теге strong

C# htmlAgilityPack как получить строку в теге strong

У меня есть такой xPath локатор

103
Не получается передать null в Expression

Не получается передать null в Expression

Есть такой рабочий код:

85
EF Core странно кешируется внутри Scope

EF Core странно кешируется внутри Scope

Поймал багу с Entity Framework Core 22 (Npgsql) и не могу понять, что происходит за кулисами, в чем и прошу помочь разобраться

107
C# При обращении к процедуре ошибка PLS-00306

C# При обращении к процедуре ошибка PLS-00306

Собственно при таком раскладе происходит эта ошибка (смвложения) два варианта обращения к процедуре, с разным аргументом, необходимы по причине...

92