fix introduction

This commit is contained in:
2026-05-06 10:09:45 +03:00
parent 80e86394d1
commit 5daba127fe
36 changed files with 3088 additions and 2 deletions
+42
View File
@@ -0,0 +1,42 @@
\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-трудной.