У меня есть орграф, который сильно связан (то есть есть путь от i до j и от j до i для каждой пары узлов (i, j) в графе G). Я хочу найти из этого графа сильно связный граф, чтобы сумма всех ребер была наименьшей.
Другими словами, мне нужно избавиться от ребер таким образом, чтобы после их удаления график по-прежнему был сильно связан и стоил наименьшей стоимости для суммы ребер.
Я думаю, что это трудная проблема NP. Я ищу оптимальное решение, а не приближение, для небольшого набора данных, например, 20 узлов.
Редактировать
Более общее описание: Для графа G (V, E) найти граф G '(V, E') такой, что если существует путь из v1 в v2 в G, то существует также путь между v1 и v2 в G 'и сумма каждого ei в E' является наименьшей возможной. так что это похоже на поиск минимального эквивалентного графа, только здесь мы хотим минимизировать сумму весов ребер, а не сумму ребер.
Изменить:
Мой подход пока:
Я думал о решении с использованием TSP с несколькими посещениями, но это не правильно. Моя цель здесь - охватить каждый город, но используя путь с минимальными затратами. Итак, это больше похоже на проблему с набором обложек, я думаю, но я не совсем уверен. Я обязан охватить все города, используя маршруты, общая стоимость которых минимальна, поэтому посещение уже посещенных маршрутов несколько раз не увеличивает стоимость.