Винеровский каркас

Материал из Википедии — свободной энциклопедии

Винеровский каркас — средство максимизации эффективности соединений «выделенных вершин» в сети.

Назван в честь химика Харри Винера (англ. Harry Wiener), предложившего индекс Винера.

Если дан

21 NP-полных задач Карпа), где вместо минимизации размера дерева целью является минимизация расстояний в подграфе[1][2]
.

Минимальный винеровский каркас впервые представили в 2015 году Ручански, Бончи и др.[3]

Минимальный винеровский каркас имеет приложения во многих областях, где имеется структура графа и целью изучения являются связи между набором индивидуальных элементов. Например, если есть набор пациентов, поражённых вирусной инфекцией, какие другие пациенты должны быть проверены, чтобы найти источник заражения? Или, если дан набор исследуемых протеинов, какие другие протеины участвуют в их путях взаимодействия?

Описание задачи

Индекс Винера — это сумма кратчайших путей в (под)графе. Если обозначить через кратчайший путь между и , индекс Винера (под)графа , обозначаемый как , определяется как

.

Задача о минимальном винеровском каркасе формулируется следующим образом. Пусть дан неориентированный невзвешенный граф с набором вершин и набором рёбер , и пусть в этом графе выделен набор вершин . Задача заключается в нахождении соединяющего выделенные вершины подграфа с минимальным индексом Винера. Более формально, задача заключается в вычислении

,

то есть в нахождении каркаса который минимизирует кратчайшие пути в .

Связь с деревом Штейнера

Оптимальное решение задачи о дереве Штейнера и задачи о винеровском каркасе могут отличаться. Определим выделенные вершины Q как Q = {v1, …, v10}. Единственным оптимальным решением задачи о дереве Штейера является само Q, которое имеет индекс Винера 165, в то время как оптимальным решением задачи о винеровском каркасе будет Q ∪ {r1, r2}[4], которое имеет индекс Винера 142.

Задача о минимальном винеровском каркасе связана с задачей Штейнера о минимальном дереве. В первом случае целевой функцией является индекс Винера в каркасе, а во втором случае целевой функцией является сумма весов рёбер в каркасе. Оптимальные решения этих задач могут отличаться для одно и того же графа и набора выделенных вершин. Фактически, решение задачи Штейнера о минимальном дереве может быть произвольно плохим для задачи минимизации винеровского каркаса. Граф справа даёт пример такого несовпадения.

Вычислительная сложность

Трудность

Задача

вершинного покрытия в графах ограниченной степени[5]. Хотя нет аппроксимационной схемы полиномиального времени, имеется аппроксимация полиномиального времени с постоянной точностью — алгоритм, который находит каркас, индекс Винера которого не отличается более чем на постоянный множитель от оптимального решения. В терминах классов сложности задача нахождения минимального винеровского каркаса имеет сложность APX
, но не PTAS, если только не P = NP.

Точные алгоритмы

Полный перебор всех возможных подмножеств вершин для получения того, который порождает каркас с минимальным индексом Винера, даёт алгоритм, который находит оптимальное решение за время (то есть, экспоненциальное время) для графов с n вершинами. В специальном случае, когда имеется ровно две выделенные вершины, оптимальным решением является кратчайший путь, соединяющий две вершины, так что задача может быть решена за полиномиальное время путём вычисления кратчайшего расстояния. Фактически, для любого фиксированного числа выделенных вершин оптимальное решение может быть найдено за полиномиальное время.

Аппроксимационные алгоритмы

Существует аппроксимационный алгоритм с постоянной точностью для задачи о винеровском каркасе, работающий за время на графе с n вершинами, m рёбрами и q выделенными вершинами, примерно с тем же временем работы, которое нужно для вычисления кратчайших расстояний от выделенных вершин до всех других вершин в графе[3]. Центральным местом в этом алгоритме является сведение задачи к задаче поиска дерева Штейнера с взвешенными вершинами, которая позволяет аппроксимацию с постоянной точности, в частности для случаев, связанных с задачей нахождения минимального винеровского каркаса.

Поведение

Минимальный винеровский каркас ведёт себя подобно степени посредничества.

Когда выделенные вершины принадлежат тому же сообществу, невыделенные вершины, которые образуют минимальный винеровский каркас, имеют тенденцию принадлежать тому же сообществу и имеют высокую центральность в сообществе. Такие вершины наиболее вероятно будут вершинами, играющими лидирующие роли в сообществе. В социальной сети эти влиятельные вершины могут быть хороши для распространения информации или как цели в виртуальной маркетинговой кампании[6].

Когда выделенные вершины принадлежат разным сообществам, невыделенные вершины, которые формируют минимальный винеровский каркас, содержат вершины, смежные рёбрам, которые являются мостами для различных сообществ. Эти вершины образуют структурную дыру в графе и являются важными[7].

Приложения

Минимальный винеровский каркас полезен в приложениях, в которых хотят изучить связи между набором вершин в графе. Например,

Примечания

  1. Hwang, Richards, Winter, Winter, 1992.
  2. DIMACS Steiner Tree Challenge. Дата обращения: 2 октября 2019. Архивировано из оригинала 30 июня 2016 года.
  3. 1 2 3 Ruchansky, Bonchi, Garcia-Soriano и др., 2015.
  4. Обратите внимание, что это не дерево!
  5. Dinur, Safra, 2005, с. 439–485.
  6. Hinz, Skiera, Barrot, Becker, 2011, с. 55–71.
  7. Lou, Tang, 2013, с. 825–836.

Литература