6

Есть ли алгоритм или набор алгоритмов, которые позволят вам найти кратчайшее расстояние ходьбы от произвольного начального узла, чтобы каждый узел посещался в весовом неориентированном графе? Это не совсем Traveling Salesman, потому что меня не волнует, посетил ли узел несколько раз. (Не имеет значения, верните ли вы его к началу - ходок может оказаться в каком-то отдаленном узле, пока он был последним, нужно было посетить все узлы.) Это не совсем минимальное остовное дерево, потому что может быть, что переход A -> B -> C -> A -> D является (неповторимым) кратчайшим путем для посещения A, B, C и D. Моя интуиция говорит, что это не " t довольно NP проблема, потому что у нее нет ограничений, которые делают проблемы NP настолько сложными. Я мог бы, конечно, быть совершенно неправым.Непериодический путь ко всем узлам

+1

Граф взвешен или нет? Как А -> В -> С -> А - кратчайший путь? Если у вас не может быть отрицательных издержек, A -> B -> C всегда будет короче ... – IVlad

+0

Извините - да, график взвешен и неориентирован. Причина, по которой это может быть короче, состоит в том, что у вас могут быть A, B, C и D такие, что есть края: A <-[3]-> B [3], B <-[5]-> C, A <-[3]-> C, B <-[15]-> D и A <-[5]-> D. В этом случае , (неповторимый) оптимальный путь будет A -> B -> C -> A -> D. – Jon

ответ

9

Из статьи Википедии на Travelling Salesman Problem:

Удаление условия посещения каждого города «только один раз» не удаляет NP-твердость, так как легко видеть, что в плоском случае существует оптимальный тур который посещает каждый город только один раз (иначе, по неравенству треугольника, ярлык, который пропускает повторный визит, не увеличивал длину тура).

+0

На этот раз Wiki по крайней мере наполовину ошибается. Рассмотрим взвешенный граф 1 -> 2 (1), 1 -> 3 (1), 1 -> 4 (1), 2 -> 3 (1000). Если мы сможем посетить город более одного раза, оптимальный инструмент позволит избежать края 2 -> 3 стоимостью 1000, поэтому мы можем сделать, например, 2 -> 1 -> 3 -> 1 -> 4. Или я чего-то не хватает? – IVlad

+0

Ну, тогда это отвечает. – Jon

+5

Ваш пример не удовлетворяет «неравенству треугольника», что подразумевается разграничением «планарного случая». – Larry

3

Не уверен, что этикет должен добавить ответ на вопрос с уже принятым ответом.

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

гамильтонова проблема Путь может быть сведена к следующему:

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

Для определения графа, которому мы должны решить путь гамильтониана, существует или нет, мы просто передаем его, как есть, к алгоритму задачи под рукой, задав вес по краям = 1. Если алгоритм возвращает значение> n- 1, то в исходном графе нет гамильтонова траектории, иначе существует.

Так что эта проблема NP-Hard.

+0

Спасибо - это помогает объяснить проблему дальше. – Jon

Смежные вопросы