4817
правок
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 17: | Строка 17: | ||
== Основные результаты == | == Основные результаты == | ||
Хотя алгоритмы без предвидения активно изучались в теории очередей в течение многих десятилетий, само это понятие было рассмотрено Мотвани, Филлипсом и Торнгом [5] | Хотя алгоритмы без предвидения активно изучались в теории очередей в течение многих десятилетий, само это понятие было рассмотрено относительно недавно в контексте конкурентного анализа Мотвани, Филлипсом и Торнгом [5]. Как и в традиционном конкурентном анализе, алгоритм без предвидения называется <math>c</math>-конкурентным, если для каждого входного экземпляра его производительность не более чем в <math>c</math> раз ниже, чем у оптимального оффлайнового решения для этого экземпляра. Мотвани, Филлипс и Торнг показали следующее. | ||
Строка 23: | Строка 23: | ||
Не слишком удивительно, что любой детерминированный алгоритм должен иметь плохой коэффициент конкурентоспособности. Например, рассмотрим алгоритм MLF, у которого пороги являются степенями 2, то есть 1, 2, 4, ... Предположим, что <math>n = 2^k</math> заданий размера <math>2^k + 1</math> поступают в моменты времени <math>0, 2^k, 2 \cdot 2^k, ..., (2^k - 1)2^k</math>, соответственно. Тогда легко проверить, что средняя продолжительность потока для MLF равна <math>\Omega(n^2)</math>, тогда как у оптимального алгоритма она равна <math>\Omega(n)</math>. | Не слишком удивительно, что любой детерминированный алгоритм должен иметь плохой коэффициент конкурентоспособности. Например, рассмотрим алгоритм MLF, у которого пороги являются степенями 2, то есть 1, 2, 4, ... Предположим, что <math>n = 2^k</math> заданий размера <math>2^k + 1</math> каждое поступают в моменты времени <math>0, 2^k, 2 \cdot 2^k, ..., (2^k - 1)2^k</math>, соответственно. Тогда легко проверить, что средняя продолжительность потока для MLF равна <math>\Omega(n^2)</math>, тогда как у оптимального алгоритма она равна <math>\Omega(n)</math>. | ||
Заметим, что MLF плохо работает на приведенном выше примере, поскольку все задания застревают в очереди до конца, когда у них остается всего одна единица работы. Любопытно, что Калянасундарам и Прухс [3] разработали рандомизированный вариант MLF (названный ими RMLF) и доказали, что его коэффициент конкурентоспособности почти оптимален. Для каждого задания <math>j</math> и для каждой очереди <math> | Заметим, что MLF плохо работает на приведенном выше примере, поскольку все задания застревают в очереди до конца, когда у них остается всего одна единица работы. Любопытно, что Калянасундарам и Прухс [3] разработали рандомизированный вариант MLF (названный ими RMLF) и доказали, что его коэффициент конкурентоспособности почти оптимален. Для каждого задания <math>j</math> и для каждой очереди <math>Q_i</math> алгоритм RMLF устанавливает порог <math>t_{i, j}</math> случайно и независимо в соответствии с усеченным экспоненциальным распределением. Грубо говоря, задание случайного порога гарантирует, что если задание застряло в очереди, то оставшееся время его обработки будет составлять разумную долю от первоначального времени обработки. | ||
'''Теорема 2 [3]. Алгоритм RMLF является O (log n log log n)-конкурентным относительно рассеянного соперника. Более того, алгоритм RMLF является O(log n log log n)-конкурентным даже относительно адаптивного соперника при условии, что соперник заранее выбирает все размеры заданий.''' | '''Теорема 2 [3]. Алгоритм RMLF является <math>O(log \; n \; log \; log \; n)</math>-конкурентным относительно рассеянного соперника. Более того, алгоритм RMLF является <math>O(log \; n \; log \; log \; n)</math>-конкурентным даже относительно адаптивного соперника при условии, что соперник заранее выбирает все размеры заданий.''' | ||
Позже Беккетти и Леонарди [1] показали, что на самом деле RMLF оптимально конкурентоспособен с точностью до постоянного коэффициента. Они также проанализировали RMLF на одинаковых параллельных машинах. | Позже Беккетти и Леонарди [1] показали, что на самом деле RMLF оптимально конкурентоспособен с точностью до постоянного коэффициента. Они также проанализировали работу RMLF на одинаковых параллельных машинах. | ||
'''Теорема 3 [1]. Алгоритм RMLF является O(log n)-конкурентным для одной машины. Для нескольких одинаковых машин RMLF достигает коэффициента конкурентоспособности <math>O(log \; n \; log \Big( \frac{m}{n} \Big) )</math>, где m – количество машин.''' | '''Теорема 3 [1]. Алгоритм RMLF является <math>O(log \; n)</math>-конкурентным для одной машины. Для нескольких одинаковых машин RMLF достигает коэффициента конкурентоспособности <math>O(log \; n \; log \Big( \frac{m}{n} \Big) )</math>, где m – количество машин.''' | ||
== Применение == | == Применение == |
правок