У меня есть список задач, которые имеют 3 параметра, которые необходимо учитывать при планировании: время выпуска, продолжительность и срок.
Время выпуска - самое раннее возможное время начала задачи. Продолжительность - количество времени, затрачиваемое на выполнение задачи. Срок - самое позднее возможное время окончания задачи.
Например, ввод:
4
2 3 5
4 2 8
1 2 6
6 4 11
Это означает, что есть 4 задачи, как указанопервая строка.Начиная со следующей строки, первый столбец - время выпуска, второй столбец - продолжительность, а третий столбец - крайний срок для каждой задачи.
Способ планирования этих задач будет следующим:
Time Task
1-2 3
2-5 1
5-6 3
6-8 2
8-12 4 <--- Deadline Violation
Цель состоит в том, чтобы написать алгоритм для планирования задач так, чтобы количество нарушений было сведено к минимуму .
Итак, для вышеприведенного случая мы должны иметь вывод:
1 2 3
2 5 1
5 6 3
6 8 2
8 12 4
, где первый столбец - время начала, второй столбец - время окончания, а третий столбец - номер задачи.
Я думаю, что для этой цели нам нужно использовать жадный алгоритм, но я не совсем уверен.
Поэтому я ищу возможные алгоритмы / подходы для решения этой проблемы.