Найти все полные подграфы внутри графика
Существует ли известный алгоритм или метод для нахождения всех полных подграфов внутри графа? У меня есть неориентированный, невзвешенный граф, и мне нужно найти все подграфы в нем, где каждый узел в подграфе связан с другим узлом в подграфе.
Существует ли для этого алгоритм?
2 ответов:
Это известно как проблема клики ; это трудно и в целом является NP-полным, и да, есть много алгоритмов для этого.
Если граф обладает дополнительными свойствами (например, двудольный), то задача становится значительно проще и разрешима за полиномиальное время, но в остальном она очень сложна и полностью разрешима только для небольших графов.
Из Википедии
В информатике проблема клики относится к любой из проблем связано с нахождением конкретных полных подграфов ("клик") в графе, то есть наборов элементов, где каждая пара элементов связана.
Проблемы клики включают в себя:
- нахождение максимальной клики (клики с наибольшим числом вершин),
- нахождение клики максимального веса во взвешенном графе,
- перечисление всех максимальных клик (клики, которые не могут быть увеличены)
- решение задачи принятия решения о проверке того, содержит ли граф клика больше заданного размера.
Все эти задачи трудны: задача решения клики является NP-полной (одна из 21 NP-полных задач карпа), задача нахождения максимальной клики является трудноразрешимой с фиксированными параметрами и трудной для аппроксимации, а перечисление всех максимальных клик может потребовать экспоненциального времени, поскольку существуют графики с экспоненциально большим числом максимальных клик. Тем не менее, существуют алгоритмы для этих задач, которые работают в экспоненциальном времени или которые обрабатывают некоторые более специализированные входные графики в полиномиальном времени.
См. также
Ну задача нахождения K-вершинного подграфа в графе размера n имеет сложность
O (n^k k^2)
Так как есть
n^kподграфы для проверки, и каждый из них имеетk^2ребра.То, что вы просите, найти все подграфы в графе является NP-полной задачей и объясняется в алгоритме Брона-Кербоша, приведенном выше.
Comments