Распределение работ по взаимозаменяемым исполнителям с целью минимизации суммарного запаздывания.
Один алгоритм уже есть и он реализован.
Нужно разработать ещё один алгоритм и написать программу (Python, в которой i работ распределяются по j исполнителям (взаимозаменяемым). Каждая работа имеет свой срок, а каждый исполнитель может сделать его за срок тот же или больше.
Необходимо сделать так, чтобы распределение работ было оптимально и в конце было минимальное запаздывание (так как исполнители могут не укладываться в срок).
Задается количество исполнителей и работ.
В выводе поступает строка с директивными сроками di каждой работы и матрица длительности pij (по горизонтали - работы i, по вертикали - исполнители j).
Матрица длительности примерно так:
|i1 |i2 |i3|i4 ...| di
j1| pi1j1 | pi2j1 | ... | ... |
j2| pi2j2 |.... |
j3|.... |
Исходные данные:
- i - номер работы,
- j - номер исполнителя,
- pij - матрица длительности,
- di - директивные сроки - момент времени, к которому желательно завершить обслуживание.
Далее идет расписание с оптимальным распределением задач по исполнителям.
- номер работы,
- номер исполнителя,
- Pij - длительность, чтобы проверить то ли было дано, ту ли длительность работы мы использовали
- Mi - момент начала
- Ci - момент окончания - например, 0 или больше 0 (если запаздывание).
- di - директивные сроки
- Ti - запаздывание
- Сумм.Ti - суммарное запаздывание
Эти данные выводим, чтобы потом вручную на картинке сделать расписание и убедиться, не получается ли так что работы накладываются (одна работа начинается в одно время, а другая работа как бы начинается раньше, но заканчивается позже первой, что получается накладка).
Если есть вопросы - пишите. Также можно в телеграмм. Цена - договорная