1rjpjpsumwjcjиsumtj — различия между версиями
Romanosov (обсуждение | вклад) м |
Romanosov (обсуждение | вклад) м (→Корректность алгоритма) |
||
| Строка 42: | Строка 42: | ||
==Корректность алгоритма== | ==Корректность алгоритма== | ||
| + | Ниже приведена теорема, показывающая, что возвращаемое алгоритмом значение <tex>F_k (s, e)</tex> равно <tex>F^*_k (s, e)</tex>. | ||
| + | {{Теорема | ||
| + | |statement= | ||
| + | Для любого <tex>k = 0, \dots, n</tex> и для любого <tex>s, e \in T \mid s \leqslant e</tex>, выполняется: <tex>F_k (s, e) = F^*_k (s, e)</tex>. | ||
| + | |proof= | ||
| + | PROOF | ||
| + | }} | ||
==Другие задачи== | ==Другие задачи== | ||
==Источники информации== | ==Источники информации== | ||
Версия 23:44, 6 июня 2016
| Задача: |
| Дано работ и станок. Для каждой работы известны время появления , вес и дедлайн . Время выполнения всех работ равно . Требуется выполнить все работы так, чтобы значение , где — время окончания работы, было минимальным. |
| Задача: |
| Дано работ и станок. Для каждой работы известны время появления , вес и дедлайн . Время выполнения всех работ равно . Требуется выполнить все работы так, чтобы значение — суммарной медлительности работы () — было минимальным. |
Содержание
Предисловие
Аналогично задаче , данные задачи решаются при помощи динамического программирования.
Вместо критериев оптимизации и возьмём более общую для них функцию вида , где функции обладают следующими свойствами:
- не убывает для всех ;
- не убывает для всех при .
Функции и удовлетворяют данным условиям, если отсортировать работы так, что и .
Алгоритм
Отсортировать работы так, чтобы удовлетворяла условиям неубывания; for s, e T : s e (s, e) = 0; for k = 1..n for s, e T : s e if else , где return
Время работы
Корректность алгоритма
Ниже приведена теорема, показывающая, что возвращаемое алгоритмом значение равно .
| Теорема: |
Для любого и для любого , выполняется: . |
| Доказательство: |
| PROOF |