Самыми простыми решениями будут следующие:
a) на основе mst: - изначально все узлы V находятся в V '- построить минимальное остовное дерево графа G (V, E) -назовите его T.
- цикл: для каждого листа v в T, который не находится в N, удалите v из V '.
- повторяйте цикл, пока все листья в T не окажутся в N.
b) другое решение заключается в следующем - на основе дерева кратчайших путей.
- выберите любой узел в N, назовите его v, пусть v будет корнем дерева T = {v}.- удалить v из цикла N.
- : 1) выбрать кратчайший путь из любого узла в T, а из любого узла в N. кратчайший путь p: {v, ..., u}, где vнаходится в T и u находится в N. 2) каждый узел в p добавляется к V '.3) каждый узел в p и в N удаляется из N. --- повторять цикл до тех пор, пока N не станет пустым.
В начале алгоритма: вычислить все кратчайшие пути в G, используя любой известный эффективный алгоритм.
Лично я использовал этот алгоритм в одной из своих работ, но он больше подходит для распределенной среды.Пусть N будет набором узлов, которые нам нужно соединить.Мы хотим построить минимальный связный доминирующий набор графа G, и мы хотим дать приоритет для узлов в N. Мы присваиваем каждому узлу уникальный идентификатор id (u).Пусть w (u) = 0, если u находится в N, в противном случае w (1).Мы создаем пару (w (u), id (u)) для каждого узла u.
каждый узел u создает многосетевой ретрансляционный узел.То есть набор M (u) соседей с 1 переходом, так что каждый сосед 2 переходов является соседом по меньшей мере с одним узлом в M (u).[чем меньше M (u), тем лучше решение].
u находится в V 'тогда и только тогда, когда: u имеет наименьшую пару (w (u), id (у)) среди всех своих соседей.или u выбран в M (v), где v является соседом 1-го шага u с наименьшим (w (u), id (u)).
- хитрость при централизованном выполнении этого алгоритма заключается в эффективности вычисления соседей с 2 скачками.Лучшее, что я мог получить от O (n ^ 3) - это O (n ^ 2.37) путем умножения матриц.
- Я действительно хотел бы знать, каково соотношение аппроксимации этого последнего решения.
Мне нравится этот справочник по эвристике дерева Штейнера: проблема дерева Штейнера, Хван Франк;Ричардс Дана 1955 - Зимний Павел 1952