QSumCi — различия между версиями
Строка 1: | Строка 1: | ||
<includeonly>[[Категория: В разработке]]</includeonly>{{Задача | <includeonly>[[Категория: В разработке]]</includeonly>{{Задача | ||
− | |definition = Есть несколько станков с разной скоростью выполнения работ и несколько работ с заданным временем выполнения. | + | |definition = Есть несколько станков с разной скоростью выполнения работ и несколько работ с заданным временем выполнения.<br>Цель {{---}} составить такое расписание, чтобы суммарное время окончания всех работ было минимальным.}} |
− | |||
− | Цель {{---}} составить такое расписание, чтобы суммарное время окончания всех работ было минимальным.}} | ||
==Алгоритм решения== | ==Алгоритм решения== | ||
Пусть <tex> i_1, i_2, \cdots i_r </tex> последовательность работ, выполняемых на станке с номером <tex> j </tex>. Тогда вклад этих работ в целевую функцию будет равен <tex> p_{i1}\cfrac{r}{s_j} + p_{i2}\cfrac{r-1}{s_j} + \cdots + p_{ir}\cfrac{1}{s_j} </tex>. [[Задача_о_минимуме/максимуме_скалярного_произведения|Отсюда]] видно, что сумма оптимальна, когда последовательность <tex> p_{ij} </tex> не убывает. | Пусть <tex> i_1, i_2, \cdots i_r </tex> последовательность работ, выполняемых на станке с номером <tex> j </tex>. Тогда вклад этих работ в целевую функцию будет равен <tex> p_{i1}\cfrac{r}{s_j} + p_{i2}\cfrac{r-1}{s_j} + \cdots + p_{ir}\cfrac{1}{s_j} </tex>. [[Задача_о_минимуме/максимуме_скалярного_произведения|Отсюда]] видно, что сумма оптимальна, когда последовательность <tex> p_{ij} </tex> не убывает. |
Версия 00:52, 13 июня 2015
Задача: |
Есть несколько станков с разной скоростью выполнения работ и несколько работ с заданным временем выполнения. Цель — составить такое расписание, чтобы суммарное время окончания всех работ было минимальным. |
Алгоритм решения
Пусть Отсюда видно, что сумма оптимальна, когда последовательность не убывает. Теперь введем неубывающую последовательность , которая состоит из минимальных элементов из множества . Тогда показывает на каком станке и какой по счету с конца должна выполняться работа с номером в отсортированном по длительности списке работ. Сопоставляя работы и составляем расписание.
последовательность работ, выполняемых на станке с номером . Тогда вклад этих работ в целевую функцию будет равен .Теорема: |
Приведенный алгоритм верен. |
Доказательство: |
|
Время работы
Начальная сортировка работ занимается
времени. Затем происходит выбор минимальных коэффициентов, посредством приоритетной очереди время работы составит . Итого суммарное время работы .Источники информации
- Peter Brucker Scheduling Algorithms — Springer, 2006. — с. 133. — ISBN 978-3-540-69515-8