Обсуждение участницы:Анна — различия между версиями
Анна (обсуждение | вклад) |
Анна (обсуждение | вклад) (→Доказательство корректности) |
||
| Строка 19: | Строка 19: | ||
Таким образом, работы, не попавшие в <tex>S</tex>, будут иметь минимальное значение <tex>w_i</tex>. | Таким образом, работы, не попавшие в <tex>S</tex>, будут иметь минимальное значение <tex>w_i</tex>. | ||
== Доказательство корректности == | == Доказательство корректности == | ||
| + | {{Теорема | ||
| + | |statement= | ||
| + | Вышеописанный алгоритм корректен и строит оптимальное множество работ <tex>S</tex>. | ||
| + | |proof= | ||
| + | Пусть <tex>S</tex> {{---}} множество работ, вычисленное с помощью алгоритма. Тогда все работы, находящиеся в этом множестве, будут выполнены в срок | ||
| + | }} | ||
Версия 10:26, 5 мая 2016
| Задача: |
| Дано одинаковых станков, на которых нужно выполнить работ. Любая работа на любом станке выполняется единицу времени. Для каждой работы есть время окончания — ожидается, что до этого времени она будет закончена, и штраф , который нужно будет выплатить в случае, если работа была закончена после . Необходимо минимизировать суммарный штраф, который придется выплатить. |
Описание алгоритма
Оптимальное расписание для этой задачи будем задавать множеством работ , за которые штраф начислен не будет. Работы, которые завершатся с опозданием, могут быть выполнены в конце в любом порядке.
Чтобы построить множество , будем добавлять работы в порядке неуменьшения их времен окончания, и как только некоторая работа опаздывает, удалим из работу с минимальным значением и поставим на ее место.
Пусть есть работы с временами окончания . Будем называть простоем временной интервал, в который на машине ничего не обрабатывается. Тогда следующий алгоритм вычислит оптимальное множество .
S = for j = 1 to n: if j опаздывает, и все более ранние простои заполнены: найти i: w[i] = (w[k]) if w[i] < w[j]: заменить i на j в S else: добавить i в S и поставить i на место самого раннего простоя
Таким образом, работы, не попавшие в , будут иметь минимальное значение .
Доказательство корректности
| Теорема: |
Вышеописанный алгоритм корректен и строит оптимальное множество работ . |
| Доказательство: |
| Пусть — множество работ, вычисленное с помощью алгоритма. Тогда все работы, находящиеся в этом множестве, будут выполнены в срок |