Назначение задач сотрудникам с учетом объема и продолжительности задачи - PullRequest
0 голосов
/ 09 апреля 2020

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

Tasks       Employee    Duration    Priority
Task1       A           10          1
Task2       A           30          2
Task3       B           40          1
Task4       B           5           2
Task5       C           10          1
Task6       C           15          2
Task7       C           10          3


Employee    Date       Capacity
A           20200101   30
A           20200102   30
B           20200101   10
B           20200102   50
C           20200101   20
C           20200102   20 

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

Tasks       Employee    Duration    Priority    Date
Task1       A           10          1           20200101  
Task2       A           30          2           20200101
Task3       B           40          1           20200102
Task4       B           5           2           20200101
Task5       C           10          1           20200101
Task6       C           15          2           20200102
Task7       C           10          3           20200101  

Моя первая идея - создать все это в pandas фреймах данных и создать словарь сотрудников. Но я не уверен, как выполнить l oop через словарь сотрудников при обращении к кадру данных Capacity, чтобы найти емкость для сотрудника. Я создал еще один столбец в моем кадре данных емкости, который называется «использованная мощность», полагая, что он поможет мне суммировать продолжительность и использовать ее для сравнения с фактической емкостью. Я сейчас немного растерян, где go.

Мои исследования привели меня к проблеме ранца, которая, на мой взгляд, похожа, но я не совсем уверен, как применить ее принципы к этому. Это как если бы вам сказали, какой порядок предметов нужно упаковать, все предметы должны были принадлежать указанному c рюкзаку.

Как я могу go о создании моего выходного кадра данных?

...