:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте ::
Путь: Математика » Графы и маршруты » Алгоритмы нахождения максимального потока » Алгоритм Кинга
  Алгоритм Кинга



Алгоритм Кинга

Алгоритм Кинга.

 

Работа Кинга, Рао и Таряна (King, Rao & Tarjan) опубликована в 1992г. В 1990г. Алон (Alon) предложил свой вариант алгоритма CHM, выработав постоянную стратегию алгоритма-игрока, и добился быстродействия O(mn + n 8/3Log n). Кинг выдвинул еще более успешную адаптивную стратегию для алгоритма-игрока, улучшив эту оценку до O(nm + n2+e), что давало O(mn) для всех m > n1+e. Это позволило увеличить диапазон m/n, для которого на тот момент можно было достичь быстродействия O(nm).

Кинг немного модифицировал правила игры.

Рассмотрим неориентированный двудольный граф G = (U, V, E). |U| = |V| = n, |E| = m. Во время инициализации, алгоритм-игрок назначает дугу каждой вершине из U. Затем игра продолжается по раундам, пока все вершины из V не будут удалены.

Соперник может сделать один из следующих ходов:

1. Удалить любую дугу из графа (edge-kill), но не получит за это очков.

2. Удалить любую вершину из V вместе с инцидентными ей дугами, получив по одному очку за каждую дугу.

Алгоритм-игрок может сделать любую последовательность следующих ходов:

1. Назначить дугу каждой вершине u из U, для которой еще не назначена дуга.

2. Назначить вершине новую инцидентную дугу. Старая дуга приобретает обычный статус, а соперник получает дополнительное очко.

 

Стратегия алгоритма-игрока:

Пусть l – минимальный коэффициент (k) вершин u. Выделим множество UU вершин, с коэффициентом больше k. Всех v из V сопоставим оценку r(v), равную числу назначенных дуг (u, v), инцидентных v с минимальным коэффициентом. Диапазон значений, которые могут принимать оценки, можно разделить на уровни. Уровень i содержит вершины, оценки которых лежат в интервале [ri, ri+1), где ri = 2ir0. Поэтому, вершине из U’ достаточно “знать” уровни смежных вершин. Когда для вершины u  U’ назначается дуга, алгоритм выбирает дугу инцидентную вершине с минимальным уровнем.

Подобная стратегия приводит к алгоритму с оценкой O(nm + n2+e).