Цикла максимального веса в графе

дан взвешенный граф (ориентированный или неориентированный) мне нужно найти цикл в графе с максимальным весом.

вес цикла, являющийся суммой веса ребер графа.

Это может быть любой цикл, а не только базовый цикл, для которого мы можем

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

У вас есть идея найти этот максимальный весовой цикл без перечисления всех циклов ?

Если вам нужна гипотеза на графике (например, положительные веса), пожалуйста, укажите их.

2 ответов


Это NP-трудно.

задача Гамильтонова цикла может быть сведена к этому.

учитывая граф, для которого нам нужно проверить, существует ли Гамильтонов цикл или нет, назначьте вес 1 каждому краю.

теперь запустите алгоритм, чтобы получить максимальный цикл веса. Если вес


Если вы можете найти минимальный взвешенный путь в вашем конкретном случае, просто поменять знаки всех Весов и применить алгоритм. Конечно, вы делаете некоторые невысказанные предположения, потому что аргумент Морона верен (Не каламбур). Предположения, которые вы делаете, могут быть положительными весами или без отрицательных весовых циклов. Я думаю, что вы должны приложить усилия, чтобы сформулировать их, а не позволять людям искать в бесконечном пространстве возможных предположений. Что касается результатов твердости, это также трудно приблизиться к ряду способов, проверьте этой статье. Та же статья содержит несколько положительных результатов для важных типов графиков, но она касается самых длинных невзвешенных путей, поэтому я предполагаю, что большинство алгоритмов в статье не помогут непосредственно в вашем случае. Если вы ищете "тяжелые циклы", вы найдете ряд интересных работ, но они носят более математический характер. Если ваши веса являются малыми целыми числами (до полинома в размере graph), вы можете попытаться заменить каждое ребро невзвешенным путем, чтобы уменьшить вашу проблему до невзвешенного случая. Я надеюсь, что это поможет в какой-то степени, но у вас может быть открытая исследовательская проблема.