Есть ли алгоритм или набор алгоритмов, которые позволили бы вам найти кратчайшее расстояние пешком от произвольного начального узла, чтобы каждый узел посещался в весовом неориентированном графе? Это не совсем Коммивояжер, потому что меня не волнует, посещается ли узел более одного раза. (Даже неважно, вернетесь ли вы к началу - ходунок может оказаться в каком-то удаленном узле, если он был последним, который нужно было посетить все узлы.) Это не совсем минимальное остовное дерево, потому что может случиться так, что переход A -> B -> C -> A -> D является (неуникальным) кратчайшим путем к A, B, C и D. Моя интуиция подсказывает, что это не так. Это довольно сложная проблема NP, потому что у нее нет ограничений, которые делают проблемы NP такими сложными. Конечно, я мог ошибаться.
Нециклический путь ко всем узлам
Ответы (2)
Из статьи Википедии о проблеме коммивояжера:
Удаление условия посещения каждого города «только один раз» не снимает NP-жесткости, поскольку легко видеть, что в плоском случае существует оптимальный тур, который посещает каждый город только один раз (в противном случае, согласно неравенству треугольника, сокращенный путь пропуск повторного посещения не приведет к увеличению продолжительности тура).
Не уверен, что такое этикет, чтобы добавить ответ на вопрос к уже принятому ответу.
Я добавляю этот ответ только для того, чтобы не переходить на другую страницу, чтобы не приходилось иметь дело с плоскими графиками и неравенством треугольников, а также с тем фактом, что это просто и, вероятно, легче понять.
Проблема гамильтонова пути сводится к следующему:
Предположим, у нас есть алгоритм с полиномиальным временем для решения нашей задачи поиска обхода с наименьшим весом, который посещает все вершины.
Учитывая граф, для которого нам нужно решить, существует гамильтонов путь или нет, мы просто передаем его как есть в рассматриваемый алгоритм задачи, устанавливая веса ребер = 1. Если алгоритм возвращает значение> n-1, то существует не является гамильтоновым путем в исходном графе, иначе существует.
Итак, это проблема NP-Hard.