QSumCi
Версия от 17:37, 21 июня 2012; 194.85.161.2 (обсуждение)
Постановка задачи
Есть несколько станков с разной скоростью выполнения работ и несколько работ с заданным временем выполнения.
Цель - составить такое расписание, чтобы суммарное время окончания всех работ было минимальным.
Алгоритм решения
Пусть
последовательность работ, выполняемых на станке с номером . Тогда вклад этих работ в целевую функцию будет равен . Отсюда видно, что сумма оптимальна, когда последовательность не убывает. Теперь введем неубывающую последовательность , которая состоит из маленьких элементов из множества . Если , то на станкеПсевдокод
for i=1 to m do Pj = f; wj=1/sj for i=1 to n do Find the largest index j of wj = min po m (w); pj = i+pj wj = wj+1/pj