Задача о клике: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
мНет описания правки
Строка 2: Строка 2:


[[Image:6n-graf-clique.svg|right|300px|thumb|Граф с кликой размера 3.]]
[[Image:6n-graf-clique.svg|right|300px|thumb|Граф с кликой размера 3.]]
'''Кликой''' в неориентированном [[Граф (математика)|графе]] называется подмножество вершин, каждые две из которых соединены ребром графа. Иными словами, это ''полный подграф первоначального графа''. Размер клики это число вершин, содержащихся в ней. Задача разрешения выглядит так: существует ли в заданном графе ''G'' клика размера ''k''? Соответствующая ей оптимизационная задача формулируется следующим образом: в заданном графе ''G'' требуется найти клику максимального размера. Это и есть '''задача о клике'''.
'''Кликой''' в неориентированном [[Граф (математика)|графе]] называется подмножество вершин, каждые две из которых соединены ребром графа. Иными словами, это ''полный подграф'' первоначального графа. Размер клики определяется как число вершин в ней. Задача разрешения выглядит так: существует ли в заданном графе ''G'' клика размера ''k''? Соответствующая ей оптимизационная задача формулируется следующим образом: в заданном графе ''G'' требуется найти клику максимального размера. Это и есть '''задача о клике'''.


NP-полнота данной задачи следует из NP-полноты [[Задача о независимом наборе|задачи о независимом наборе]]. Легко показать, что необходимым и достаточным условием для существования клики размера ''k'' является наличие независимого набора размера не менее ''k'' в дополнении графа. Это очевидно, поскольку полнота подграфа означает, что его дополнение не содержит ни одного ребра.
NP-полнота данной задачи следует из NP-полноты [[Задача о независимом множестве|задачи о независимом множестве]] (вершин). Легко показать, что необходимым и достаточным условием для существования клики размера ''k'' является наличие независимого множестве размера не менее ''k'' в дополнении графа. Это очевидно, поскольку полнота подграфа означает, что его дополнение не содержит ни одного ребра.


Другое доказательство NP-полноты можно найти в книге "Алгоритмы: построение и анализ" (Т.Кормен, Ч.Лейзерсон, Р.Ривест)
Другое доказательство NP-полноты можно найти в книге "Алгоритмы: построение и анализ" (Т.Кормен, Ч.Лейзерсон, Р.Ривест)

Версия от 12:33, 20 октября 2008

Задача о клике относится к классу NP-полных задач в области теории графов. Впервые она была сформулирована в 1972 году Ричардом Карпом в его работе "Reducibility Among Combinatorial Problems" ("Возможность редукции в комбинаторных задачах")

Граф с кликой размера 3.

Кликой в неориентированном графе называется подмножество вершин, каждые две из которых соединены ребром графа. Иными словами, это полный подграф первоначального графа. Размер клики определяется как число вершин в ней. Задача разрешения выглядит так: существует ли в заданном графе G клика размера k? Соответствующая ей оптимизационная задача формулируется следующим образом: в заданном графе G требуется найти клику максимального размера. Это и есть задача о клике.

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

Другое доказательство NP-полноты можно найти в книге "Алгоритмы: построение и анализ" (Т.Кормен, Ч.Лейзерсон, Р.Ривест)

Алгоритмы

Как и для любой NP-полной задачи, эффективного алгоритма для поиска клики заданного размера не существует. Перебор всех возможных подграфов размера k с проверкой того, является ли хотя бы один из них полным, - неэффективен, поскольку полное число таких подграфов в графе с V вершинами равно

Другой алгоритм работает так: две клики размера n и m "склеиваются" в большую клику размера n+m, причем кликой размера 1 полагается отдельная вершина графа. Алгоритм завершается, как только ни одного слияния больше произвести нельзя. Время работы данного алгоритма линейно, однако он является эвристическим, поскольку не всегда приводит к нахождению клики максимального размера. В качестве примера неудачного завершения можно привести случай, когда вершины, принадлежащие максимальной клике, оказываются разделены и находятся в кликах меньшего размера, причем последние уже не могут быть "склеены" между собой

Литература

  • Cook, Stephen A. (1971). "The Complexity of Theorem-Proving Procedures". Proceedings of the Third Annual ACM Symposium on Theory of Computing. Shaker Heights, Ohio. pp. 151–158. Дата обращения: 11 июня 2007. {{cite conference}}: Неизвестный параметр |booktitle= игнорируется (|book-title= предлагается) (справка)
  • Karp, Richard (1972). "Reducibility Among Combinatorial Problems". Proceedings of a Symposium on the Complexity of Computer Computations. Plenum Press. {{cite conference}}: Неизвестный параметр |booktitle= игнорируется (|book-title= предлагается) (справка)
  • Garey, Michael R.; Johnson, David S. (1979), Computers and Intractability: A Guide to the Theory of NP-Completeness, W.H. Freeman, ISBN 0-7167-1045-5 A1.2: GT19, pg.194.

Ссылки