Jump to content

Алгоритм верхних узлов

Алгоритм верхних узлов — это алгоритм управления календарем резервирования ресурсов. Алгоритм был впервые опубликован в 2003 году. [1] и был улучшен в 2009 году. [2] Он используется, когда ресурс используется многими пользователями (например, пропускная способность канала телекоммуникационного или емкость диска в большом центре обработки данных ).

Алгоритм позволяет пользователям:

  • проверить, доступен ли объем ресурса в течение определенного периода времени,
  • зарезервировать количество ресурса на определенный период времени,
  • удалить предыдущее бронирование,
  • переместить календарь вперед (календарь охватывает определенный период времени, и с течением времени его необходимо перемещать вперед).

Календарь хранится в виде двоичного дерева , листья которого представляют элементарные периоды времени. Другие узлы представляют период времени, охватываемый всеми их потомками.

Пример семичасового календаря (с элементарными периодами в один час)
Example of a seven-hour calendar (with elementary periods of one hour)
Пример семичасового календаря (с элементарными периодами в один час)

Период времени, охватываемый резервированием, представлен набором «верхних узлов». Этот набор представляет собой минимальный набор узлов, который точно покрывает период резервирования.

Узел бинарного дерева является «верхним узлом» для данного резервирования, если

  • все его потомки находятся внутри периода резервирования, и
  • это корневой узел, или по крайней мере один потомок родительского узла находится за пределами периода резервирования.
Топ-ноды для брони с 1:00 до 5:59
Top-nodes for a reservation from 1:00 to 5:59
Топ-ноды для брони с 1:00 до 5:59

В каждом узле хранится следующее значение:

q(node) = max(q(left child), q(right child))
          + total amount of reserved resource for all reservations having this node as a "top-node"

(для оптимизации кода две части этой суммы обычно хранятся отдельно.)

Производительность

[ редактировать ]

Преимущество этого алгоритма в том, что время регистрации нового резервирования ресурса зависит только от размера календаря (оно не зависит от общего количества резервирований).

Пусть n — количество элементарных периодов в календаре.

Максимальное количество «верхних узлов» для данного резервирования равно 2.log n.

  • чтобы проверить, доступен ли объем ресурса в течение определенного периода времени: O (log n )
  • зарезервировать количество ресурсов на определенный период времени: O (log n )
  • чтобы удалить предыдущее бронирование: O (log n )
  • чтобы переместить календарь вперед: O (log n + M.log n)

где M — количество резервирований, активных в течение добавленных календарных периодов.

( M = 0, если бронирование не разрешено после окончания календаря.)

  1. ^ Соответствующий патент США (алгоритм находится в свободном доступе с 2008 г.)
  2. ^ Улучшен алгоритм верхних узлов.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 882a254df4440d01c662cac941582f49__1664966040
URL1:https://arc.ask3.ru/arc/aa/88/49/882a254df4440d01c662cac941582f49.html
Заголовок, (Title) документа по адресу, URL1:
Top-nodes algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)