PpmtnriLmax — различия между версиями
 (→Решение)  | 
				м (rollbackEdits.php mass rollback)  | 
				||
| (не показаны 2 промежуточные версии 2 участников) | |||
| Строка 12: | Строка 12: | ||
== Решение ==  | == Решение ==  | ||
| − | [[Файл:Figure_5.2.png|400px|thumb|right|Рис. 1   | + | [[Файл:Figure_5.2.png|400px|thumb|right|Рис. 1. Cеть]]  | 
Сведем эту задачу к поиску максимального потока в сети, построенной указанным ниже образом.  | Сведем эту задачу к поиску максимального потока в сети, построенной указанным ниже образом.  | ||
Текущая версия на 19:27, 4 сентября 2022
| Задача: | 
  | 
Решение
Сведем эту задачу к поиску максимального потока в сети, построенной указанным ниже образом.
Пусть - упорядоченная последовательность и . Определим интервалы с длиной для всех .
Работам сопоставим свой тип вершин, а интервалам свой. Добавим две фиктивные вершины и . Вершина соединена с вершинами ребрами с пропускной способностью , вершина соединена с вершинами ребрами с пропускной способностью . Ребро между вершиной и вершиной существует, если . Пропускная способность этого ребра - .
Нетрудно понять, что расписание существует, если максимальный поток через эту сеть равен .
Если это так, то поток на дуге соответствует тому, что работа будет выполняться во временном интервале , и будет справедливо следующее:
- для всех ребер
 
Исходя из этого, расписание строится выполнением работы с временем выполнения в интервале .
Т.к. сеть содержит элементов, значит максимальный поток в ней можно найти за . Кроме того, построение "окон" выполнения работ займет . Т.о. указанный выше алгоритм потребует операций.
Для решения данной задачи мы используем бинпоиск по значениям, а значит, получаем алгоритм с -приближенной сложностью , потому как , ограничен