Files
CursASVK/example/0_vvedenie.tex
T
2026-05-06 10:09:45 +03:00

57 lines
7.0 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
\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}, реализована с
использованием свободно доступного решателя ЦЛП и исследована по
критерию масштабируемости.