Разница между гамильтоновым путем и ST

Я читал алгоритмы поиска минимального остовного дерева (в случае взвешенных графов) и определения того, имеет ли граф гамильтонов путь (который зависит от наличия гамильтонова цикла). У меня все перепуталось. Так в чем же разница между гамильтоновым путем и остовным деревом? Оба покрывают все вершины графа. Хотя у нас могут быть эффективные алгоритмы для нахождения остовного дерева (возможно, минимального остовного дерева), почему у нас нет алгоритмов для нахождения гамильтоновой схемы?? Мы можем продолжать добавлять и удалять по одному ребру за раз, пока не достигнем цикла и, возможно, мы сможем найти гамильтонов цикл??


person letsc    schedule 23.07.2011    source источник


Ответы (4)


Две проблемы совершенно разные. Думайте о минимальном связующем дереве как о проблеме соединения мест, где вам нужно заплатить только один раз, чтобы построить дорогу, но вы можете использовать ее столько раз, сколько захотите. Легко придумать самую дешевую конфигурацию дорог (например, по алгоритму Крускала), позволяющую путешествовать из любого места в любое другое.

Гамильтонов цикл, с другой стороны, хочет, чтобы вы минимизировали фактическое расстояние перемещения, т. е. каждое перемещение из одного места в другое имеет значение. (Он также просит вас никогда не посещать одно место дважды, но это второстепенная деталь.) Эта проблема принципиально нелокальна, в том смысле, что вы не можете сказать, правильно ли вы поступаете, просто исследуя локально варианты действий. следующий шаг. Для сравнения, жадный алгоритм MST гарантированно выбирает правильное следующее ребро для добавления к дереву на каждом шаге.

Кстати, никто не говорит, что "у нас не может быть эффективных алгоритмов для HP". Может быть, мы просто еще не нашли его :-)

person Kerrek SB    schedule 23.07.2011
comment
Это неправда, потому что существует алгоритм Кристофидеса для решения задачи коммивояжёра с гарантией нахождения в пределах 3/2 от оптимума. HP - это (дешевое) приближение проблемы TSP. Может быть, проще использовать кривую заполнения пространства. - person Gigamegs; 23.07.2011
comment
Однако согласно Википедии, Christofides работает только для евклидовых взвешенных графов. Конечно, есть много особых случаев, когда TSP или HP могут быть эффективно выполнены. - person Kerrek SB; 23.07.2011
comment
Керрек: Вы имеете в виду, что оно должно удовлетворять неравенству треугольника? Вот ссылка scribd.com/doc/19417995/Euclidean-vs- неевклидова геометрия. Но я не могу придумать приложение в реальном мире? Вы не против рассказать мне больше? Вы проверяете неравенство треугольника? - person Gigamegs; 23.07.2011
comment
Да, неравенство треугольника подразумевает, что ваш график живет изометрически в евклидовом пространстве. Из этого вы получаете немного локальной информации, потому что знаете, что A->B->C всегда будет занимать не меньше времени, чем A->C, чего вы не знаете на обычном взвешенном графике. Например. если A->B и B->C стоят 1, а A->C стоят 10, вы улучшите результат, заменив AC на ABC, но в соответствии с евклидовым предположением вам никогда не придется проверять это. - person Kerrek SB; 23.07.2011
comment
Между прочим, это не имеет ничего общего с неевклидовой геометрией в смысле дифференциальной геометрии. Геометрия в последнем смысле всегда локально удовлетворяет неравенству треугольника; просто не требуется, чтобы он был локально плоским. - person Kerrek SB; 23.07.2011

Обе задачи хотят соединить все вершины друг с другом.

Для минимального остовного дерева вам все равно, к какой вершине подключена вершина a, поэтому вы можете просто соединить a с ближайшей вершиной. Поскольку вы соединяете только вершины, которые еще не соединены, это дает дерево, и у вас есть свой алгоритм.

Однако для гамильтонова пути важно, с какой вершиной (скажем, b) вы соединяете вершину a, так как вы не можете снова использовать b ( иначе это уже не путь). Итак, чтобы определить, к какой вершине следует подключить a, нужно перепробовать все возможности и посмотреть, что получится. То есть эффективного способа еще никто не нашел, что, конечно, не означает автоматически, что его нет.

person Matty    schedule 03.03.2014

В гамильтоновом пути все вершины, кроме истока и приемника, имеют степень 2. Это не обязательно относится к MST (или ST, если хотите).

person nj-ath    schedule 17.09.2014

Гамильтонов путь и особенно минимальный гамильтонов цикл полезны для решения задачи коммивояжёра, то есть кратчайшей поездки. Быстрое решение выглядит как кривая Гильберта, особый вид кривой заполнения пространства, который также используется для уменьшения сложности пространства и для эффективной адресации. MST подобен соединению всех вершин вместе с наименьшей стоимостью соединения (т.е. путешествия) независимо от порядка или пересечения. Это полезно для решения таких задач, как поиск дорог, поиск водоканала, поиск интернет-кабеля.

person Gigamegs    schedule 23.07.2011