Как я могу добавить устойчивость к минимальному связующему дереву? - PullRequest
1 голос
/ 27 июня 2019

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

MST должен быть подключен постоянно, но, к сожалению, соединения не очень надежны, поэтому я хотел бы добавить избыточность к этому графику / сети.

Можно ли рассчитать подмножество ребер таким образом, чтобы общая стоимость ребра была минимизирована и подключение по ребру превышает определенный минимум?

Я вижу, как это возможно, используя брутфорс, но я искал что-то более практичное. Я не смог найти много об этой проблеме, я думаю, в основном потому, что у меня нет словарного запаса, необходимого для поиска.

Моя текущая идея:

  • Вычислить MST
  • Пока он все еще ниже определенного уровня соединения
    • Найдите узел, находящийся ниже этой связности
    • Активировать ребро этого узла с наименьшим весом

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

Я почти уверен, что это не приведет к 100% доказуемо оптимальным сетям, потому что с помощью этого метода можно переподключить узлы (например, вы активируете k ребер для узла, затем другой узел активирует больше общих ребер, делая некоторые из тех к избыточны). Я надеюсь, что в этом есть смысл.

Любые советы приветствуются!

1 Ответ

0 голосов
/ 27 июня 2019

Статья в Википедии о графах, связанных ребрами заканчивается, Связанная проблема: поиск минимального связующего подграфа с под ребром в G (то есть: выберите как можно меньше ребер в G что ваш выбор связан с k-ребром) NP-труден для k> = 2. Затем они ссылаются на статью 1979 года, в которой это показано.

Поэтому я бы предложил использовать жадный подход и уйти с ног до головы.

...