Списочное планирование: различия между версиями

Перейти к навигации Перейти к поиску
м
нет описания правки
мНет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
Ключевые слова и синонимы
== Ключевые слова и синонимы ==
Планирование в режиме онлайн на идентичных машинах
Планирование в режиме онлайн на идентичных машинах


Строка 6: Строка 6:
   
   


Последовательность из n заданий должна быть назначена m идентичным машинам. Каждое задание должно быть назначено одной из машин. С каждым заданием связан размер, который можно рассматривать как время обработки или нагрузку. Нагрузка машины представляет собой сумму размеров присвоенных ей заданий. Цель заключается в минимизации максимальной нагрузки любой машины, также называемую продолжительностью работы. Эта задача носит название планирования заданий (JOB SCHEDULING).
Последовательность из n заданий должна быть назначена m идентичным машинам. Каждое задание должно быть назначено одной из машин. С каждым заданием связан размер, который можно рассматривать как время обработки или нагрузку. Нагрузка машины представляет собой сумму размеров присвоенных ей заданий. Цель заключается в минимизации максимальной нагрузки любой машины, также называемой продолжительностью работы. Эта задача носит название "планирование заданий" (JOB SCHEDULING).




Строка 38: Строка 38:




Чтобы показать, что анализ является строгим, рассмотрим m(m - 1) заданий размера 1, за которыми следует одно задание размера m. После поступления меньших заданий LS получает сбалансированное расписание, в котором каждая машина имеет нагрузку m - 1. Следующее, большое задание увеличивает продолжительность работы до 2m - 1. Однако оптимальным решением в автономном режиме было бы назначить задания меньшего размера m - 1 машине, а оставшееся задание – оставшейся машину, в результате чего мы получим нагрузку m.
Чтобы показать, что анализ является строгим, рассмотрим m(m - 1) заданий размера 1, за которыми следует одно задание размера m. После поступления меньших заданий алгоритм LS получает сбалансированное расписание, в котором каждая машина имеет нагрузку m - 1. Следующее, большое задание увеличивает продолжительность работы до 2m - 1. Однако оптимальным решением в оффлайновом режиме было бы назначить задания меньшего размера m - 1 машине, а оставшееся задание – оставшейся машинам, в результате чего мы получим нагрузку m.




Естественным образом возникает вопрос, является ли эта граница наилучшей. В одной из последующих работ Грэм [9] показал, что применение алгоритма LS к отсортированной последовательности заданий (в порядке невозрастания размеров) на самом деле дает улучшенную верхнюю границу коэффициента аппроксимации, равную <math>\frac{4}{3} - \frac{1}{3m}</math>. Схему аппроксимации с полиномиальным временем выполнения предложили Хохбаум и Шмойс в работе [10]. Это лучший оффлайновый результат, на который можно было бы надеяться, поскольку, как известно, задача является NP-трудной в сильном смысле.
Естественным образом возникает вопрос, является ли эта граница наилучшей. В одной из последующих работ Грэм [9] показал, что применение алгоритма LS к отсортированной последовательности заданий (в порядке невозрастания размеров) на самом деле дает улучшенную верхнюю границу коэффициента аппроксимации, равную <math>\frac{4}{3} - \frac{1}{3m}</math>. Аппроксимационную схему с полиномиальным временем выполнения предложили Хохбаум и Шмойс в работе [10]. Это лучший оффлайновый результат, на который можно было бы надеяться, поскольку, как известно, задача является NP-трудной в сильном смысле.




Что касается онлайновой задачи, то в статье [5] было показано, что ни у одного (детерминированного) алгоритма коэффициент конкурентоспособности не может быть меньше <math>2 - \frac{1}{m}</math>, что верно для случаев m = 2 и m = 3. С другой стороны, в серии работ было показано, что алгоритм с меньшим коэффициентом конкурентоспособности можно найти для любого значения <math>m \ge 4</math>, и даже были разработаны алгоритмы с коэффициентом конкурентоспособности, не приближающимся к 2 для больших m.
Что касается онлайновой задачи, то в статье [5] было показано, что ни у одного (детерминированного) алгоритма коэффициент конкурентоспособности не может быть меньше <math>2 - \frac{1}{m}</math> для случаев m = 2 и m = 3. С другой стороны, в серии работ было показано, что алгоритм с меньшим коэффициентом конкурентоспособности можно найти для любого значения <math>m \ge 4</math>, и даже были разработаны алгоритмы с коэффициентом конкурентоспособности, не приближающимся к 2 для больших m.




Строка 50: Строка 50:


== Применение ==
== Применение ==
В процессе последующего изучения алгоритмов аппроксимации и, в частности, онлайновых алгоритмов при анализе многих алгоритмов планирования использовались методы, аналогичные приведенному выше доказательству. Далее приведены несколько вариантов задачи, в которых практически то же доказательство дает в результате точно такую же границу.
В процессе последующего изучения аппроксимационных алгоритмов (и в особенности онлайновых алгоритмов) при анализе многих алгоритмов планирования использовались методы, аналогичные приведенному выше доказательству. Далее приведены несколько вариантов задачи, в которых практически то же доказательство дает в результате точно такую же границу.




'''Балансировка нагрузки для временных задач'''
'''Балансировка нагрузки для временных задач'''


В этой задаче размеры заданий рассматриваются как нагрузки. Время представляет собой отдельную ось. Входными данными является последовательность событий, в которой каждое событие представляет собой поступление или уход задания. Множество активных заданий в момент времени t – это набор заданий, которые уже поступили к этому моменту и еще не завершены. Стоимостью алгоритма в момент времени t является продолжительность его работы на данный момент. Стоимость алгоритма равняется его максимальной стоимости по всем значениям времени. Оказывается, вышеприведенный анализ можно легко адаптировать и для этой модели. Любопытно отметить, что в данном случае, как показано в работе [2], лучше всего подойдет граница <math>2 - \frac{1}{m}</math>.
В этой задаче размеры заданий рассматриваются как нагрузки. Время представляет собой отдельную ось. Входными данными является последовательность событий, в которой каждое событие представляет собой поступление или убытие задания. Множество активных заданий в момент времени t – это набор заданий, которые уже поступили к этому моменту и еще не завершены. Стоимостью алгоритма в момент времени t является продолжительность его работы на данный момент. Стоимость алгоритма равняется его максимальной стоимости по всем значениям времени. Оказывается, вышеприведенный анализ можно легко адаптировать и для этой модели. Любопытно отметить, что в данном случае, как показано в работе [2], лучше всего подойдет граница <math>2 - \frac{1}{m}</math>.




'''Планирование с учетом времени выпуска и отношений предшествования'''
'''Планирование с учетом времени выпуска и отношений предшествования'''


В данной задаче размеры представляют время обработки заданий. Были изучены различные варианты. Каждому заданию может быть задано время выпуска, т. е. время, когда это задание становится доступным для выполнения. В онлайновом сценарии каждое задание поступает и становится известным алгоритму только в момент его выпуска. Также могут быть заданы некоторые отношения предшествования, определяемые частичным порядком на множестве заданий. Таким образом, задание может быть выпущено только после того, как его предшественники завершат выполнение. В онлайновом сценарии каждое задание поступает и становится известным алгоритму только после того, как его предшественники завершили выполнение. В этих случаях алгоритм LS действует следующим образом. Как только машина становится доступной, ей назначается то задание из ожидающих выполнения, которое поступило раньше всех. (В отсутствие ожидающих заданий машина простаивает, пока не поступит новое задание).
В данной задаче размеры представляют время обработки заданий. Были изучены различные варианты. Каждому заданию может быть задано время выпуска, т. е. время, когда это задание становится доступным для выполнения. В онлайновом сценарии каждое задание поступает и становится известным алгоритму только в момент его выпуска. Также могут быть заданы некоторые отношения предшествования, определяемые частичным порядком на множестве заданий. Таким образом, задание может быть выпущено только после того, как его предшественники завершат выполнение. В онлайновом сценарии каждое задание становится известным алгоритму только после того, как его предшественники завершили выполнение. В этих случаях алгоритм LS действует следующим образом. Как только машина становится доступной, ей назначается то задание из ожидающих выполнения, которое поступило раньше всех. (В отсутствие ожидающих заданий машина простаивает, пока не поступит новое задание).




Строка 66: Строка 66:




Эта граница является строгой в нескольких случаях. Для случая, когда есть ограничения по времени выпуска, нет ограничений на отношения предшествования, а время обработки (размеры) не известны по прибытии, Шмойс, Вейн и Уильямсон [15] доказали нижнюю границу, равную <math>2 - \frac{1}{m}</math>. Для случая, когда имеются только ограничения на отношения предшествования (нет ограничений по времени выпуска, и размеры заданий известны по прибытии), нижняя граница той же величины была приведена в [4]. Следует отметить, что в случае планирования с предвидением (в котором размеры заданий известны по прибытии) время выпуска и отношения предшествования не устанавливаются. Для m = 2 Нога и Сайден [11] показали, что жесткая граница равна <math>(5 - \sqrt{5})/2 \approx 1,38198</math>, а верхняя граница достигается при помощи алгоритма, который применяет ожидание с простаивающими машинами вместо того, чтобы планировать задания как можно быстрее, как это делает LS.
Эта граница является строгой в нескольких случаях. Для случая, когда учитывается время выпуска, нет ограничений на отношения предшествования, а время обработки (размеры) не известны по прибытии, Шмойс, Вейн и Уильямсон [15] доказали нижнюю границу, равную <math>2 - \frac{1}{m}</math>. Для случая, когда имеются только ограничения на отношения предшествования (время выпуска не учитывается, размеры заданий известны по прибытии), нижняя граница той же величины была приведена в [4]. Следует отметить, что в случае планирования с предвидением (в котором размеры заданий известны по прибытии) время выпуска и отношения предшествования не устанавливаются. Для m = 2 Нога и Сайден [11] показали, что жесткая граница равна <math>(5 - \sqrt{5})/2 \approx 1,38198</math>, а верхняя граница достигается при помощи алгоритма, который применяет ожидание с простаивающими машинами вместо того, чтобы планировать задания как можно быстрее, как это делает LS.


== Открытые вопросы ==
== Открытые вопросы ==
Самая сложная нерешенная задачи заключается в поиске наилучшего возможного коэффициента конкурентоспособности для этой базовой онлайновой задачи планирования. Разрыв между верхней и нижней границами невелик, но нахождение точной границы представляется очень трудным. Возможно, проще было бы найти наилучший возможный коэффициент конкурентоспособности для m = 4. Нижняя граница p3 ^ 1,732 была показана в работе [ ], а известная на данный момент верхняя граница – 1,733 – в [ ]. Таким образом, возможно, эта граница окажется равной p3.
Самая сложная нерешенная задача заключается в поиске наилучшего возможного коэффициента конкурентоспособности для этой базовой онлайновой задачи планирования. Разрыв между верхней и нижней границами невелик, но нахождение точной границы представляется очень трудным. Возможно, проще было бы найти наилучший возможный коэффициент конкурентоспособности для m = 4. Нижняя граница <math>\sqrt{3} \approx 1,732</math> была показана в работе [12], а известная на данный момент верхняя граница – 1,733 – в [3]. Таким образом, возможно, эта граница окажется равной <math>\sqrt{3}</math>.


== Литература ==
== Литература ==
4501

правка

Навигация