Набор всех ребер, содержащихся в некотором MST - PullRequest
0 голосов
/ 06 февраля 2019

Есть ли способ вычислить множество всех ребер, которые содержатся в любом MST в O (nlogn)?

Где n определяется как | V (G) |

Iпопытался изменить Prim, Kruskal и использовать свойство Circle, но я не смог найти никакого решения.

1 Ответ

0 голосов
/ 08 февраля 2019

Если я правильно понял ваш вопрос, вы хотите получить набор всех ребер, который появляется хотя бы в одном MST.

Очевидно, что время выполнения алгоритма должно быть ограничено снизу в количестве реберв результирующем наборе.

Давайте посмотрим на график Kn (для получения дополнительной информации - https://en.wikipedia.org/wiki/Complete_graph)
На графике O(n^2) ребер, и установите все веса на 1.
Теперь все, что нам нужно, эточтобы доказать, что каждое ребро в этом графе присутствует хотя бы в одном MST, и, таким образом, алгоритм нахождения этого множества должен быть ограничен снизу O(n^2).
Доказательство простое, пусть e = (vi,vj) - ребро, мы можем построитьMST легко связывается с e. Для простоты назовем vi, vj - v1, v2 и, соответственно, все остальные вершины v3, ..., vn. (v1, v2), (v2, v3), ..., (vn-2, vn-1) - это MST.
Итак, в этом случае все ребра находятся вжелаемый набор, и есть O(n^2) ребер, поэтому алгоритм не может выполнить наихудший случай O(nlogn)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...