57 lines
7.0 KiB
TeX
57 lines
7.0 KiB
TeX
\anonsection{Введение}
|
||
\label{sec:0_vvedenie} \index{0_vvedenie}
|
||
|
||
\hspace{0.47cm}
|
||
В вычислительных системах с ограниченным количеством некоторого
|
||
ресурса (например, оперативной памяти) при построении расписания
|
||
вычислений важным критерием является пиковое (максимальное по всему
|
||
расписанию) использование ресурса. В данной работе рассматривается
|
||
задача построения однопроцессорного расписания с минимизацией
|
||
этого критерия. Результат решения задачи может использоваться для
|
||
оценки объема оперативной памяти, необходимого в проектируемой системе
|
||
для выполнения заданного набора работ.
|
||
|
||
Входными данными задачи является ориентированный ациклический граф
|
||
без петель и кратных ребер, в котором вершины задают работы, а ребра –
|
||
зависимости между ними. Таким образом, входной граф задает условия
|
||
частичного порядка на множестве работ. Каждой вершине в графе
|
||
сопоставлено неотрицательное число – количество занимаемого
|
||
соответствующей работой ресурса. При этом каждая работа занимает ресурс
|
||
в момент начала своего выполнения и освобождает его в момент, когда
|
||
последний из ее непосредственных потомков завершит выполнение.
|
||
|
||
Для входного графа необходимо построить расписание, минимизирующее пиковое использование ресурса в системе. Поскольку директивные сроки выполнения работ не заданы, и оптимизируемым критерием является пиковое использование ресурса, время выполнения работ не учитывается. В связи с этим расписание можно рассматривать как набор шагов, на каждом из которых выполняется одна работа.
|
||
|
||
На рис. \ref{fig:example} приведен граф и два возможных расписания для него. На вершинах графа указаны номера работ и количество занимаемого ресурса. В расписании под горизонтальной осью подписаны работы, которые выполняются на соответствующих шагах расписания, а вертикальной оси соответствует количество занимаемого ресурса в системе. Красные стрелки вверх в расписании обозначают занятие ресурса, а зеленые стрелки вниз -- освобождение.
|
||
|
||
Для нахождения значения целевой функции на каждом шаге вычисляется общее использование ресурса в системе, затем выбирается максимальное по всему расписанию -- пиковое значение. В расписании фигурными скобками обозначены и пронумерованы в порядке следования моменты подсчета используемого ресурса. Видно, что пиковое значение достигается после занятия ресурса работой, но до освобождения ей ресурса из-под работ предков.
|
||
|
||
На примере (рис. \ref{fig:example}), видно, что для одного и того же графа работ могут быть построены разные расписания. Так, в расписании 1 целевая функция равна 9 и достигается в момент выполнения работы $V_2$. В расписании 2 пиковое использование ресурса достигает 11 во время выполнения работ $V_3$ и $V_4$. Таким образом, в расписании 1 целевая функция меньше, чем в расписании 2.
|
||
|
||
\begin{figure}[h]
|
||
\centering
|
||
\includegraphics[width=\textwidth]{pictures/example.png}
|
||
\caption{Граф работ и возможные расписания для него}
|
||
\label{fig:example}
|
||
\end{figure}
|
||
|
||
В работе \cite{SHUTKOV} для данной задачи предложен детерминированный алгоритм,
|
||
строящий близкие к оптимальным расписания в случае, если входной граф
|
||
является последовательно-параллельным. По мере добавления в граф ребер,
|
||
нарушающих его последовательно-параллельную структуру, получаемые
|
||
алгоритмом расписания по качеству (т.е. значению целевой функции)
|
||
приближаются к результатам жадного алгоритма, что указывает на рост
|
||
отклонения от оптимума.
|
||
|
||
В работе \cite{BALASHOV} для данной задачи предложен муравьиный алгоритм,
|
||
превосходящий по качеству решения жадный алгоритм, однако в силу
|
||
рандомизированности не гарантирующий качество решения даже на уровне
|
||
верхней оценки отклонения от оптимума.
|
||
|
||
Актуальна разработка метода построения оптимального расписания, который
|
||
не был бы ограничен конкретным классом структуры входного графа. В данной работе
|
||
предложена схема сведения
|
||
рассматриваемой задачи к задаче целочисленного линейного
|
||
программирования (ЦЛП) \cite{SHEV}, реализована с
|
||
использованием свободно доступного решателя ЦЛП и исследована по
|
||
критерию масштабируемости. |