R2Cmax — различия между версиями
Niko (обсуждение | вклад) (Новая страница: «<div style="background-color: #ABCDEF; font-size: 16px; font-weight: bold; color: #000000; text-align: center; padding: 4px; border-style: solid; border-width: 1p...») |
(→Эффективное решение) |
||
Строка 15: | Строка 15: | ||
==Эффективное решение== | ==Эффективное решение== | ||
− | + | Применим для решения данной задачи динамическое программирование. | |
+ | |||
+ | Будем считать <tex>dp[i][j]</tex>, в котором будем хранить минимально время выполнения работ на втором станке, где <tex>i</tex> означает, что мы рассмотрели <tex>i</tex> работ, а <tex>j</tex> с каким временем выполнения работ на первом станке. | ||
+ | |||
+ | Изначальное значение <tex>dp[0][0] = 0</tex>. |
Версия 01:33, 17 июня 2012
Эта статья находится в разработке!
Постановка задачи
Дано два разных неоднородных станка, которые работают параллельно. Есть
работ, время выполнения которых на первом и втором станке различное. Нужно минимизировать время завершения всех работ.Сложность задачи
Задача
является -полной задачей.Неэффективное решение
Переберём все битовые последовательности из
элементов. Для каждой перестановки вычислим завершение последней работы. Работы будем выполнять следующим образом, если на -й позиции стоит 0, то -ая работа будет выполняться на первом станке, иначе на втором. Среди всех перестановок выберем ту перестановку, у которой минимальный.Время работы алгоритма
Эффективное решение
Применим для решения данной задачи динамическое программирование.
Будем считать
, в котором будем хранить минимально время выполнения работ на втором станке, где означает, что мы рассмотрели работ, а с каким временем выполнения работ на первом станке.Изначальное значение
.