42 lines
5.2 KiB
TeX
42 lines
5.2 KiB
TeX
\section{Формальная постановка задачи}
|
||
\label{sec:2_problem_statement} \index{2_post_zad}
|
||
|
||
|
||
\hspace{0.47cm}
|
||
|
||
Модель прикладной программы может быть представлена как ориентированный ациклический граф потока данных $G=(V,E)$, $|V|=n$, $|E|=m$. Каждой вершине графа соответствует работа $\{p_i\}_{i=1}^n$, каждой дуге "--- передача данных между работами. Если $(p_i,p_j)\in{E}$, $1\leq{i,j}\leq{n}$, то для выполнения работы $p_j$ необходим результат выполнения работы $p_i$.
|
||
|
||
Вычислительная среда состоит из одного процессора $SP$, который в каждый момент времени способен выполнять только одну работу, и уникального ресурса $SR$. Каждая работа выполняется на процессоре $SP$ без прерываний. В момент старта работа $p_i$, $1\leq{i}\leq{n}$, захватывает $r_{p_i}\geq{0}$ ресурса $SR$ для хранения результата. При завершении работы ${p_i}$ происходит высвобождение ресурса, занимаемого такими работами $p_j$, \\$1\leq{j}\leq{n}$, $(p_j,p_i)\in{E}$, для которых $p_i$ является последним выполненным потомком.
|
||
|
||
Расписание $HP$ сформировано, если для всех работ из $G$ определен порядок их выполнения на процессоре $SP$. Фактически $HP$ представляет собой перестановку $\pi$ номеров работ из $G$ (будем считать, что работы пронумерованы), поэтому ниже понятия <<расписание>> и <<перестановка работ>> считаем взаимозаменяемыми.
|
||
$$\pi = (j_1, j_2,\dots, j_n)$$
|
||
|
||
где $j_i$ "--- номер работы, находящегося в $i$-ой позиции расписания.
|
||
|
||
Расписание $HP$ корректно, если выполнены следующие ограничения $\{1-3\}$:
|
||
\begin{enumerate}
|
||
\item Каждая работа назначено на процессор $SP$.
|
||
\item Процессор $SP$ в каждый момент времени выполняет не более одной работы.
|
||
\item Частичный порядок, заданный графом зависимостей $G$, сохранен в $HP$.
|
||
\end{enumerate}
|
||
|
||
Далее будем говорить, что расписание допустимо $HP\in{HP_{\{1-3\}}^*}$, если оно удовлетворяет набору ограничений $\{1-3\}$.
|
||
|
||
Минимизируемой целевой функцией является максимальное по всему расписанию количество занятого в вычислительной системе ресурса. Длительности работ в рамках задачи не рассматриваются.
|
||
|
||
Пусть задано расписание $HP \in HP_{\{1-3\}}^*$. Опишем процедуру расчета целевой функции для $HP$. Обозначим за $f_{HP}^k$, $1\leq{k}\leq{n}$, количество занятого ресурса для $k$-ой позиции в расписании $HP$. Пусть $A$ "--- множество работ, расположенных в расписании $HP$ на позициях $1,\dots,k$. Пусть $B \subset A$ "--- множество работ, расположенных в расписании $HP$ на позициях $1,\dots,k-1$, у каждой из которых все потомки расположены на позициях от $1$ до $k-1$. Тогда $f_{HP}^k$ вычисляется по следующей формуле:
|
||
\begin{equation*}
|
||
f_{HP}^k=\sum\limits_{p_j\in{A}} r_{p_j} - \sum\limits_{p_i\in{B}} r_{p_i}
|
||
\end{equation*}
|
||
|
||
Пусть известны значения $\{f_{HP}^k\}_{k=1}^n$ для расписания $HP$. Тогда значение целевой функции $f_{HP}$ для такого расписания:
|
||
\begin{equation*}\label{eq:cost}
|
||
f_{HP}=\max_{1\leq{k}\leq{n}} f_{HP}^k
|
||
\end{equation*}
|
||
|
||
Требуется для модели прикладной программы $G$ найти такое расписание \\$HP_* \in HP_{\{1-3\}}^*$, для которого достигается минимальное значение целевой функции:
|
||
\begin{equation*}
|
||
f_{HP_*}=\min\limits_{HP\in{HP_{\{1-3\}}^*}} f_{HP}
|
||
\end{equation*}
|
||
|
||
Описанная задача является задачей о минимизации максимальной совокупности стоимости \cite{GARYJONSON}. В \cite{ABDEL}, \cite{SETHI} доказано, что в общем случае эта задача является NP-трудной. |