Большая сложность нахождения циклов в неориентированном графе - PullRequest
2 голосов
/ 06 октября 2010

Мне нужно найти сложность нахождения всех циклов в неориентированном графе, состоящем из 50 узлов. Более того, если график станет большим, изменится ли сложность и что будет, если сеть станет значительно больше. Кроме того, если я нахожу только несколько циклов, то как мне найти сложность нахождения нескольких циклов в графе.

Благодарю вас в ожидании!

Ответы [ 2 ]

0 голосов
/ 25 октября 2010

У данного графа может быть экспоненциальное количество циклов (в размере графа).Рассмотрим двудольный граф, где v i подключен к w i + 1% n , а w i подключен к v i + 1% n .

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

Конечно, на практике вы можете найти решения, которые намного быстрее, чем это.

0 голосов
/ 06 октября 2010

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

Я полагаю, что это O(V+E) подход, где V - это число вершин или узлов, а E - это число ребер или соединений.

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

...