PpmtnriLmax — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 12: | Строка 12: | ||
== Решение == | == Решение == | ||
− | [[Файл:Figure_5.2.png|400px|thumb|right|Рис. 1 | + | [[Файл:Figure_5.2.png|400px|thumb|right|Рис. 1. Cеть]] |
Сведем эту задачу к поиску максимального потока в сети, построенной указанным ниже образом. | Сведем эту задачу к поиску максимального потока в сети, построенной указанным ниже образом. | ||
Строка 34: | Строка 34: | ||
Для решения данной задачи мы используем бинпоиск по <tex>L</tex> значениям, а значит, получаем алгоритм с <tex>\varepsilon</tex>-приближенной сложностью <tex>O (n^3(\log(n) + \log(\cfrac{1}{\varepsilon}) + \log(\max\limits_{j=1 \ldots n} (p_j))) </tex>, потому как <tex>L_{max}</tex>, ограничен <tex>n\max\limits_{j=1 \ldots n} (p_j)</tex> | Для решения данной задачи мы используем бинпоиск по <tex>L</tex> значениям, а значит, получаем алгоритм с <tex>\varepsilon</tex>-приближенной сложностью <tex>O (n^3(\log(n) + \log(\cfrac{1}{\varepsilon}) + \log(\max\limits_{j=1 \ldots n} (p_j))) </tex>, потому как <tex>L_{max}</tex>, ограничен <tex>n\max\limits_{j=1 \ldots n} (p_j)</tex> | ||
− | [[Категория: | + | [[Категория: Алгоритмы и структуры данных]] |
[[Категория: Теория расписаний]] | [[Категория: Теория расписаний]] |
Текущая версия на 19:27, 4 сентября 2022
Задача: |
|
Решение
Сведем эту задачу к поиску максимального потока в сети, построенной указанным ниже образом.
Пусть
- упорядоченная последовательность и . Определим интервалы с длиной для всех .Работам
сопоставим свой тип вершин, а интервалам свой. Добавим две фиктивные вершины и . Вершина соединена с вершинами ребрами с пропускной способностью , вершина соединена с вершинами ребрами с пропускной способностью . Ребро между вершиной и вершиной существует, если . Пропускная способность этого ребра - .Нетрудно понять, что расписание существует, если максимальный поток через эту сеть равен
.Если это так, то поток
на дуге соответствует тому, что работа будет выполняться во временном интервале , и будет справедливо следующее:- для всех ребер
Исходя из этого, расписание строится выполнением работы
с временем выполнения в интервале .Т.к. сеть содержит
элементов, значит максимальный поток в ней можно найти за . Кроме того, построение "окон" выполнения работ займет . Т.о. указанный выше алгоритм потребует операций.Для решения данной задачи мы используем бинпоиск по
значениям, а значит, получаем алгоритм с -приближенной сложностью , потому как , ограничен