Приближённый алгоритм поиска p-медиан

Материал из testwiki
Перейти к навигации Перейти к поиску

Эвристический метод для нахождения p-медианы состоит в следующем: случайным образом выбираются p вершин, они образуют начальное множество S, аппроксимирующее p-медианное множество Xp. Затем выясняется, может ли некоторая вершина xjXS заменить вершину xiS (как медианная вершина), для чего строят новое множество S=(Sxj)xi и сравнивают передаточные числа σ(S) и σ(S). Если σ(S)<σ(S), то S заменяют на S, которое лучше аппроксимирует p-медианное множество Xp. Затем аналогично исследуется множество S и т. д., пока не будет построено множество S', которое нельзя будет изменить по вышеуказанному принципу.

Алгоритм

Шаг 1. Выбрать некоторое множество S из p вершин в качестве начального приближения к p-медиане. И назовём все вершины xiS «неопробованными».

Шаг 2. Взять произвольную «неопробованную» вершину и для каждой вершины xiS вычислить «приращение» Δij, соответствующие замене вершины xi вершиной xj, то есть вычислить Δij=σ(S)σ((Sxj)xi).

Шаг 3. Найти Δi1j=max[Δij] по всем xiS.

а) Если Δi1j0, то назвать вершину xj «опробованной» и перейти к шагу 2.

б) Если Δiij0, то S(Sxj)xi, назвать вершину xj «опробованной» и перейти к шагу 2.

Шаг 4. Повторять шаги 2 и 3 до тех пор, пока все вершины из XS не будут опробованы. Эта процедура оформляется как цикл. Если при выполнении последнего цикла совсем не будет замещений вершин на шаге 3(a), то перейти к шагу 5. В противном случае, то есть если осуществлено некоторое замещение, назвать все вершины «неопробованными» и вернуться к шагу 2.

Шаг 5. Стоп. Текущее множество S является подходящей аппроксимацией p-медианного множества Xp.

Пример

Легко заметить, что приведённый выше алгоритм не во всех случаях даёт оптимальный ответ. Рассмотрим пример (числа, стоящие около рёбер, равны соответствующим рёберным стоимостям, все вершины одинакового единичного веса):

Числа, стоящие около рёбер, равны соответствующим рёберным стоимостям, все вершины одинакового единичного веса

Если искать 2-медиану и в качестве начального множества S взять {x3, x6} с передаточным числом σ(S)=8, то никакое замещение только одной вершины не приводит к множеству с меньшим передаточным числом. Однако множество {x3, x6} не является 2-медианой данного графа, так как существуют два 2-медианных множества с передаточным числом 7: {x1, x4} и {x2, x5}.

Литература

Ссылки