Hardprob/Minimum Preemptive Scheduling With Set-Up Times — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) (Новая страница: «<!-- start --><!-- {{svg-image-for-hard-problem|{{PAGENAME}}}} --> * Набор компиляторов <em>C</em>, набор задач <em>T</em>, <em>m</em>…») |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
<!-- start --><!-- {{svg-image-for-hard-problem|{{PAGENAME}}}} --> | <!-- start --><!-- {{svg-image-for-hard-problem|{{PAGENAME}}}} --> | ||
* Набор компиляторов <em>C</em>, набор задач <em>T</em>, <em>m</em> процессоров, длительности задач <m>l(t)\in Z^+</m>, нужный для задачи компилятор <m>c(t)\in C</m>, время запуска-настройки для каждого компилятора <m>s(c)\in Z^+</m>. | * Набор компиляторов <em>C</em>, набор задач <em>T</em>, <em>m</em> процессоров, длительности задач <m>l(t)\in Z^+</m>, нужный для задачи компилятор <m>c(t)\in C</m>, время запуска-настройки для каждого компилятора <m>s(c)\in Z^+</m>. | ||
− | * Найти <em>m</em>-процессорное [https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%82%D0%B5%D1%81%D0%BD%D1%8F%D1%8E%D1%89%D0%B0%D1%8F_%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C | + | * Найти <em>m</em>-процессорное [https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%82%D0%B5%D1%81%D0%BD%D1%8F%D1%8E%D1%89%D0%B0%D1%8F_%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C вытесняющее расписание] <em>T</em>, т.е. для каждой для каждой задачи <m>t\in T</m>, разбиение <em>t</em> на какое-то количество подзадач <m>t_1, \ldots, t_k</m>, такое что |
** <m>\sum_{i=1}^k l(t_i) = l(t)</m> | ** <m>\sum_{i=1}^k l(t_i) = l(t)</m> | ||
** и есть некоторое назначение <m>\sigma = (\sigma_1, \sigma_2)</m>, которое назначает каждой подзадаче <m>t_i</m> пару неотрицательных целых <m>(\sigma_1(t_i), \sigma_2(t_i))</m>, таких, что | ** и есть некоторое назначение <m>\sigma = (\sigma_1, \sigma_2)</m>, которое назначает каждой подзадаче <m>t_i</m> пару неотрицательных целых <m>(\sigma_1(t_i), \sigma_2(t_i))</m>, таких, что |
Версия 16:34, 12 апреля 2023
- Набор компиляторов C, набор задач T, m процессоров, длительности задач , нужный для задачи компилятор , время запуска-настройки для каждого компилятора .
- Найти m-процессорное вытесняющее расписание T, т.е. для каждой для каждой задачи , разбиение t на какое-то количество подзадач , такое что
- и есть некоторое назначение , которое назначает каждой подзадаче пару неотрицательных целых , таких, что
- Это расписание должно удовлетворять дополнительному ограничению:
- Если два подзадачи от t и от t', у которых запланированы последовательно на одном процессоре (т.е. , и нет другой подзадачи , у которой и , то
- — если у них один и тот же компилятор (c(t) = c(t'))
- — если эти компиляторы разные.
- Если два подзадачи от t и от t', у которых запланированы последовательно на одном процессоре (т.е. , и нет другой подзадачи , у которой и , то
- Минимизировать общее время выполнения, т.е. максимум по всем подзадачам
Задача в лаб22 (рид-онли просмотр)
- Задача в базе NP-полных задач Вигго Кана
- Код задачи в книге «ГД» → «SS6, SS12»