Пожалуйста, объясните связь между операциями Decrease-Key и Extract-Min в приоритетных очередях.

Какая связь между операцией EXTRACT-MIN и операциями DECREASE-KEY в приоритетной очереди? Я столкнулся с этим в лекции по проблеме минимального охвата с использованием алгоритма Прима.

Профессор из Массачусетского технологического института ссылается на это в точке 01:07:16 секунды видео, но я не понимаю . Может ли кто-нибудь прояснить это для меня?

P.S. Меня устраивает мое понимание приоритетных очередей.




Ответы (1)


Эта последовательность:

DECREASE-KEY(node, -infinity)
EXTRACT-MIN

Имеет простое значение:

DELETE-KEY(node)

Что он в основном делает, так это убеждается, что определенный узел попадает в начало очереди, а затем удаляет его.

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

Я не могу просмотреть видео прямо сейчас, но я предполагаю, что ваш профессор имел в виду, что DECREASE-KEY увеличивает шансы узла быть EXTRACT-MINed и фактически используется по той же причине и, следовательно, своего рода отношения.

person Shahbaz    schedule 27.09.2012
comment
Я думаю, что подпись Decrease-Key — это Decrease-Key(x, key), а не просто DECREASE-KEY(k), что означает, что вы меняете ключ элемента x в куче на ключ. key не должен быть больше, чем текущее значение ключа x. - person Geek; 27.09.2012
comment
Примечание: сейчас я не могу посмотреть видео. Если бы вы могли процитировать соответствующую часть речи, было бы лучше. - person Shahbaz; 27.09.2012
comment
он в основном говорит, что существует неявная связь между двумя - person Geek; 27.09.2012
comment
Если это все, что он сказал, то это все, что я должен сказать. Тем не менее, через пару часов буду дома и посмотрю видео. - person Shahbaz; 27.09.2012
comment
@geek, я слышал неявное около 1:10:16 (вместо 1:07:16), что не кажется таким уж важным. Он говорит, что в зависимости от того, как вы реализуете очередь приоритетов, обновление значения ближайших вершин приходит с неявным DECREASE-KEY и что вы не можете просто изменить значение, не затрагивая структуру данных приоритетная очередь. - person Shahbaz; 28.09.2012