Полностью динамические минимальные остовные деревья: различия между версиями

Перейти к навигации Перейти к поиску
Строка 31: Строка 31:
Из инварианта (2) следует, что максимальное число уровней равно <math>L \le \mathcal {b} log_2 \; n \mathcal {c}</math>.
Из инварианта (2) следует, что максимальное число уровней равно <math>L \le \mathcal {b} log_2 \; n \mathcal {c}</math>.


 
Инвариант (3) может использоваться для доказательства утверждения, что среди всех ребер замены ребро с минимальным весом будет находиться на максимальном уровне. Пусть <math>e_1 \; </math> и <math>e_2 \; </math> – два ребра замены с <math>w(e_1) < w(e_2) \; </math>; пусть <math>C_i \;</math> – цикл, порожденный <math>e_i \;</math> в F, i = 1, 2. Поскольку F – минимальный остовный лес, <math>e_i \; </math> имеет максимальный вес среди всех ребер в <math>C_i \;</math>. В частности, поскольку, согласно предположению, <math>w(e_1) < w(e_2) \; </math>, <math>e_2 \; </math> также имеет максимальный вес среди ребер в цикле <math>C = (C_1 \cup C_2) \setminus (C_1 \cap C_2)</math>. В силу инварианта (3), ребро <math>e_2 \; </math> имеет минимальный уровень в C, что доказывает, что <math>\ell (e_2) \le \ell (e_1) \; </math>. Таким образом, рассмотрение недревесных ребер от максимального до минимального уровня является корректным.
Инвариант (3) может использоваться для доказательства утверждения, что среди всех ребер замены ребро с минимальным весом будет находиться на максимальном уровне. Пусть e1 и e2 – два ребра замены с w(e1) < w(e2); пусть Ci – цикл, порожденный ei в F, i = 1; 2. Поскольку F – минимальный остовный лес, ei имеет максимальный вес среди всех ребер в Ci. В частности, поскольку, согласно предположению, w(e1) < w(e2), e2 также имеет максимальный вес среди ребер в цикле C = (Q U C2) n (C1 \ C2). В силу инварианта (3), ребро e2 имеет минимальный уровень в C, что доказывает, что (e{) < l{e\). Таким образом, рассмотрение недревесных ребер от максимального до минимального уровня является корректным.


Заметим, что вначале ребру присваивается уровень 0. Затем его уровень может быть увеличен не более blog2 раз вследствие последовательности удалений ребер. Когда удаляется ребро e = (v, w) уровня i(e), алгоритм ищет ребро замены с максимально высоким уровнем, если такое существует. В силу инварианта (1) такое ребро замены имеет уровень I < l{e). Следовательно, процедура замены Replace((u, w),l(e)) вызывается с параметрами e и l(e). Далее будут вкратце описаны операции, выполняемые этой процедурой.
Заметим, что вначале ребру присваивается уровень 0. Затем его уровень может быть увеличен не более blog2 раз вследствие последовательности удалений ребер. Когда удаляется ребро e = (v, w) уровня i(e), алгоритм ищет ребро замены с максимально высоким уровнем, если такое существует. В силу инварианта (1) такое ребро замены имеет уровень I < l{e). Следовательно, процедура замены Replace((u, w),l(e)) вызывается с параметрами e и l(e). Далее будут вкратце описаны операции, выполняемые этой процедурой.
4488

правок

Навигация