Jump to content

Проблема с щелчком

Это хорошая статья. Нажмите здесь для получения дополнительной информации.
(Перенаправлено из задачи о максимальной клике )

Алгоритм грубого перебора находит 4-клику в этом 7-вершинном графе (дополнение к 7-вершинному графу путей ) путем систематической проверки всех C (7,4) = 35 4-вершинных подграфов на полноту.

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

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

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

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

История и приложения

[ редактировать ]

Изучение полных подграфов в математике предшествовало терминологии «клики». Например, полные подграфы впервые появляются в математической литературе в теоретико-графовой переформулировке теории Рамсея Эрдешем и Секересом (1935) . Но термин «клика» и проблема алгоритмического составления списка клик пришли из социальных наук, где полные подграфы используются для моделирования социальных клик — групп людей, которые все знают друг друга. Люс и Перри (1949) использовали графики для моделирования социальных сетей и адаптировали терминологию социальных наук к теории графов. Они были первыми, кто назвал полные подграфы «кликами». Первый алгоритм решения проблемы клики предложен Харари и Росс (1957) : [1] которые были мотивированы социологическим применением. Исследователи социальных наук также определили различные другие типы клик и максимальных клик в социальной сети, «сплоченные подгруппы» людей или актеров в сети, каждый из которых разделяет один из нескольких различных типов отношений связи. Многие из этих обобщенных понятий клик можно также найти, построив неориентированный граф, ребра которого представляют собой связанные пары актеров из социальной сети, а затем применив к этому графу алгоритм решения проблемы клики. [2]

После работы Харари и Росс многие другие разработали алгоритмы для различных версий проблемы клики. [1] В 1970-х годах исследователи начали изучать эти алгоритмы с точки зрения анализа наихудшего случая . См., например, Тарьян и Трояновски (1977) , раннюю работу по наихудшей сложности проблемы максимальной клики. Также в 1970-х годах, начиная с работы Кука (1971) и Карпа (1972) , исследователи начали использовать теорию NP-полноты и связанные с ней результаты трудноразрешимости для математического объяснения предполагаемой сложности проблемы клики. В 1990-х годах появилась революционная серия статей, начавшаяся с Feige et al. (1991) показали, что (при условии, что P ≠ NP ) невозможно даже точно и эффективно аппроксимировать задачу.

Алгоритмы поиска клик использовались в химии для поиска химических веществ, соответствующих целевой структуре. [3] и моделировать молекулярную стыковку и места связывания химических реакций. [4] Их также можно использовать для поиска схожих структур внутри разных молекул. [5] В этих приложениях формируется граф, в котором каждая вершина представляет согласованную пару атомов, по одному от каждой из двух молекул. Две вершины соединены ребром, если совпадения, которые они представляют, совместимы друг с другом. Совместимость может означать, например, что расстояния между атомами внутри двух молекул примерно равны, в пределах некоторого заданного допуска. Клика на этом графе представляет собой набор совпадающих пар атомов, в которых все совпадения совместимы друг с другом. [6] Частным случаем этого метода является использование модульного произведения графов для сведения задачи нахождения максимального общего индуцированного подграфа двух графов к задаче нахождения максимальной клики в их произведении. [7]

При автоматической генерации тестовых шаблонов поиск клик может помочь ограничить размер тестового набора. [8] В биоинформатике алгоритмы поиска клик использовались для построения эволюционных деревьев . [9] предсказывать белковые структуры , [10] и найти тесно взаимодействующие кластеры белков. [11] Составление списка клик на графе зависимостей — важный шаг в анализе некоторых случайных процессов. [12] В математике гипотеза Келлера лицом к лицу о мозаике гиперкубов была опровергнута Лагариасом и Шором (1992) , которые использовали алгоритм поиска клик на связанном графе, чтобы найти контрпример. [13]

Определения

[ редактировать ]
Показанный граф имеет одну максимальную клику, треугольник {1,2,5}, и еще четыре максимальные клики, пары {2,3}, {3,4}, {4,5} и {4,6}. .

Неориентированный граф состоит из конечного набора вершин вершин , и набора неупорядоченных пар которые называются ребрами . По соглашению при анализе алгоритмов количество вершин в графе обозначается n , а количество ребер — m . Клика графе G это полный подграф графа G. в То есть это подмножество K таких вершин, что каждые две вершины в K являются двумя конечными точками ребра в G . Максимальная клика — это клика, к которой нельзя добавить больше вершин. Для каждой вершины v , которая не является частью максимальной клики, должна существовать другая вершина w , находящаяся в клике и не смежная с v , что предотвращает v добавление в клику. Максимальная клика — это клика, включающая максимально возможное число вершин. Число клики ω ( G ) — это количество вершин в максимальной клике G. графа [1]

Было изучено несколько тесно связанных задач поиска клик. [14]

  • В задаче о максимальной клике входными данными является неориентированный граф, а выходными данными — максимальная клика в графе. Если существует несколько максимальных клик, одна из них может быть выбрана произвольно. [14]
  • В задаче о взвешенной максимальной клике входными данными является неориентированный граф с весами на вершинах (или, реже, ребрах), а выходными данными является клика с максимальным общим весом. Задача о максимальной клике — это частный случай, когда все веса равны. [15] Помимо задачи оптимизации суммы весов, изучались и другие, более сложные задачи бикритериальной оптимизации. [16]
  • В задаче о перечислении максимальных клик входными данными является неориентированный граф, а выходными данными — список всех его максимальных клик. Задачу о максимальной клике можно решить, используя в качестве подпрограммы алгоритм задачи о перечислении максимальной клики, поскольку максимальная клика должна быть включена среди всех максимальных клик. [17]
  • В задаче k -клики входными данными являются неориентированный граф и число k . Результатом является клика с k -клики не существует вершинами, если таковая существует, или специальное значение, указывающее, что в противном случае k . В некоторых вариантах этой задачи в выходных данных должны быть перечислены все клики размера k . [18]
  • В задаче решения клики входными данными являются неориентированный граф и число k , а выходными данными является логическое значение : true, если граф содержит k -клику, и false в противном случае. [19]

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

Проблема клики и проблема независимого множества дополняют друг друга: клика в G является независимым множеством в графе дополнений G , и наоборот. [20] Следовательно, многие результаты вычислений могут быть одинаково хорошо применены к любой проблеме, и в некоторых исследовательских работах нет четкого различия между этими двумя проблемами. Однако эти две проблемы имеют разные свойства применительно к ограниченным семействам графов. Например, задача о клике может быть решена за полиномиальное время для плоских графов. [21] в то время как задача о независимом множестве остается NP-трудной на планарных графах. [22]

Алгоритмы

[ редактировать ]

Нахождение одной максимальной клики

[ редактировать ]

Максимальная клика, иногда называемая максимальной по включению, — это клика, которая не входит в более крупную клику. Следовательно, каждая клика содержится в максимальной клике. [23] Максимальные клики могут быть очень маленькими. Граф может содержать немаксимальную клику со многими вершинами и отдельную клику размера 2, которая является максимальной. Хотя максимальная (т. е. наибольшая) клика обязательно является максимальной, обратное неверно. Существуют типы графов, в которых каждая максимальная клика является максимальной; это дополнения к хорошо покрытым графам , в которых каждое максимальное независимое множество является максимальным. [24] Однако в других графах максимальные клики не являются максимальными.

Одну максимальную клику можно найти с помощью простого жадного алгоритма . Начиная с произвольной клики (например, любой отдельной вершины или даже пустого набора), увеличивайте текущую клику по одной вершине за раз, проходя по оставшимся вершинам графа. Для каждой вершины v , которую проверяет этот цикл, добавьте v к клике, если она смежна с каждой вершиной, которая уже находится в клике, и отбросьте v в противном случае. Этот алгоритм работает за линейное время . [25] Из-за простоты поиска максимальных клик и их потенциально небольшого размера больше внимания уделяется гораздо более сложной алгоритмической проблеме поиска максимальной или иным образом большой клики. Однако в некоторых исследованиях параллельных алгоритмов изучалась проблема поиска максимальной клики. В частности, было показано, что задача нахождения лексикографически первой максимальной клики (найденной алгоритмом, описанным выше) является полной для класса функций с полиномиальным временем . Этот результат означает, что проблема вряд ли будет разрешима в рамках параллельного класса сложности NC . [26]

Клики фиксированного размера

[ редактировать ]

ли граф G Можно проверить, содержит клику с k -вершинами, и найти любую такую ​​клику, которую он содержит, используя алгоритм грубого перебора . Этот алгоритм исследует каждый подграф с k вершинами и проверяет, образует ли он клику. Требуется время O ( n к  к 2 ) , как это выражается с использованием большой записи O.Это потому, что существует O ( n к ) подграфов для проверки, каждый из которых имеет O ( k 2 ) ребра, наличие которых в G необходимо проверить. Таким образом, проблема может быть решена за полиномиальное время , если k является фиксированной константой. Однако, когда k не имеет фиксированного значения, а вместо этого может меняться как часть входных данных для задачи, время является экспоненциальным. [27]

Самый простой нетривиальный случай задачи поиска клики — это поиск треугольника в графе или, что то же самое, определение того, является ли граф свободным от треугольников .В графе G с m ребрами может быть не более Θ( m 3/2 ) треугольники (с использованием обозначения большой тета, чтобы указать, что эта граница точна). Наихудший случай для этой формулы возникает, когда G сама является кликой. Следовательно, алгоритмы перечисления всех треугольников должны брать не менее Ω( m 3/2 ) время в худшем случае (с использованием обозначения большой омеги ), и известны алгоритмы, соответствующие этому времени. [28] Например, Чиба и Нишизеки (1985) описывают алгоритм, который сортирует вершины в порядке от высшей степени к низшей, а затем перебирает каждую вершину v в отсортированном списке, отыскивая треугольники, включающие вершину v и не включающие ни одной предыдущей вершины в отсортированный список. список. Для этого алгоритм помечает всех соседей v , просматривает все ребра, инцидентные соседу v, выдавая треугольник для каждого ребра, имеющего две отмеченные конечные точки, а затем удаляет метки и удаляет v из графа. Как показывают авторы, время работы этого алгоритма пропорционально древесности графа (обозначаемой a ( G ) ), умноженной на количество ребер, которое равно O ( m   a ( G )) . Поскольку древесность не превышает O ( m 1/2 ) , этот алгоритм выполняется за время O ( m 3/2 ) . В более общем смысле, все клики с k -вершинами могут быть перечислены с помощью аналогичного алгоритма, который требует времени, пропорционального количеству ребер, умноженному на древесность в степени ( k - 2) . Для графов постоянной древесности, таких как планарные графы (или вообще графы из любого нетривиального минорно-замкнутого семейства графов ), этот алгоритм занимает время O ( m ) , что является оптимальным, поскольку он линейен по размеру входных данных. [18]

Если вам нужен только один треугольник или уверенность в том, что граф не содержит треугольников, возможны более быстрые алгоритмы. Как заметили Итай и Роде (1978) , граф содержит треугольник тогда и только тогда, когда его матрица смежности и квадрат матрицы смежности содержат ненулевые элементы в одной и той же ячейке. Следовательно, время для нахождения треугольников за O ( n 2.376 ) . Алон, Юстер и Цвик (1994) использовали быстрое умножение матриц для улучшения O ( m 3/2 ) алгоритм поиска треугольников по O ( m 1.41 ) . Эти алгоритмы, основанные на быстром умножении матриц, также были распространены на задачи поиска k -клик для больших значений k . [29]

Перечисление всех максимальных клик

[ редактировать ]

По результату Муна и Мозера (1965) , каждый граф с n -вершинами имеет не более 3 н /3 максимальные клики. Их можно перечислить с помощью алгоритма Брона-Кербоша , рекурсивной поиска с возвратом процедуры Брона и Кербоша (1973) . Основная рекурсивная подпрограмма этой процедуры имеет три аргумента: частично построенная (немаксимальная) клика, набор вершин-кандидатов, которые можно добавить в клику, и другой набор вершин, которые не следует добавлять (поскольку это приведет к к клике, которая уже найдена). Алгоритм пытается добавить вершины-кандидаты одну за другой в частичную клику, выполняя рекурсивный вызов для каждой из них. После попытки каждой из этих вершин он перемещает ее в набор вершин, которые не следует добавлять снова. Можно показать, что варианты этого алгоритма имеют время работы в худшем случае O (3 н /3 ) , что соответствует количеству клик, которые, возможно, потребуется перечислить. [30] Таким образом, это обеспечивает оптимальное решение проблемы составления списка всех максимальных клик в наихудшем случае. Кроме того, широко сообщалось, что алгоритм Брона-Кербоша на практике работает быстрее, чем его альтернативы. [31]

Однако, когда количество клик значительно меньше, чем в худшем случае, другие алгоритмы могут быть предпочтительнее. Как Цукияма и др. (1977) показали, что также возможно перечислить все максимальные клики в графе за время, полиномиальное для каждой сгенерированной клики. Алгоритм, подобный их, в котором время работы зависит от размера выходных данных, известен как алгоритм, чувствительный к выходным данным . Их алгоритм основан на следующих двух наблюдениях, связывающих максимальные клики данного графа G с максимальными кликами графа G \ v, образованного удалением произвольной вершины v из G :

  • Для каждой максимальной клики K группы G \ v либо K продолжает образовывать максимальную клику в G , либо K ⋃ { v } максимальную клику в G. образует Следовательно, G имеет по крайней мере столько же максимальных клик, сколько и G \ v .
  • Каждая максимальная клика в G, не содержащая v, является максимальной кликой в ​​G \ v , а каждая максимальная клика в G , содержащая v, может быть образована из максимальной клики K в G \ v добавлением v и удалением несоседей. из v от К.

Используя эти наблюдения, они могут генерировать все максимальные клики в G с помощью рекурсивного алгоритма, который выбирает вершину v произвольно, а затем для каждой максимальной клики K в G \ v выводит как K , так и клику, образованную добавлением v к K и удалением ненужных клик. -соседи В. ​Однако некоторые клики G могут быть сгенерированы таким образом из более чем одной родительской клики G \ v , поэтому они устраняют дубликаты, выводя клику в G только тогда, когда ее родительский элемент в G \ v является лексикографически максимальным среди всех возможных родительских клик. На основе этого принципа они показывают, что все максимальные клики в G могут быть созданы за время O ( mn ) на клику, где m — количество ребер в G , а n — количество вершин. Чиба и Нишизеки (1985) улучшают это значение до O( ma ) на клику, где a — древесность данного графа. Макино и Уно (2004) предлагают альтернативный чувствительный к выходу алгоритм, основанный на быстром умножении матриц. Джонсон и Яннакакис (1988) показывают, что можно даже перечислить все максимальные клики в лексикографический порядок с полиномиальной задержкой на клик. Однако выбор порядка важен для эффективности этого алгоритма: для изменения этого порядкане существует алгоритма с полиномиальной задержкой, если только P = NP .

На основе этого результата можно перечислить все максимальные клики за полиномиальное время для семейств графов, в которых число клик полиномиально ограничено. Эти семейства включают хордальные графы , полные графы , графы без треугольников , интервальные графы , графы ограниченной квадратичности и плоские графы . [32] В частности, плоские графы имеют O ( n ) клик не более чем постоянного размера, которые можно перечислить за линейное время. То же самое верно для любого семейства графов, которое является одновременно разреженным (имеющим число ребер, не превышающим число вершин, умноженное на постоянное число), и замкнутым относительно операции взятия подграфов. [18] [33]

Нахождение максимальных клик в произвольных графах

[ редактировать ]

Можно найти максимальную клику или число кликов произвольного графа из n вершин за время O (3 н /3 ) = О (1,4422 н ), используя один из описанных выше алгоритмов для перечисления всех максимальных клик в графе и возврата самой большой из них. Однако для этого варианта задачи о клике возможны лучшие временные рамки для наихудшего случая. Алгоритм Тарьяна и Трояновского (1977) решает эту проблему за время O (2 н /3 ) = О (1,2599 н ) . Это рекурсивная схема поиска с возвратом, аналогичная схеме алгоритма Брона-Кербоша , но способная исключить некоторые рекурсивные вызовы, когда можно показать, что клики, найденные в вызове, будут неоптимальными. Цзянь (1986) улучшил время до О (2 0,304 н ) = О (1,2346 н ) , а Робсон (1986) улучшил его до O (2 0,276 н ) = О (1,2108 н ) времени за счет большего использования пространства. Алгоритм Робсона сочетает в себе аналогичную схему обратного отслеживания (с более сложным анализом случаев) и технику динамического программирования , в которой оптимальное решение предварительно вычисляется для всех небольших связных подграфов графа дополнения . Эти частичные решения используются для сокращения рекурсии обратного отслеживания. Самый быстрый алгоритм, известный сегодня, — это усовершенствованная версия этого метода Робсона (2001), которая работает за время O (2 0,249 н ) = О (1,1888 н ) . [34]

Также были проведены обширные исследования эвристических алгоритмов для решения задач с максимальной кликой без гарантий времени выполнения наихудшего случая, основанные на методах, включая ветвления и границы . [35] локальный поиск , [36] жадные алгоритмы , [37] и программирование ограничений . [38] Нестандартные вычислительные методы, предложенные для поиска клик, включают вычисления на ДНК. [39] и адиабатические квантовые вычисления . [40] Проблема максимальной клики была предметом задачи по реализации, спонсируемой DIMACS в 1992–1993 годах. [41] и общедоступный набор графиков, используемых в качестве ориентиров для решения задачи. [42]

Специальные классы графов

[ редактировать ]
В этом графе перестановок максимальные клики соответствуют самым длинным убывающим подпоследовательностям (4,3,1) и (4,3,2) определяющей перестановки.

Планарные графы и другие семейства разреженных графов обсуждались выше: они имеют линейное количество максимальных клик ограниченного размера, которые можно перечислить за линейное время. [18] В частности, для плоских графов по теореме Куратовского любая клика может иметь не более четырех вершин . [21]

Совершенные графы определяются тем свойством, что их кликовое число равно их хроматическому числу и что это равенство выполняется также в каждом из их индуцированных подграфов . Для идеальных графов можно найти максимальную клику за полиномиальное время, используя алгоритм, основанный на полуопределенном программировании . [43] Однако этот метод сложен и некомбинаторен, и для многих подклассов идеальных графов были разработаны специализированные алгоритмы поиска клик. [44] В дополнений двудольных графов графах теорема Кенига позволяет решить проблему максимальной клики с использованием методов сопоставления . В другом классе совершенных графов, графах перестановок , максимальная клика представляет собой самую длинную убывающую подпоследовательность перестановки, определяющей граф, и может быть найдена с использованием известных алгоритмов для задачи о самой длинной убывающей подпоследовательности. И наоборот, каждый случай проблемы самой длинной убывающей подпоследовательности можно эквивалентно описать как проблему поиска максимальной клики в графе перестановок. [45] Даже Пнуэли и Лемпель (1972) предлагают альтернативный алгоритм квадратичного времени для максимальных клик в графах сравнимости , более широком классе совершенных графов, который включает графы перестановок в качестве частного случая. [46] В хордальных графах максимальные клики можно найти, перечислив вершины в порядке исключения и проверив кликовые окрестности каждой вершины в этом порядке. [47]

В некоторых случаях эти алгоритмы можно распространить и на другие, несовершенные классы графов. Например, в круговом графе окрестность каждой вершины является графом перестановок, поэтому максимальную клику в круговом графе можно найти, применив алгоритм графа перестановок к каждой окрестности. [48] Аналогично, в графе единичного диска (с известным геометрическим представлением) существует алгоритм полиномиального времени для максимальных клик, основанный на применении алгоритма дополнения двудольных графов к общим окрестностям пар вершин. [49]

Случайный граф с посаженной кликой

Алгоритмическая задача поиска максимальной клики в случайном графе, построенном на основе модели Эрдеша-Реньи (в которой каждое ребро появляется с вероятностью 1/2 независимо от других ребер), была предложена Карпом (1976) . Поскольку максимальная клика в случайном графе с высокой вероятностью имеет логарифмический размер, онаможно найти методом перебора за ожидаемое время 2 О (лог. 2 п ) . Это квазиполиномиальное ограничение по времени. [50] Хотя число клик в таких графах обычно очень близко к 2 log 2 n , простые жадные алгоритмы , а также более сложные методы рандомизированной аппроксимации находят только клики с размером log 2 n , что вдвое меньше. Число максимальных клик в таких графах с высокой вероятностью экспоненциально в log 2 n , что предотвращает выполнение методов, перечисляющих все максимальные клики, за полиномиальное время. [51] Из-за сложности этой проблемы несколько авторов исследовали проблему установленной клики , проблему клики на случайных графах, которые были дополнены добавлением больших клик. [52] Хотя спектральные методы [53] и полуопределенное программирование [54] могут обнаруживать скрытые клики размера Ω( n ) , в настоящее время не известны алгоритмы с полиномиальным временем для обнаружения клик размера o ( n ) (выраженные с использованием обозначения Little-o ). [55]

Алгоритмы аппроксимации

[ редактировать ]

Некоторые авторы рассматривали алгоритмы аппроксимации , которые пытаются найти клику или независимое множество, которое хотя и не является максимальным, но имеет размер, максимально близкий к максимальному, который может быть найден за полиномиальное время. Хотя большая часть этой работы была сосредоточена на независимых множествах в разреженных графах, что не имеет смысла для задачи дополнительной клики, также проводились работы над алгоритмами аппроксимации, которые не используют такие предположения о разреженности. [56]

Файги (2004) описывает алгоритм с полиномиальным временем, который находит клику размера Ω((log n /log log n ) 2 ) в любом графе, имеющем кликовое число Ω( n /log к n ) для любой константы k . Используя этот алгоритм, когда число клик данного входного графа находится между n /log n и n /log 3 n , переключаясь на другой алгоритм Боппаны и Халлдорссона (1992) для графов с более высоким числом клик и выбирая клику с двумя вершинами, если оба алгоритма ничего не могут найти, Файги предлагает аппроксимационный алгоритм, который находит клику с большим количеством вершин. в пределах O( n (log log n ) 2 /бревно 3 n ) максимума. Хотя степень аппроксимации этого алгоритма слабая, на сегодняшний день он является наиболее известным. [57] Описанные ниже результаты по твердости аппроксимации позволяют предположить, что не может быть алгоритма аппроксимации со степенью аппроксимации, значительно меньшей линейной.

Нижние границы

[ редактировать ]

NP-полнота

[ редактировать ]
Пример выполнимости 3-КНФ (x ∨ x ∨ y) ∧ (~x ∨ ~y ∨ ~y) ∧ (~x ∨ y ∨ y), сведенный к клике. Зеленые вершины образуют 3-клику и соответствуют удовлетворяющему заданию. [58]

Задача решения клики является NP-полной . Это была одна из первых 21 задач Ричарда Карпа, показанная NP-полной в его статье 1972 года «Сводимость среди комбинаторных задач». [59] Эта проблема также упоминалась в статье Стивена Кука , представляющей теорию NP-полных задач. [60] Из-за сложности решения задача поиска максимальной клики также является NP-трудной. Если бы можно было решить эту проблему, можно было бы также решить проблему принятия решения, сравнив размер максимальной клики с параметром размера, заданным в качестве входных данных в задаче принятия решения.

Доказательство NP-полноты Карпа представляет собой «многие единицы» сокращение проблемы булевой выполнимости по принципу . В нем описывается, как перевести булевы формулы в конъюнктивной нормальной форме (КНФ) в эквивалентные примеры задачи о максимальной клике. [61] Выполнимость, в свою очередь, была доказана NP-полной в теореме Кука–Левина . Из заданной формулы CNF Карп формирует граф, который имеет вершину для каждой пары ( v , c ) , где v — переменная или ее отрицание, а c — предложение в формуле, содержащее v . Две из этих вершин соединены ребром, если они представляют совместимые назначения переменных для разных предложений. То есть существует ребро от ( v , c ) до ( u , d ) всякий раз, когда c d и u и v не являются отрицаниями друг друга. Если k обозначает количество предложений в формуле CNF, то клики k -вершин в этом графе представляют собой последовательные способы присвоения значений истинности некоторым из ее переменных, чтобы удовлетворить формуле. Следовательно, формула выполнима тогда и только тогда, когда существует клика k -вершин. [59]

Некоторые NP-полные задачи (например, задача коммивояжера в плоских графах ) могут быть решены за время, экспоненциальное в сублинейной функции входного параметра размера n , что значительно быстрее, чем поиск методом грубой силы. [62] Однако маловероятно, что такая субэкспоненциальная оценка времени возможна для задачи о клике в произвольных графах, поскольку это означало бы аналогичные субэкспоненциальные оценки для многих других стандартных NP-полных задач. [63]

Сложность схемы

[ редактировать ]
Монотонный контур для обнаружения k -клики в n- вершинном графе для k = 3 и n = 4 . Каждый вход схемы кодирует наличие или отсутствие определенного (красного) ребра в графе. В схеме используется один внутренний элемент «и» для обнаружения каждой потенциальной k -клики.

Вычислительная сложность задачи о клике привела к тому, что ее использовали для доказательства нескольких нижних оценок сложности схемы . Существование клики заданного размера является свойством монотонного графа , означающим, что если клика существует в данном графе, она будет существовать и в любом суперграфе . Поскольку это свойство является монотонным, должна существовать монотонная схема, использующая только и вентили и/ или вентили для решения проблемы решения клики для заданного фиксированного размера клики. Однако можно доказать, что размер этих схем является суперполиномиальной функцией количества вершин и размера клики, экспоненциальной относительно кубического корня из числа вершин. [64] небольшое количество вентилей НЕ , сложность остается суперполиномиальной. Даже если разрешено [65] Кроме того, глубина монотонной схемы для задачи о клике с использованием вентилей ограниченного веера должна быть как минимум полиномом от размера клики. [66]

Сложность дерева решений

[ редактировать ]
Простое дерево решений для обнаружения присутствия 3-клики в 4-вершинном графе. В нем используется до 6 вопросов вида «Существует ли красное ребро?», соответствующих оптимальной границе n ( n - 1)/2.

(Детерминированная) сложность дерева решений определения свойства графа представляет собой количество вопросов вида «Есть ли ребро между вершиной u и вершиной v ?» на которые нужно ответить в худшем случае, чтобы определить, обладает ли граф определенным свойством. То есть это минимальная высота логического дерева решений задачи. Можно n ( n − 1)/2 задать вопросов. Следовательно, любое свойство графа можно определить, задав не более n ( n − 1)/2 вопросов. Также можно определить случайную и квантовую сложность дерева решений свойства, ожидаемое количество вопросов (для входных данных в худшем случае), на которые должен ответить рандомизированный или квантовый алгоритм, чтобы правильно определить, обладает ли данный граф свойством . [67]

Поскольку свойство содержания клики является монотонным, оно покрывается гипотезой Андераа-Карпа-Розенберга , которая утверждает, что сложность детерминированного дерева решений для определения любого нетривиального свойства монотонного графа равна ровно n ( n - 1)/2 . Для произвольных свойств монотонного графа эта гипотеза остается недоказанной. Однако для детерминированных деревьев решений и для любого k в диапазоне 2 ≤ k n свойство содержания k -клики имеет сложность дерева решений ровно n ( n − 1)/2 Боллобасом (1976) . Детерминированные деревья решений также требуют экспоненциального размера для обнаружения клик или большого полиномиального размера для обнаружения клик ограниченного размера. [68]

Гипотеза Андераа–Карпа–Розенберга также утверждает, что сложность рандомизированного дерева решений нетривиальных монотонных функций равна Θ( n 2 ) . Гипотеза снова остается недоказанной, но была решена в отношении свойства содержания k клики для 2 ≤ k n . Известно, что это свойство имеет рандомизированную сложность дерева решений Θ( n 2 ) . [69] Для квантовых деревьев решений наиболее известная нижняя граница — это Ω( n ) , но алгоритм сопоставления для случая k ≥ 3 неизвестен . [70]

Неразрешимость с фиксированными параметрами

[ редактировать ]

Параметризованная сложность — это теоретико-сложное исследование задач, которые естественным образом снабжены небольшим целочисленным параметром k и для которых проблема становится более сложной по мере увеличения k , например, поиск k -клик в графах. Говорят, что проблема решаема с фиксированными параметрами, если существует алгоритм ее решения на входных данных размера n и функция f , такая, что алгоритм работает за время f ( k ) n О (1) . То есть задача с фиксированным параметром разрешима, если ее можно решить за полиномиальное время для любого фиксированного значения k и, более того, если показатель степени многочлена не зависит от k . [71]

Для поиска клик с k -вершинами алгоритм поиска методом перебора имеет время работы O( n к к 2 ) . Поскольку показатель степени n зависит от k , этот алгоритм не является управляемым с фиксированными параметрами.Хотя его можно улучшить с помощью быстрого умножения матриц , время выполнения по-прежнему имеет показатель степени, линейный по k . Таким образом, хотя время работы известных алгоритмов для задачи о кликах является полиномиальным для любого фиксированного k , этих алгоритмов недостаточно для управляемости с фиксированными параметрами. Дауни и Феллоуз (1995) определили иерархию параметризованных задач, иерархию W, которая, по их предположению, не имеет управляемых алгоритмов с фиксированными параметрами. Они доказали, что независимое множество (или, что то же самое, клика) сложно для первого уровня этой иерархии W[1] . Таким образом, согласно их гипотезе, клика не имеет управляемого алгоритма с фиксированными параметрами. Более того, этот результат дает основу для доказательства W[1]-трудности многих других задач и, таким образом, служит аналогом теоремы Кука–Левина для параметризованной сложности. [72]

Чен и др. (2006) показали, что найти клики с k -вершинами невозможно за время n хорошо ) если только гипотеза экспоненциального времени не подтвердится. Опять же, это доказывает, что никакой управляемый алгоритм с фиксированными параметрами невозможен. [73]

Хотя проблемы составления списка максимальных клик или поиска максимальных клик вряд ли будут решаемы с фиксированным параметром с помощью параметра k , они могут быть решены с фиксированным параметром для других параметров экземплярной сложности. Например, известно, что обе проблемы решаются с фиксированными параметрами, если они параметризованы вырожденностью входного графа. [33]

Твердость аппроксимации

[ редактировать ]
График отношений совместимости между 2-битными выборками 3-битных строк доказательства. Каждая максимальная клика (треугольник) на этом графе представляет все способы выборки одной 3-битной строки. Доказательство неаппроксимируемости задачи о клике включает индуцированные подграфы аналогично определенных графов для большего числа битов.

Слабые результаты, указывающие на то, что задачу о клике сложно аппроксимировать, известны уже давно. Гари и Джонсон (1978) заметили, что, поскольку число клик принимает небольшие целые значения и его NP-трудно вычислить, оно не может иметь полностью полиномиальную схему аппроксимации , если только P = NP. Если бы было доступно слишком точное приближение, округление его значения до целого числа дало бы точное число клик. Однако мало что было известно до начала 1990-х годов, когда несколько авторов начали проводить связь между аппроксимацией максимальных клик и вероятностно проверяемыми доказательствами . Они использовали эти связи для доказательства сложности результатов аппроксимации задачи о максимальной клике. [74] После многих улучшений этих результатов теперь известно, что для каждого действительного числа ε > 0 не может быть алгоритма с полиномиальным временем, который аппроксимирует максимальную клику с точностью до раза лучше, чем O ( n 1 - е ) , если только P = NP . [75]

Грубая идея этих результатов о неаппроксимируемости состоит в том, чтобы сформировать граф, который представляет собой вероятностно проверяемую систему доказательств для NP-полной проблемы, такой как проблема булевой выполнимости. В вероятностно проверяемой системе доказательств доказательство представляется в виде последовательности битов. Экземпляр проблемы выполнимости должен иметь валидное доказательство тогда и только тогда, когда он выполним. Доказательство проверяется с помощью алгоритма, который после вычислений за полиномиальное время на входных данных задачи выполнимости выбирает проверку небольшого количества случайно выбранных позиций строки доказательства. В зависимости от того, какие значения найдены в этой выборке битов, программа проверки либо примет, либо отклонит доказательство, не обращая внимания на остальные биты. Ложноотрицательные результаты не допускаются: всегда необходимо принимать действительное доказательство. Однако иногда недействительное доказательство может быть ошибочно принято. Для каждого недействительного доказательства вероятность того, что проверяющая сторона его примет, должна быть низкой. [76]

Чтобы преобразовать вероятностно проверяемую систему доказательств этого типа в задачу клики, формируют граф с вершиной для каждого возможного приемочного прогона средства проверки доказательств. То есть вершина определяется одним из возможных случайных выборов наборов позиций для проверки и значениями битов для тех позиций, которые заставят проверяющую программу принять доказательство. Оно может быть представлено частью слова с 0 или 1 в каждой исследуемой позиции и подстановочным знаком в каждой оставшейся позиции. В этом графе две вершины являются смежными, если соответствующие два принимающих запуска видят одни и те же значения битов в каждой позиции, которую они оба проверяют. Каждая (действительная или недействительная) строка доказательства соответствует клике, множеству принимающих серий, которые видят эту строку доказательства, и все максимальные клики возникают таким образом. Одна из этих клик велика тогда и только тогда, когда она соответствует строке доказательства, которую принимают многие программы проверки доказательств. Если исходный экземпляр выполнимости является выполнимым, он будет иметь действительную строку доказательства, которая принимается всеми запусками программы проверки, и эта строка будет соответствовать большой клике в графе. Однако если исходный экземпляр неудовлетворителен, то все строки доказательства недействительны, каждая строка доказательства имеет лишь небольшое количество прогонов проверки, которые ошибочно принимают ее, и все клики малы. Следовательно, если бы можно было за полиномиальное время отличить графы с большими кликами от графов, в которых все клики малы, или если бы можно было точно аппроксимировать задачу о клике, то применение этого приближения к графам, сгенерированным из экземпляров выполнимости, позволило бы выполнимым экземплярам отличать от неудовлетворительных примеров. Однако это невозможно, если P = NP. [76]

Примечания

[ редактировать ]
  1. ^ Перейти обратно: а б с Бомзе и др. (1999) ; Гутин (2004) .
  2. ^ Вассерман и Фауст (1994) .
  3. ^ Родос и др. (2003) .
  4. ^ Куль, Криппен и Фризен (1983) .
  5. ^ Комитет Национального исследовательского совета по математическим проблемам вычислительной химии (1995) . См., в частности, стр. 35–36 .
  6. ^ Мюгге и Рэри (2001) . См., в частности, стр. 6–7 .
  7. ^ Барроу и Берстолл (1976) .
  8. ^ Хамзаоглу и Патель (1998) .
  9. ^ Дэй и Санкофф (1986) .
  10. ^ Самудрала и Моулт (1998) .
  11. ^ Спирин и Мирный (2003) .
  12. ^ Франк и Штраус (1986) .
  13. ^ Граф Келлера, используемый Лагариасом и Шором (1992), имеет 1048576 вершин и размер клики 1024. Они описали синтетическую конструкцию клики, но также использовали алгоритмы поиска клик на меньших графах, чтобы помочь в поиске. Макки (2002) упростил доказательство, найдя клику размера 256 в графе Келлера с 65536 вершинами.
  14. ^ Перейти обратно: а б Храбрый (2002) ; Пелилло (2009) .
  15. ^ Пелилло (2009) .
  16. ^ Сетураман и Бутенко (2015) .
  17. ^ Храбрый (2002) .
  18. ^ Перейти обратно: а б с д Чиба и Нисидзеки (1985) .
  19. ^ Перейти обратно: а б Кормен и др. (2001) .
  20. ^ Кормен и др. (2001) , Упражнение 34-1, с. 1018.
  21. ^ Перейти обратно: а б Пападимитриу и Яннакакис (1981) ; Чиба и Нисидзеки (1985) .
  22. ^ Гари, Джонсон и Стокмейер (1976) .
  23. ^ См., например, Frank & Strauss (1986) .
  24. ^ Пламмер (1993) .
  25. ^ Скиена (2009) , с. 526 .
  26. ^ Кук (1985) .
  27. ^ Например, см. Downey & Fellows (1995) .
  28. ^ Итай и Роде (1978) предлагают алгоритм с O ( m 3/2 ) время выполнения, которое находит треугольник, если он существует, но не перечисляет все треугольники; Чиба и Нишизеки (1985) перечисляют все треугольники за время O ( m 3/2 ) .
  29. ^ Эйзенбранд и Грандони (2004) ; Клокс, Крач и Мюллер (2000) ; Нешетрил и Поляк (1985) ; Василевска и Уильямс (2009) ; Юстер (2006) .
  30. ^ Томита, Танака и Такахаши (2006) .
  31. ^ Казальс и Каранде (2008) ; Эппштейн, Леффлер и Страш (2013) .
  32. ^ Росген и Стюарт (2007) .
  33. ^ Перейти обратно: а б Эппштейн, Леффлер и Страш (2013) .
  34. ^ Робсон (2001) .
  35. ^ Балас и Ю (1986) ; Карраган и Пардалос (1990) ; Пардалос и Роджерс (1992) ; Остергорд (2002) ; Фале (2002) ; Томита и Секи (2003) ; Томита и Камеда (2007) ; Конц и Янежич (2007) .
  36. ^ Баттити и Протаси (2001) ; Катаяма, Хамамото и Нарихиса (2005) .
  37. ^ Абелло, Пардалос и Ресенде (1999) ; Гроссо, Локателли и Делла Кроче (2004) .
  38. ^ Регин (2003) .
  39. ^ Оуян и др. (1997) . Хотя в названии говорится о максимальных кликах, проблема, которую решает эта статья, на самом деле является проблемой максимальной клики.
  40. ^ Чайлдс и др. (2002) .
  41. ^ Джонсон и Трик (1996) .
  42. ^ Графики задач DIMACS для задачи клики . Архивировано 30 марта 2018 г. на Wayback Machine , по состоянию на 17 декабря 2009 г.
  43. ^ Гретшель, Ловас и Шрийвер (1988) .
  44. ^ Голуббик (1980) .
  45. ^ Голуббик (1980) , с. 159.
  46. ^ Эвен, Пнуэли и Лемпель (1972) .
  47. ^ Блэр и Пейтон (1993) , Лемма 4.5, с. 19.
  48. ^ Гаврил (1973) ; Голуббик (1980) , с. 247.
  49. ^ Кларк, Колборн и Джонсон (1990) .
  50. ^ Песня (2015) .
  51. ^ Джеррум (1992) .
  52. ^ Арора и Барак (2009) , Пример 18.2, стр. 362–363.
  53. ^ Алон, Кривелевич и Судаков (1998) .
  54. ^ Файги и Краутгеймер (2000) .
  55. ^ Meka, Potechin & Wigderson (2015) .
  56. ^ Боппана и Халлдорссон (1992) ; Файги (2004) ; Халлдорссон (2000) .
  57. ^ Лю и др. (2015) : «Что касается количества вершин в графах, Файги показывает известный на данный момент лучший коэффициент аппроксимации». Лю и др. мы пишем о максимальном независимом множестве , но для целей аппроксимации между этими двумя задачами нет разницы.
  58. ^ Адаптировано из Сипсера (1996).
  59. ^ Перейти обратно: а б Карп (1972) .
  60. ^ Кук (1971) .
  61. ^ Кук (1971) дает по существу такое же сокращение от 3-SAT вместо выполнимости, чтобы показать, что изоморфизм подграфов NP-полный.
  62. ^ Липтон и Тарьян (1980) .
  63. ^ Импальяццо, Патури и Зейн (2001) .
  64. ^ Алон и Боппана (1987) . Более ранние и более слабые оценки монотонных схем для задачи о клике см. в Valiant (1983) и Razborov (1985) .
  65. ^ Мудрость и многое другое (2005) .
  66. ^ Гольдманн и Хостад (1992) использовали сложность коммуникации , чтобы доказать этот результат.
  67. ^ См. Арора и Барак (2009) , глава 12, «Деревья решений», стр. 259–269.
  68. ^ Вегенер (1988) .
  69. ^ Например, это следует из Gröger (1992) .
  70. ^ Чайлдс и Айзенберг (2005) ; Магьес, Санта и Сегеди (2007) .
  71. ^ Дауни и товарищи (1999) . Технически обычно существует дополнительное требование, чтобы f была вычислимой функцией .
  72. ^ Дауни и товарищи (1995) .
  73. ^ Чен и др. (2006) .
  74. ^ Файги и др. (1991) ; Арора и Сафра (1998) ; Арора и др. (1998) .
  75. ^ Хостад (1999) показал неаппроксимируемость этого соотношения, используя более сильное предположение теории сложности - неравенство NP и ZPP . Хот (2001) более точно описал коэффициент неаппроксимации, но с еще более сильным предположением. Цукерман (2006) дерандомизировал конструкцию, ослабив ее предположение до P ≠ NP.
  76. ^ Перейти обратно: а б Первоначально это снижение было связано с Feige et al. (1991) и использовался во всех последующих доказательствах неприближаемости; Доказательства различаются по силе и деталям вероятностно проверяемых систем доказательств, на которые они опираются.

Опросы и учебники

[ редактировать ]

Научные статьи

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d3ee86a270f6d9cae19231582f5fe65e__1718228040
URL1:https://arc.ask3.ru/arc/aa/d3/5e/d3ee86a270f6d9cae19231582f5fe65e.html
Заголовок, (Title) документа по адресу, URL1:
Clique problem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)