R2Cmax
Постановка задачи
Дано два разных неоднородных станка, которые работают параллельно. Есть работ, время выполнения которых на первом и втором станке различное. Нужно минимизировать время завершения всех работ.
Сложность задачи
Задача является -полной задачей.
Неэффективное решение
Переберём все битовые последовательности из элементов. Для каждой перестановки вычислим завершение последней работы. Работы будем выполнять следующим образом, если на -й позиции стоит 0, то -ая работа будет выполняться на первом станке, иначе на втором. Среди всех перестановок выберем ту перестановку, у которой минимальный.
Время работы алгоритма
Эффективное решение
Применим для решения данной задачи динамическое программирование.
Будем считать , в котором будем хранить минимально время выполнения работ на втором станке, где означает, что мы рассмотрели работ, а с каким временем выполнения работ на первом станке.
Изначальное значение .
