Найти все полные подграфы внутри графика



Существует ли известный алгоритм или метод для нахождения всех полных подграфов внутри графа? У меня есть неориентированный, невзвешенный граф, и мне нужно найти все подграфы в нем, где каждый узел в подграфе связан с другим узлом в подграфе.



Существует ли для этого алгоритм?

606   2  

2 ответов:

Это известно как проблема клики ; это трудно и в целом является NP-полным, и да, есть много алгоритмов для этого.

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

Из Википедии

В информатике проблема клики относится к любой из проблем связано с нахождением конкретных полных подграфов ("клик") в графе, то есть наборов элементов, где каждая пара элементов связана.

Проблемы клики включают в себя:

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

Все эти задачи трудны: задача решения клики является NP-полной (одна из 21 NP-полных задач карпа), задача нахождения максимальной клики является трудноразрешимой с фиксированными параметрами и трудной для аппроксимации, а перечисление всех максимальных клик может потребовать экспоненциального времени, поскольку существуют графики с экспоненциально большим числом максимальных клик. Тем не менее, существуют алгоритмы для этих задач, которые работают в экспоненциальном времени или которые обрабатывают некоторые более специализированные входные графики в полиномиальном времени.

См. также

Ну задача нахождения K-вершинного подграфа в графе размера n имеет сложность

O (n^k k^2)

Так как есть n^k подграфы для проверки, и каждый из них имеет k^2 ребра.

То, что вы просите, найти все подграфы в графе является NP-полной задачей и объясняется в алгоритме Брона-Кербоша, приведенном выше.

Comments

    Ничего не найдено.