Вот попытка решить эту проблему ...
Для X = 1 я могу вычислить минимальное остовное дерево (MST) с алгоритмом Прима для каждого узла (этот узел является единственным, подключенным к сетке) ивыберите один с наименьшей общей стоимостью
. Для X = 2 я создаю дополнительный узел (узел электростанции) рядом с моим графиком.Я соединяю его со случайным узлом (например, N0) по краю со стоимостью 0. Теперь я уверен, что у меня есть один штекер силовой установки (случайный узел обязательно будет в одном из деревьев, поэтому будет соединено все дерево).Теперь итерационная часть.Я беру другой узел (например, N1) и снова соединяюсь с PP с нулевым преимуществом.Теперь я вычисляю MST.Затем повторите этот процесс с заменой N1 на N2, N3 ... Итак, я протестирую каждую пару [N0, NX].MST выигрывает с наименьшей стоимостью.
Для X> 2 это действительно то же самое, что и для X = 2, но мне нужно проверить соединение с PP для каждого (x-1) -типа и вычислить MST
с x ^ 2 для MST У меня сложность с (N над X-1) * x ^ 2 ... Довольно сложная, но я думаю, что это даст мне ОПТИМАЛЬНОЕ решение
что вы думаете?
редактировать случайным узлом, я имею в виду случайный, но ИСПРАВЛЕННЫЙ узел
попытка визуализации для x = 2 (каждое описание принадлежит изображению над ним)
Пусть это будет наш город, узлы A - F - это дома, ребра - кандидаты в будущие кабели (каждый имеет определенную стоимость для строительства)
Только для изображения, это может быть решением
Пусть зеленый будет электростанцией, вот как может выглядеть соединение с одним деревом
Но это другое подключение действительно одно и то же (подключение к электростанции (pp) стоит одинаково, кабели остаются нетронутыми).Вот почему мы можем установить один из узлов в качестве фиксированной точки контакта с пп. Мы можем быть уверены, что узел будет в одном из деревьев, и не имеет значения, где находится дерево.
Итак, пусть это будет наша фиксированная ситуация с G в качестве PP.Добавлено ребро (B, G) с нулевой стоимостью.
Теперь я пытаюсь подключить второе соединение с PP (A, G, стоимость 0)
Теперь я вычисляю MST по ПП.Поскольку красные края являются самыми дешевыми (они могут иметь даже отрицательную стоимость), уверен, что оба они будут в MST.
Так что при запуске MST я получаючто-то вроде этого.Представьте себе отделение PP и двух деревьев МИНИМАЛЬНОЙ СТОИМОСТИ.Это лучшее решение для А и Б - это соединения с ПП.Я сохраняю стоимость и продолжаю.
Теперь я делаю то же самое для соединений B и C
Я могполучите что-то вроде этого, поэтому сравните стоимость с предыдущей и выберите лучшую.
Таким образом, я должен попробовать все пары соединений (B, A) (B, C) (B, D) (B, E) (B, F), и самый дешевый - победитель.
Для X = 3 я бы просто протестировал другие наборы с одним фиксированным снова.(A, B, C) (A, B, D) ... (A, C, D) ... (A, E, F)