Problemă cu clica - Clique problem
În informatică , problema clică este problema de calcul a găsirii clicurilor (subseturi de vârfuri, toate adiacente unele cu altele, numite și subgrafe complete ) într-un grafic . Are mai multe formulări diferite, în funcție de care clici și ce informații ar trebui să fie găsite. Formulările obișnuite ale problemei clici includ găsirea unei clici maxime (o clică cu cel mai mare număr posibil de vârfuri), găsirea unei clici de greutate maximă într-un grafic ponderat, listarea tuturor clici maxime (clici care nu pot fi mărite) și rezolvarea problemei deciziei. de a testa dacă un grafic conține o clică mai mare decât o dimensiune dată.
Problema clică apare în următoarea situație din lumea reală. Luați în considerare o rețea socială , în care vârfurile graficului reprezintă oameni, iar marginile graficului reprezintă cunoștințe reciproce. Apoi, o clică reprezintă un subset de oameni care se cunosc cu toții, iar algoritmii pentru găsirea unor clici pot fi folosiți pentru a descoperi aceste grupuri de prieteni comuni. Împreună cu aplicațiile sale în rețelele de socializare, problema clică are, de asemenea, multe aplicații în bioinformatică și chimie computațională .
Majoritatea versiunilor problemei clici sunt dificile. Problema deciziei de clică este NP-completă (una dintre cele 21 de probleme Karp-NP-complete ). Problema de a găsi clica maximă este atât de fixă cu parametri fixi, cât și greu de aproximat . Și, listarea tuturor clicurilor maxime poate necesita timp exponențial, deoarece există grafice cu multe clicuri maxime exponențial. Prin urmare, o mare parte din teoria despre problema clică este dedicată identificării tipurilor speciale de grafice care admit algoritmi mai eficienți sau stabilirii dificultății de calcul a problemei generale în diferite modele de calcul.
Pentru a găsi o clică maximă, se pot inspecta sistematic toate subseturile, dar acest tip de căutare cu forță brută necesită prea mult timp pentru a fi practic pentru rețelele care cuprind mai mult de câteva zeci de vârfuri. Deși nu se cunoaște niciun algoritm de timp polinomial pentru această problemă, sunt cunoscuți algoritmi mai eficienți decât căutarea cu forță brută. De exemplu, algoritmul Bron – Kerbosch poate fi folosit pentru a enumera toate clice maxime în cel mai rău timp optim și este, de asemenea, posibil să le listăm în timp polinomial pe clică.
Istorie și aplicații
Studiul subgrafelor complete în matematică precede terminologia „clică”. De exemplu, subgrafele complete fac o apariție timpurie în literatura matematică în reformularea teoretică a graficului a teoriei Ramsey de Erdős & Szekeres (1935) . Dar termenul „clică” și problema listării algoritmice a clicurilor provin ambele din științele sociale, unde subgrafele complete sunt folosite pentru a modela clici sociale , grupuri de oameni care se cunosc toți. Luce & Perry (1949) au folosit grafice pentru a modela rețelele sociale și au adaptat terminologia științelor sociale la teoria graficelor. Au fost primii care au numit subgrafele complete „clici”. Primul algoritm pentru rezolvarea problemei clici este cel al lui Harary & Ross (1957) , care au fost motivați de aplicația sociologică. Cercetătorii în științe sociale au definit, de asemenea, diferite alte tipuri de clici și clici maxime în rețeaua socială, „subgrupuri coezive” de oameni sau actori din rețea, toți împărtășind unul dintre mai multe tipuri diferite de relații de conectivitate. Multe dintre aceste noțiuni generalizate de clici pot fi, de asemenea, găsite prin construirea unui grafic neorientat ale cărui margini reprezintă perechi de actori din rețeaua socială și apoi aplicarea unui algoritm pentru problema clicii acestui grafic.
De la lucrările lui Harary și Ross, mulți alții au conceput algoritmi pentru diferite versiuni ale problemei clici. În anii 1970, cercetătorii au început să studieze acești algoritmi din punctul de vedere al analizei în cel mai rău caz . A se vedea, de exemplu, Tarjan și Trojanowski (1977) , o lucrare timpurie asupra complexității celei mai nefavorabile a problemei maximei clici. De asemenea, în anii 1970, începând cu lucrările lui Cook (1971) și Karp (1972) , cercetătorii au început să utilizeze teoria completitudinii NP și a rezultatelor legate de intractabilitate pentru a oferi o explicație matematică pentru dificultatea percepută a problemei clici. În anii 1990, o serie revoluționară de lucrări începând cu Feige și colab. (1991) și raportat în New York Times , au arătat că (presupunând P ≠ NP ) nu este nici măcar posibil să se aproximeze problema cu precizie și eficiență.
Algoritmi de găsire a clichelor au fost folosiți în chimie , pentru a găsi substanțe chimice care se potrivesc cu o structură țintă și pentru a modela andocarea moleculară și locurile de legare ale reacțiilor chimice. Ele pot fi, de asemenea, utilizate pentru a găsi structuri similare în cadrul diferitelor molecule. În aceste aplicații, se formează un grafic în care fiecare vârf reprezintă o pereche potrivită de atomi, câte unul din fiecare dintre cele două molecule. Două vârfuri sunt conectate printr-o margine dacă potrivirile pe care le reprezintă sunt compatibile între ele. A fi compatibil poate însemna, de exemplu, că distanțele dintre atomii din cele două molecule sunt aproximativ egale, cu o anumită toleranță dată. O clică din acest grafic reprezintă un set de perechi de atomi potrivite în care toate meciurile sunt compatibile între ele. Un caz special al acestei metode este utilizarea produsului modular de grafice pentru a reduce problema găsirii subgrafului maxim indus comun de două grafice la problema găsirii unei clici maxime în produsul lor.
În generarea automată a modelelor de testare , găsirea unor clici poate ajuta la legarea dimensiunii unui set de testare. În bioinformatică , algoritmii de identificare a clicurilor au fost folosiți pentru a deduce arborii evolutivi , pentru a prezice structurile proteinelor și pentru a găsi grupuri de proteine care interacționează îndeaproape. Listarea clicurilor într-un grafic de dependență este un pas important în analiza anumitor procese aleatorii. În matematică, conjectura lui Keller asupra plăcilor față în față a hipercuburilor a fost respinsă de Lagarias și Shor (1992) , care au folosit un algoritm de găsire a clicurilor pe un grafic asociat pentru a găsi un contraexemplu.
Definiții
Un grafic neorientat este format dintr-un set finit de vârfuri și un set de perechi neordinate de vârfuri, care se numesc muchii . Prin convenție, în analiza algoritmului, numărul de vârfuri din grafic este notat cu n, iar numărul de muchii este notat cu m . O clică într - un grafic G este un complet subgraf al G . Adică, este un subset K a nodurilor astfel încât fiecare două noduri în K sunt cele doua obiective ale unui avantaj în G . O clică maximă este o clică la care nu se mai pot adăuga vârfuri. Pentru fiecare vârf v care nu face parte dintr-o clică maximă, trebuie să existe un alt vârf w care se află în clică și care nu este adiacent v , împiedicând adăugarea lui v la clică. O clică maximă este o clică care include cel mai mare număr posibil de vârfuri. Numărul clică w ( G ) este numărul de noduri dintr - o clică de maxim G .
Au fost studiate mai multe probleme strâns legate de găsirea clicelor.
- În problema maximă a clicului, intrarea este un grafic nedirecționat, iar ieșirea este o clic maximă în grafic. Dacă există mai multe clici maxime, una dintre ele poate fi aleasă în mod arbitrar.
- În problema cu pică maximă a clicei, intrarea este un grafic nedirecționat cu greutăți pe vârfurile sale (sau, mai rar, pe margini), iar ieșirea este o clică cu greutatea totală maximă. Problema maximă de clică este cazul special în care toate greutățile sunt egale. Pe lângă problema optimizării sumei de greutăți, au fost studiate și alte probleme mai complicate de optimizare a bicriteriei.
- În problema maximă de listare a clicurilor, intrarea este un grafic nedirecționat, iar ieșirea este o listă a tuturor clicurilor sale maxime. Problema maximă a clicului poate fi rezolvată folosind ca subrutină un algoritm pentru problema maximă de listare a clicurilor, deoarece clicul maxim trebuie inclus în toate clicurile maxime.
- În problema k- clică, intrarea este un grafic nedirecționat și un număr k . Ieșirea este o clică cu k vârfuri, dacă există, sau o valoare specială care indică faptul că nu există k- clică altfel. În unele variante ale acestei probleme, ieșirea ar trebui să listeze toate clichele de dimensiunea k .
- În problema deciziei de clic, intrarea este un grafic nedirecționat și un număr k , iar ieșirea este o valoare booleană : adevărat dacă graficul conține o k -clic și fals în caz contrar.
Primele patru dintre aceste probleme sunt importante în aplicațiile practice. Problema deciziei clici nu are o importanță practică; este formulat în acest fel pentru a aplica teoria completitudinii NP problemelor de găsire a clicelor.
Problema clică și problema setului independent sunt complementare: o clică în G este un set independent în graficul complement al lui G și invers. Prin urmare, multe rezultate de calcul pot fi aplicate la fel de bine la ambele probleme, iar unele lucrări de cercetare nu fac o distincție clară între cele două probleme. Cu toate acestea, cele două probleme au proprietăți diferite atunci când sunt aplicate familiilor restrânse de grafice. De exemplu, problema clică poate fi rezolvată în timp polinomial pentru grafice plane în timp ce problema setului independent rămâne NP-hard pe graficele plane.
Algoritmi
Găsirea unei singure clici maxime
O clică maximă , uneori numită incluziune-maximă, este o clică care nu este inclusă într-o clică mai mare. Prin urmare, fiecare clică este conținută într-o clică maximă. Clice maxime pot fi foarte mici. Un grafic poate conține o clică non-maximă cu mulți vârfuri și o clică separată de dimensiunea 2 care este maximă. În timp ce o clică maximă (adică cea mai mare) este neapărat maximă, inversul nu se menține. Există câteva tipuri de grafice în care fiecare clică maximă este maximă; acestea sunt complementele ale graficelor bine acoperite , în care fiecare set independent maximă este valoarea maximă. Cu toate acestea, alte grafice au clicuri maxime care nu sunt maxime.
O singură clică maximă poate fi găsită de un algoritm lacom direct . Începând cu o clică arbitrară (de exemplu, orice vârf unic sau chiar setul gol), creșteți clica curentă câte un vârf la un moment dat, parcurgând vârfurile rămase ale graficului. Pentru fiecare vârf v examinat de această buclă, adăugați v la clică dacă este adiacent fiecărui vârf care se află deja în clică și aruncați v altfel. Acest algoritm rulează în timp liniar . Datorită ușurinței de a găsi clici maxime și a dimensiunilor lor potențiale mici, sa acordat o atenție sporită problemei algoritmice mult mai dificile de a găsi o clică maximă sau altfel mare. Cu toate acestea, unele cercetări în algoritmi paraleli au studiat problema găsirii unei clici maxime. În special, problema găsirii primei clicuri lexicografice maxime (cea găsită de algoritmul de mai sus) sa dovedit a fi completă pentru clasa funcțiilor timp polinomial . Acest rezultat implică faptul că este puțin probabil ca problema să fie rezolvabilă în clasa de complexitate paralelă NC .
Clici de dimensiuni fixe
Se poate testa dacă un grafic G conține o clică k- vertex și poate găsi o astfel de clică pe care o conține, utilizând un algoritm de forță brută . Acest algoritm examinează fiecare subgraf cu k vârfuri și verifică dacă formează o clică. Este nevoie de timp O ( n k k 2 ) , așa cum este exprimat folosind notația O mare . Acest lucru se datorează faptului că există O ( n k ) subgrafe de verificat, fiecare dintre ele având O ( k 2 ) muchii a căror prezență în G trebuie verificată. Astfel, problema poate fi rezolvată în timp polinomial ori de câte ori k este o constantă fixă. Cu toate acestea, atunci când k nu are o valoare fixă, dar în schimb poate varia ca parte a intrării în problemă, timpul este exponențial.
Cel mai simplu caz netrivial al problemei de găsire a clicelor este găsirea unui triunghi într-un grafic sau stabilirea echivalentă dacă graficul nu are triunghi . Într-un grafic G cu m muchii, pot exista cel mult Θ ( m 3/2 ) triunghiuri (folosind notația mare theta pentru a indica faptul că această legătură este strânsă). Cel mai rău caz pentru această formulă apare atunci când G este el însuși o clică. Prin urmare, algoritmii pentru listarea tuturor triunghiurilor trebuie să ia cel puțin Ω ( m 3/2 ) timp în cel mai rău caz (folosind notația omega mare ) și se cunosc algoritmi care se potrivesc cu acest timp legat. De exemplu, Chiba și Nishizeki (1985) descriu un algoritm care sortează vârfurile în ordine de la cel mai înalt grad la cel mai mic și apoi iterează prin fiecare vârf v din lista sortată, căutând triunghiuri care includ v și nu includ niciun vârf anterior în listă. Pentru a face acest lucru, algoritmul marchează toți vecinii lui v , caută prin toate marginile incidente unui vecin cu v, scoțând un triunghi pentru fiecare margine care are două puncte finale marcate, apoi elimină semnele și șterge v din grafic. După cum arată autorii, timpul pentru acest algoritm este proporțional cu arboricitatea graficului (notat a ( G ) ) înmulțit cu numărul de muchii, care este O ( m a ( G )) . Deoarece arboricitatea este cel mult O ( m 1/2 ) , acest algoritm rulează în timp O ( m 3/2 ) . Mai general, toate clichele k -vertex pot fi listate printr-un algoritm similar care necesită timp proporțional cu numărul de muchii înmulțit cu arboricitatea la putere ( k - 2) . Pentru graficele cu arboricitate constantă, cum ar fi graficele plane (sau, în general, graficele din orice familie de grafuri minore-închise non-triviale ), acest algoritm ia timp O ( m ) , care este optim, deoarece este liniar în dimensiunea intrării.
Dacă se dorește doar un singur triunghi sau o asigurare că graficul nu prezintă triunghi, sunt posibili algoritmi mai rapizi. După cum observă Itai și Rodeh (1978) , graficul conține un triunghi dacă și numai dacă matricea sa de adiacență și pătratul matricei de adiacență conțin intrări diferite de zero în aceeași celulă. Prin urmare, tehnici de multiplicare rapidă a matricei pot fi aplicate pentru a găsi triunghiuri în timpul O ( n 2.376 ) . Alon, Yuster și Zwick (1994) au folosit multiplicarea rapidă a matricii pentru a îmbunătăți algoritmul O ( m 3/2 ) pentru a găsi triunghiuri la O ( m 1,41 ) . Acești algoritmi bazați pe înmulțirea rapidă a matricii au fost, de asemenea, extinse la probleme de găsire a k- clici pentru valori mai mari ale k .
Listarea tuturor clicurilor maxime
Prin rezultatul Moon & Moser (1965) , fiecare grafic n- vertex are cel mult 3 n / 3 clici maxime. Acestea pot fi enumerate de algoritmul Bron – Kerbosch , o procedură recursivă de backtracking a lui Bron & Kerbosch (1973) . Principalul subrutin recursiv al acestei proceduri are trei argumente: o clică parțial construită (non-maximă), un set de vârfuri candidate care ar putea fi adăugate la clică și un alt set de vârfuri care nu ar trebui adăugate (deoarece acest lucru ar conduce la o clică care a fost deja găsită). Algoritmul încearcă să adauge vârfurile candidate unul câte unul la clica parțială, făcând un apel recursiv pentru fiecare. După ce încercați fiecare dintre aceste vârfuri, îl mută pe setul de vârfuri care nu ar trebui adăugate din nou. Se poate demonstra că variantele acestui algoritm au cel mai rău caz de funcționare O (3 n / 3 ) , care se potrivește cu numărul de clici care ar putea avea nevoie să fie listate. Prin urmare, aceasta oferă o soluție optimă în cel mai rău caz la problema listării tuturor clicurilor maxime. Mai mult, algoritmul Bron – Kerbosch a fost raportat pe scară largă ca fiind mai rapid în practică decât alternativele sale.
Cu toate acestea, atunci când numărul de clici este semnificativ mai mic decât cel mai rău caz, ar putea fi preferabili alți algoritmi. După cum Tsukiyama și colab. (1977) au arătat că este de asemenea posibil să se enumere toate clicurile maxime într-un grafic într-o perioadă de timp care este polinomială pentru fiecare clic generată. Un algoritm precum al lor în care timpul de funcționare depinde de dimensiunea ieșirii este cunoscut sub numele de algoritm sensibil la ieșire . Algoritmul lor se bazează pe următoarele două observații, care raportează clicurile maxime ale graficului dat G la clicurile maxime ale unui grafic G \ v format prin eliminarea unui vârf arbitrar v din G :
- Pentru fiecare maxim clica K din G \ v , fie K continuă să formeze o clică maximă în G sau K ⋃ { v } formează o clică maximă în G . Prin urmare, G are cel puțin la fel de multe clici maxime ca G \ v .
- Fiecare clică maximă din G care nu conține v este o clică maximă din G \ v și fiecare clică maximă din G care conține v poate fi formată dintr-o clică maximă K din G \ v prin adăugarea v și eliminarea non-vecinilor din v de la K .
Folosind aceste observații pot genera toate clice maxime în G printr-un algoritm recursiv care alege un vârf v în mod arbitrar și apoi, pentru fiecare clică maximă K din G \ v , scoate atât K cât și clica formată prin adăugarea v la K și eliminarea non -vecinii v . Cu toate acestea, unele clici ale lui G pot fi generate în acest mod din mai multe clici părinte ale lui G \ v , deci elimină duplicatele prin scoaterea unei clici în G numai atunci când părintele său din G \ v este lexicografic maxim dintre toate clicele părinte posibile. Pe baza acestui principiu, ele arată că toate clice maxime din G pot fi generate în timpul O ( mn ) per clică, unde m este numărul de muchii din G și n este numărul de vârfuri. Chiba și Nishizeki (1985) îmbunătățesc acest lucru la O ( ma ) pe clică, unde a este arboricitatea graficului dat. Makino & Uno (2004) oferă un algoritm alternativ sensibil la ieșire bazat pe multiplicarea rapidă a matricei. Johnson & Yannakakis (1988) arată că este chiar posibil să enumerăm toate clice maxime în ordine lexicografică cu întârziere polinomială pe clică. Cu toate acestea, alegerea ordonării este importantă pentru eficiența acestui algoritm: pentru inversul acestei ordine, nu există un algoritm de întârziere polinomială, cu excepția cazului în care P = NP .
Pe baza acestui rezultat, este posibil să se enumere toate clice maxime în timp polinomial, pentru familii de grafice în care numărul de clici este delimitat polinomial. Aceste familii includ grafice corzii , grafice complet , graficele triunghi liber , graficele interval , graficele de mărginite boxicity și graficele planare . În special, graficele plane au O ( n ) clici, de dimensiuni cel mult constante, care pot fi listate în timp liniar. Același lucru este valabil pentru orice familie de grafice care este atât rar (având un număr de muchii, cel mult o dată constantă a numărului de vârfuri), cât și închisă sub operația de a lua subgrafe.
Găsirea unor clici maxime în grafice arbitrare
Este posibil să găsiți clica maximă sau numărul de clică, al unui grafic arbitrar n- vertex în timp O (3 n / 3 ) = O (1,4422 n ) utilizând unul dintre algoritmii descriși mai sus pentru a enumera toate clice maxime în graficul și returnarea celui mai mare. Cu toate acestea, pentru această variantă a problemei de clică sunt mai bune limite de timp în cel mai rău caz. Algoritmul lui Tarjan și Trojanowski (1977) rezolvă această problemă în timp O (2 n / 3 ) = O (1,2599 n ) . Este o schemă de urmărire recursivă similară cu cea a algoritmului Bron – Kerbosch , dar este capabilă să elimine unele apeluri recursive atunci când se poate arăta că clicurile găsite în cadrul apelului vor fi suboptimale. Jian (1986) a îmbunătățit timpul până la O (2 0,304 n ) = O (1,2346 n ) , iar Robson (1986) l-a îmbunătățit la O (2 0,276 n ) = O (1,2108 n ) , în detrimentul unei utilizări mai mari a spațiului . Algoritmul lui Robson combină o schemă similară de backtracking (cu o analiză de caz mai complicată) și o tehnică de programare dinamică în care soluția optimă este precomputată pentru toate subgrafele mici conectate ale graficului complementului . Aceste soluții parțiale sunt utilizate pentru scurtarea recursivității de urmărire înapoi. Cel mai rapid algoritm cunoscut astăzi este o versiune rafinată a acestei metode de Robson (2001) care rulează în timp O (2 0,249 n ) = O (1,1888 n ) .
De asemenea, s-au efectuat cercetări ample asupra algoritmilor euristici pentru rezolvarea problemelor maxime de clică fără garanții de rulare în cel mai rău caz, bazate pe metode care includ ramuri și legături , căutare locală , algoritmi lacomi și programare de constrângeri . Metodologiile de calcul non-standard care au fost sugerate pentru găsirea unor clici includ calculul ADN și calculul cuantic adiabatic . Problema maximă de clică a făcut obiectul unei provocări de implementare sponsorizate de DIMACS în 1992-1993 și a unei colecții de grafice utilizate ca etaloane pentru provocare, care este disponibilă publicului.
Clase speciale de grafice
Graficele plane și alte familii de grafice rare au fost discutate mai sus: au liniar multe clici maxime, de mărime mărginită, care pot fi listate în timp liniar. În special, pentru graficele plane, orice clică poate avea cel mult patru vârfuri, conform teoremei lui Kuratowski .
Graficele perfecte sunt definite de proprietățile că numărul lor de clică este egal cu numărul lor cromatic și că această egalitate este valabilă și în fiecare dintre subgrafele lor induse . Pentru grafice perfecte, este posibil să se găsească o clică maximă în timp polinomial, folosind un algoritm bazat pe programare semidefinită . Cu toate acestea, această metodă este complexă și necombinatorie, iar algoritmi specializați de găsire a clicurilor au fost dezvoltați pentru multe subclase de grafice perfecte. În graficele complementare ale graficelor bipartite , teorema lui Kőnig permite rezolvarea problemei maxime a clicii folosind tehnici de potrivire . Într-o altă clasă de grafice perfecte, graficele de permutare , o clică maximă este cea mai lungă subsecvență descrescătoare a permutației care definește graficul și poate fi găsită folosind algoritmi cunoscuți pentru cea mai lungă problemă de subsecvență descrescătoare. Dimpotrivă, fiecare situație a celei mai lungi probleme de subsecvență descrescătoare poate fi descrisă echivalent ca o problemă a găsirii unei clici maxime într-un grafic de permutare. Chiar și Pnueli și Lempel (1972) oferă un algoritm alternativ în timp pătratic pentru clici maxime în graficele de comparabilitate , o clasă mai largă de grafice perfecte care include graficele de permutare ca un caz special. În graficele acordurilor , clico-urile maxime pot fi găsite prin listarea vârfurilor într-o ordonare de eliminare și verificarea vecinătăților de clică a fiecărui vârf în această ordonare.
În unele cazuri, acești algoritmi pot fi extinși și la alte clase de grafice, care nu sunt perfecte. De exemplu, într-un grafic de cerc , vecinătatea fiecărui vârf este un grafic de permutare, deci o clică maximă într-un grafic de cerc poate fi găsită prin aplicarea algoritmului graficului de permutare la fiecare vecinătate. În mod similar, într-un grafic de disc unitate (cu o reprezentare geometrică cunoscută), există un algoritm de timp polinomial pentru clicuri maxime bazat pe aplicarea algoritmului pentru complementele de grafice bipartite la vecinătățile comune de perechi de vârfuri.
Problema algoritmică a găsirii unei clici maxime într-un grafic aleatoriu extras din modelul Erdős – Rényi (în care fiecare margine apare cu probabilitate 1/2 , independent de celelalte margini) a fost sugerată de Karp (1976) . Deoarece clica maximă într-un grafic aleatoriu are dimensiuni logaritmice cu probabilitate mare, poate fi găsită printr-o căutare a forței brute în timpul așteptat 2 O (log 2 n ) . Acesta este un timp cvasi-polinomial . Deși numărul de clici ale unor astfel de grafice este de obicei foarte apropiat de 2 log 2 n , algoritmi simpli lacomi , precum și tehnici de aproximare randomizate mai sofisticate găsesc doar clici cu dimensiunea log 2 n , pe jumătate la fel de mare. Numărul de clici maxime din astfel de grafice este cu exponențială de probabilitate mare în log 2 n , ceea ce împiedică metodele care listează toate clice maxime să ruleze în timp polinomial. Datorită dificultății acestei probleme, mai mulți autori au investigat problema clicelor plantate , problema clicii pe grafice aleatorii care au fost mărite prin adăugarea unor clici mari. În timp ce metodele spectrale și programarea semidefinită pot detecta clici ascunse de dimensiunea Ω ( √ n ) , nu sunt cunoscuți în prezent algoritmi de timp polinomial pentru a detecta cei de dimensiunea o ( √ n ) (exprimată utilizând notația little-o ).
Algoritmi de aproximare
Mai mulți autori au luat în considerare algoritmi de aproximare care încearcă să găsească o clică sau un set independent care, deși nu este maxim, are o dimensiune cât mai apropiată de cea maximă care poate fi găsită în timp polinomial. Deși o mare parte a acestei lucrări s-a concentrat pe seturi independente în grafice rare, caz care nu are sens pentru problema complementară a clicii, s-a lucrat și la algoritmi de aproximare care nu utilizează astfel de ipoteze de raritate.
Feige (2004) descrie un algoritm de timp polinomial care găsește o clică de dimensiunea Ω ((log n / log log n ) 2 ) în orice grafic care are numărul cliquei Ω ( n / log k n ) pentru orice constantă k . Prin utilizarea acestui algoritm atunci când numărul de clic al unui grafic de intrare dat este între n / log n și n / log 3 n , trecerea la un algoritm diferit al lui Boppana și Halldórsson (1992) pentru grafice cu numere de clic mai mari și alegerea unui clica vertexului dacă ambii algoritmi nu reușesc să găsească ceva, Feige oferă un algoritm de aproximare care găsește o clică cu un număr de vârfuri într-un factor de O ( n (log log n ) 2 / log 3 n ) din maxim. Deși raportul de aproximare al acestui algoritm este slab, acesta este cel mai cunoscut până în prezent. Rezultatele privind duritatea de aproximare descrise mai jos sugerează că nu poate exista un algoritm de aproximare cu un raport de aproximare semnificativ mai mic decât liniar.
Limite inferioare
NP-completitudine
Problema deciziei de clică este complet NP . A fost una dintre cele 21 de probleme originale ale lui Richard Karp prezentate NP-complete în lucrarea sa din 1972 „Reducibility Among Combinatorial Problems”. Această problemă a fost menționată și în lucrarea lui Stephen Cook care introduce teoria problemelor NP-complete. Din cauza durității problemei deciziei, problema găsirii unei clici maxime este, de asemenea, NP-hard. Dacă s-ar putea rezolva, s-ar putea rezolva și problema deciziei, comparând dimensiunea clicii maxime cu parametrul de dimensiune dat ca intrare în problema deciziei.
Dovada de completitudine NP a lui Karp este o reducere mult-una față de problema de satisfacție booleană . Descrie cum se pot traduce formulele booleene în formă normală conjunctivă (CNF) în instanțe echivalente cu problema maximă a clicii. La rândul său, satisfacția a fost dovedită NP-completă în teorema Cook-Levin . Dintr-o anumită formulă CNF, Karp formează un grafic care are un vârf pentru fiecare pereche ( v , c ) , unde v este o variabilă sau negația sa și c este o clauză din formula care conține v . Două dintre aceste vârfuri sunt conectate printr-o margine dacă reprezintă alocări de variabile compatibile pentru clauze diferite. Adică, există o margine de la ( v , c ) la ( u , d ) ori de câte ori c ≠ d și u și v nu sunt negațiile celuilalt. Dacă k denotă numărul de clauze din formula CNF, atunci clicurile k -vertex din acest grafic reprezintă moduri consistente de atribuire a unor valori de adevăr unora dintre variabilele sale pentru a satisface formula. Prin urmare, formula este satisfăcătoare dacă și numai dacă există o clică k- vertex.
Unele probleme NP-complete (cum ar fi problema vânzătorului călător în graficele plane ) pot fi rezolvate în timp care este exponențial într-o funcție subliniară a parametrului dimensiunii de intrare n , semnificativ mai rapid decât o căutare cu forță brută. Cu toate acestea, este puțin probabil ca o astfel de legătură de timp subexponențială să fie posibilă pentru problema clică în grafice arbitrare, deoarece ar implica limite în mod similar subexponențiale pentru multe alte probleme standard NP-complete.
Complexitatea circuitului
Dificultatea de calcul a problemei clice a condus-o să fie folosită pentru a dovedi mai multe limite inferioare ale complexității circuitului . Existența unei clici de o anumită dimensiune este o proprietate de grafic monotonă , ceea ce înseamnă că, dacă o clică există într-un grafic dat, aceasta va exista în orice supergraf . Deoarece această proprietate este monotonă, trebuie să existe un circuit monoton, care utilizează numai și porți și sau porți , pentru a rezolva problema deciziei clicii pentru o anumită dimensiune clică fixă. Cu toate acestea, dimensiunea acestor circuite se poate dovedi a fi o funcție super-polinomială a numărului de vârfuri și a dimensiunii clici, exponențială în rădăcina cubică a numărului de vârfuri. Chiar dacă este permis un număr mic de porți NU , complexitatea rămâne superpolinomială. În plus, adâncimea unui circuit monoton pentru problema clicii utilizând porți de ventilare limitată trebuie să fie cel puțin un polinom în dimensiunea clicii.
Complexitatea arborelui decizional
Complexitatea (deterministă) a arborelui decizional al determinării unei proprietăți grafice este numărul de întrebări de forma „Există o margine între vârful u și vârful v ?” la care trebuie răspuns în cel mai rău caz pentru a determina dacă un grafic are o anumită proprietate. Adică, este înălțimea minimă a unui arbore de decizie boolean pentru problemă. Există n ( n - 1) / 2 posibile întrebări de pus. Prin urmare, orice proprietate a graficului poate fi determinată cu cel mult n ( n - 1) / 2 întrebări. Este, de asemenea, posibil să se definească complexitatea arborelui decizional aleator și cuantic al unei proprietăți, numărul așteptat de întrebări (pentru cel mai rău caz de intrare) la care trebuie răspuns un algoritm aleatoriu sau cuantic pentru a determina corect dacă graficul dat are proprietatea .
Deoarece proprietatea de a conține o clică este monotonă, ea este acoperită de conjectura Aanderaa – Karp – Rosenberg , care afirmă că complexitatea deterministică a arborelui decizional al determinării oricărei proprietăți de graf monoton non-banale este exact n ( n - 1) / 2 . Pentru proprietăți grafice monotone arbitrare, această conjectură rămâne nedovedită. Cu toate acestea, pentru arborii de decizie deterministici și pentru orice k din intervalul 2 ≤ k ≤ n , proprietatea de a conține o k -clică s-a arătat că are complexitatea arborelui decizional exact n ( n - 1) / 2 de Bollobás (1976) . Arborii de decizie deterministă necesită, de asemenea, dimensiuni exponențiale pentru a detecta clici, sau dimensiuni mari de polinom pentru a detecta clici de dimensiuni mărginite.
Conjectura Aanderaa – Karp – Rosenberg afirmă, de asemenea, că complexitatea randomizată a arborelui decizional al funcțiilor monotone non-triviale este Θ ( n 2 ) . Conjectura rămâne din nou nedovedită, dar a fost rezolvată pentru proprietatea de a conține o k clică pentru 2 ≤ k ≤ n . Se știe că această proprietate are complexitatea randomizată a arborelui decizional Θ ( n 2 ) . Pentru arborii de decizie cuantici, cea mai cunoscută limită inferioară este Ω ( n ) , dar nu se cunoaște niciun algoritm de potrivire pentru cazul k ≥ 3 .
Intractabilitatea parametrilor fixi
Complexitatea parametrizată este studiul teoretic al complexității problemelor care sunt în mod natural echipate cu un parametru întreg mic k și pentru care problema devine mai dificilă pe măsură ce k crește, cum ar fi găsirea k -cliques în grafice. Se spune că o problemă poate fi tratată cu parametri fixi dacă există un algoritm pentru rezolvarea acesteia pe intrări de dimensiunea n și o funcție f , astfel încât algoritmul să ruleze în timpul f ( k ) n O (1) . Adică, este tratabil cu parametru fix dacă poate fi rezolvat în timp polinomial pentru orice valoare fixă a lui k și, în plus, dacă exponentul polinomului nu depinde de k .
Pentru găsirea unor clici k -vertex, algoritmul de căutare a forței brute are timp de funcționare O ( n k k 2 ) . Deoarece exponentul lui n depinde de k , acest algoritm nu este tratabil cu parametri fixi. Deși poate fi îmbunătățit prin multiplicarea rapidă a matricei, timpul de rulare are încă un exponent liniar în k Astfel, deși timpul de rulare al algoritmilor cunoscuți pentru problema clică este polinomial pentru orice k fix , acești algoritmi nu sunt suficienți pentru parametrul fix tractabilitate. Downey & Fellows (1995) au definit o ierarhie a problemelor parametrizate, ierarhia W, pe care o presupuneau că nu au algoritmi tratabili cu parametri fixi. Au dovedit că setul independent (sau, în mod echivalent, clica) este greu pentru primul nivel al acestei ierarhii, W [1] . Astfel, conform conjecturii lor, clica nu are algoritm tratabil cu parametri fixi. Mai mult, acest rezultat oferă baza pentru dovezile durității W [1] a multor alte probleme și, astfel, servește ca un analog al teoremei Cook-Levin pentru complexitatea parametrizată.
Chen și colab. (2006) au arătat că găsirea unor clici k -vertex nu poate fi făcută în timpul n o ( k ) decât dacă ipoteza exponențială a timpului eșuează. Din nou, aceasta oferă dovezi că nu este posibil nici un algoritm tratabil cu parametri fixi.
Deși problemele de listare a clicurilor maxime sau de găsire a clicurilor maxime sunt puțin probabil să fie tratabile cu parametri fixi cu parametrul k , ele pot fi tratate cu parametri fixi pentru alți parametri de complexitate a instanței. De exemplu, se știe că ambele probleme pot fi tratate cu parametri fixi când sunt parametrizate de degenerarea graficului de intrare.
Duritatea aproximării
Rezultatele slabe care sugerează că problema clicii ar putea fi greu de aproximat sunt cunoscute de mult timp. Garey & Johnson (1978) au observat că, deoarece numărul clica preia valori întregi mici și este NP greu de calculat, nu poate avea o schemă de aproximare complet polinomială . Dacă ar fi disponibilă o aproximare prea precisă, rotunjirea valorii sale la un număr întreg ar da numărul exact al clicii. Cu toate acestea, s-au știut puțin mai mult până la începutul anilor 1990, când mai mulți autori au început să facă legături între aproximarea clicelor maxime și dovezile verificabile probabilistic . Ei au folosit aceste conexiuni pentru a dovedi duritatea rezultatelor de aproximare pentru problema maximă a clicăi. După multe îmbunătățiri ale acestor rezultate, se știe acum că, pentru fiecare număr real ε > 0 , nu poate exista un algoritm de timp polinomial care să aproxime clica maximă într-un factor mai bun decât O ( n 1 - ε ) , cu excepția cazului în care P = NP .
Ideea brută a acestor rezultate de inapproximabilitate este de a forma un grafic care reprezintă un sistem de probă probabilist verificabil pentru o problemă NP-completă, cum ar fi problema de satisfacție booleană. Într-un sistem de probă verificabil probabilistic, o dovadă este reprezentată ca o succesiune de biți. O situație a problemei satisfacției ar trebui să aibă o dovadă validă dacă și numai dacă este satisfăcătoare. Dovada este verificată de un algoritm care, după un calcul în timp polinomial la intrarea în problema de satisfacție, alege să examineze un număr mic de poziții alese aleatoriu ale șirului de dovadă. În funcție de valorile care se găsesc la acel eșantion de biți, verificatorul va accepta sau respinge dovada, fără a privi restul de biți. Falsele negative nu sunt permise: trebuie întotdeauna acceptată o dovadă validă. Cu toate acestea, o dovadă nevalidă poate fi uneori acceptată din greșeală. Pentru fiecare dovadă nevalidă, probabilitatea ca verificatorul să o accepte trebuie să fie mică.
Pentru a transforma un sistem de probă verificabil probabilistic de acest tip într-o problemă de clică, se formează un grafic cu un vârf pentru fiecare posibilă acceptare a testului de verificare. Adică, un vârf este definit de una dintre posibilele alegeri aleatorii de seturi de poziții de examinat și de valorile de biți pentru acele poziții care ar determina verificatorul să accepte dovada. Poate fi reprezentat de un cuvânt parțial cu 0 sau 1 la fiecare poziție examinată și un caracter wildcard la fiecare poziție rămasă. Două vârfuri sunt adiacente, în acest grafic, dacă cele două curse de acceptare corespunzătoare văd aceleași valori de biți la fiecare poziție pe care o examinează amândoi. Fiecare șir de dovadă (valid sau nevalid) corespunde unei clici, setului de rulări de acceptare care văd acel șir de probă și toate clice maxime apar în acest fel. Una dintre aceste clici este mare dacă și numai dacă corespunde unui șir de probe acceptat de mulți verificatori de probă. Dacă instanța de satisfacție originală este satisfăcătoare, va avea un șir de dovadă valid, unul care este acceptat de toate rulările de verificare, iar acest șir va corespunde unei clici mari din grafic. Cu toate acestea, dacă instanța inițială nu este satisfăcătoare, atunci toate șirurile de probă sunt nevalide, fiecare șir de probă are doar un număr mic de rulări de verificare care o acceptă din greșeală și toate clicurile sunt mici. Prin urmare, dacă s-ar putea distinge în timp polinomial graficele care au clici mari și grafice în care toate clicele sunt mici sau dacă s-ar putea aproxima cu exactitate problema clicii, atunci aplicarea acestei aproximări la graficele generate de instanțe de satisfacție ar permite instanțe satisfăcătoare să să fie distins de instanțele nesatisfăcătoare. Cu toate acestea, acest lucru nu este posibil decât dacă P = NP.
Note
Referințe
Sondaje și manuale
- Arora, Sanjeev ; Barak, Boaz (2009), Computational Complexity: A Modern Approach , Cambridge University Press, ISBN 978-0-521-42426-4.
- Blair, Jean RS; Peyton, Barry (1993), „O introducere la graficele acordurilor și arborii clici”, teoria graficelor și calculul matricii rare , IMA Vol. Matematica. Appl., 56 , Springer, New York, pp. 1–29, doi : 10.1007 / 978-1-4613-8369-7_1 , MR 1320296.
- Bomze, IM; Budinich, M .; Pardalos, PM; Pelillo, M. (1999), „The maximum clique problem”, Handbook of Combinatorial Optimization , 4 , Kluwer Academic Publishers, pp. 1–74, CiteSeerX 10.1.1.48.4074.
- Cormen, Thomas H .; Leiserson, Charles E .; Rivest, Ronald L .; Stein, Clifford (2001), „34.5.1 The clique problem”, Introducere în algoritmi (ediția a doua), MIT Press și McGraw-Hill, pp. 1003–1006, ISBN 0-262-03293-7.
- Downey, RG; Fellows, MR (1999), Complexitate parametrizată , Springer-Verlag , ISBN 0-387-94883-X.
- Golumbic, MC (1980), Teoria algoritmică a graficelor și graficele perfecte , Informatică și matematică aplicată, Academic Press , ISBN 0-444-51530-5.
- Grötschel, M .; Lovász, L .; Schrijver, A. (1988), „9.4 Colorarea graficelor perfecte”, Algoritmi geometrici și optimizare combinatorie , Algoritmi și combinatorie, 2 , Springer-Verlag , pp. 296–298, ISBN 0-387-13624-X.
- Gutin, G. (2004), „5.3 Seturi și clici independente”, în Gross, JL; Yellen, J. (eds.), Handbook of graph theory , Discrete Mathematics & Its Applications, CRC Press, pp. 389-402, ISBN 978-1-58488-090-5.
- Muegge, Ingo; Rarey, Matthias (2001), „Microstare și andocare a moleculelor mici”, Review in Computational Chemistry , 17 : 1–60, doi : 10.1002 / 0471224413.ch1 , ISBN 9780471398455.
- Comitetul Consiliului Național de Cercetare pentru Provocări Matematice din Chimia Computațională (1995), Provocări Matematice din Chimia Teoretică / Computațională , National Academies Press, doi : 10.17226 / 4886 , ISBN 978-0-309-05097-5.
- Pelillo, Marcello (2009), "Heuristics for maximum clique and independent set", Encyclopedia of Optimization , Springer, pp. 1508-1520, doi : 10.1007 / 978-0-387-74759-0_264.
- Plummer, Michael D. (1993), „Grafice bine acoperite: o anchetă” , Quaestiones Mathematicae , 16 (3): 253–287, doi : 10.1080 / 16073606.1993.9631737 , MR 1254158.
- Sipser, M. (1996), Introducere în teoria calculelor , Ediția internațională Thompson , ISBN 0-534-94728-X.
- Skiena, Steven S. (2009), The Algorithm Design Manual (ediția a doua), Springer, ISBN 978-1-84800-070-4.
- Valiente, Gabriel (2002), „Chapter 6: Clique, Independent Set, and Vertex Cover”, Algorithms on Trees and Graphs , Springer, pp. 299-350, doi : 10.1007 / 978-3-662-04921-1_6.
- Wasserman, Stanley ; Faust, Katherine (1994), Social Network Analysis: Methods and Applications , Structural Analysis in the Social Sciences, 8 , Cambridge University Press, p. 276, ISBN 978-0-521-38707-1.
Presa populară
- Kolata, Gina (26 iunie 1990), „În frenezie, matematica intră în epoca poștei electronice” , The New York Times.
Articole de cercetare
- Abello, J .; Pardalos, PM; Resende, MGC (1999), „Despre problemele maxime de clică în grafice foarte mari” (PDF) , în Abello, J .; Vitter, J. (eds.), External Memory Algorithms , DIMACS Series on Discrete Mathematics and Theoretical Computer Science, 50 , American Mathematical Society , pp. 119-130, ISBN 0-8218-1184-3.
- Alon, N .; Boppana, R. (1987), „Complexitatea circuitului monoton al funcțiilor booleene”, Combinatorica , 7 (1): 1–22, doi : 10.1007 / BF02579196 , S2CID 17397273.
- Alon, N .; Krivelevich, M .; Sudakov, B. (1998), "Găsirea unei clici ascunse mari într-un grafic aleatoriu", Structuri aleatoare și algoritmi , 13 (3-4): 457-466, doi : 10.1002 / (SICI) 1098-2418 (199810/12 ) 13: 3/4 <457 :: AID-RSA14> 3.0.CO; 2-W.
- Alon, N .; Yuster, R .; Zwick, U. (1994), „Găsirea și numărarea ciclurilor de lungime date”, Proceedings of the 2nd European Symposium on Algorithms, Utrecht, Olanda , pp. 354–364.
- Amano, Kazuyuki; Maruoka, Akira (2005), "O limită inferioară superpolinomială pentru un circuit care calculează funcția clică cu cel mult (1/6) log log N porti de negație", SIAM Journal on Computing , 35 (1): 201-216, doi : 10.1137 / S0097539701396959 , MR 2178806.
- Arora, Sanjeev ; Lund, Carsten ; Motwani, Rajeev ; Sudan, Madhu ; Szegedy, Mario (1998), "Verificarea dovezilor și duritatea problemelor de aproximare", Jurnalul ACM , 45 (3): 501-555, doi : 10.1145 / 278298.278306 , S2CID 8561542 , ECCC TR98-008. Prezentat inițial la Simpozionul 1992 pe fundațiile informaticii , doi : 10.1109 / SFCS.1992.267823 .
- Arora, S .; Safra, S. (1998), "verificarea probabilist dovezilor: O nouă caracterizare NP", Journal of ACM , 45 (1): 70-122, doi : 10.1145 / 273,865.273901 , S2CID 751563. Prezentat inițial la Simpozionul 1992 privind fundamentele științei computerelor , doi : 10.1109 / SFCS.1992.267824 .
- Balas, E .; Yu, CS (1986), "Găsirea unei clici maxime într-un grafic arbitrar", SIAM Journal on Computing , 15 (4): 1054-1068, doi : 10.1137 / 0215075.
- Barrow, H .; Burstall, R. (1976), „Izomorfism de subgraf, structuri relaționale potrivite și clici maxime”, Lettere de procesare a informațiilor , 4 (4): 83-84, doi : 10.1016 / 0020-0190 (76) 90049-1.
- Battiti, R .; Protasi, M. (2001), „Căutare locală reactivă pentru problema maximă a clicăi”, Algorithmica , 29 (4): 610–637, doi : 10.1007 / s004530010074 , S2CID 1800512.
- Bollobás, Béla (1976), „Completele subgrafe sunt evazive”, Journal of Combinatorial Theory , Seria B, 21 (1): 1–7, doi : 10.1016 / 0095-8956 (76) 90021-6 , ISSN 0095-8956.
- Boppana, R .; Halldórsson, MM (1992), „Aproximarea seturilor maxime independente prin excluderea subgrafelor”, BIT Numerical Mathematics , 32 (2): 180–196, doi : 10.1007 / BF01994876 , S2CID 123335474.
- Bron, C .; Kerbosch, J. (1973), „Algoritmul 457: găsirea tuturor clicurilor unui grafic nedirectat”, Communications of the ACM , 16 (9): 575–577, doi : 10.1145 / 362342.362367 , S2CID 13886709.
- Carraghan, R .; Pardalos, PM (1990), „Un algoritm exact pentru problema maximă a clicăi”, Letters Research Letters , 9 (6): 375–382, doi : 10.1016 / 0167-6377 (90) 90057-C.
- Cazals, F .; Karande, C. (2008), „O notă asupra problemei raportării unor clici maxime”, Theoretical Computer Science , 407 (1): 564-568, doi : 10.1016 / j.tcs.2008.05.010.
- Chen, Jianer; Huang, Xiuzhen; Kanj, Iyad A .; Xia, Ge (2006), „Limite computaționale puternice prin complexitate parametrizată”, Journal of Computer and System Sciences , 72 (8): 1346–1367, doi : 10.1016 / j.jcss.2006.04.007
- Chiba, N .; Nishizeki, T. (1985), "Arboricity and subgraph listing algorithms", SIAM Journal on Computing , 14 (1): 210-223, doi : 10.1137 / 0214017.
- Copii, AM; Farhi, E .; Goldstone, J .; Gutmann, S. (2002), „Finding cliques by quantum adiabatic evolution”, Quantum Information and Computation , 2 (3): 181–191, arXiv : quant-ph / 0012104 , Bibcode : 2000quant.ph.12104C , doi : 10.26421 /QIC2.3 , S2CID 33643794.
- Copii, AM; Eisenberg, JM (2005), "Algoritmi cuantici pentru găsirea subseturilor", Informații cuantice și calcul , 5 (7): 593-604, arXiv : quant-ph / 0311038 , Bibcode : 2003quant.ph.11038C , doi : 10.26421 / QIC5 .7 , S2CID 37556989.
- Clark, Brent N .; Colbourn, Charles J .; Johnson, David S. (1990), „Unit disk graphs”, Discrete Mathematics , 86 (1–3): 165–177, doi : 10.1016 / 0012-365X (90) 90358-O
- Cook, SA (1971), „Complexitatea procedurilor de demonstrare a teoremelor” , Proc. Al treilea simpozion ACM pe teoria calculelor , pp. 151–158, doi : 10.1145 / 800157.805047 , S2CID 7573663.
- Cook, Stephen A. (1985), „A taxonomy of problems with fast parallel algorithms”, Information and Control , 64 (1–3): 2–22, doi : 10.1016 / S0019-9958 (85) 80041-3 , MR 0837088.
- Ziua, William HE; Sankoff, David (1986), „Complexitatea computațională a deducerii filogeniei prin compatibilitate”, Zoologie sistematică , 35 (2): 224–229, doi : 10.2307 / 2413432 , JSTOR 2413432.
- Downey, RG; Fellows, MR (1995), "Tractabilitate și completitudine cu parametri fixi. II. Despre completitudinea pentru W [1]", Theoretical Computer Science , 141 (1-2): 109-131, doi : 10.1016 / 0304-3975 (94 ) 00097-3.
- Eisenbrand, F .; Grandoni, F. (2004), „Despre complexitatea clicii parametrilor fixi și a setului dominant”, Theoretical Computer Science , 326 (1–3): 57–67, doi : 10.1016 / j.tcs.2004.05.009.
- Eppstein, David ; Löffler, Maarten; Strash, Darren (2013), „Listarea tuturor clicurilor maxime în grafice mari din lumea reală rare în timp aproape optim”, Journal of Experimental Algorithmics , 18 (3): 3.1, arXiv : 1103.0318 , doi : 10.1145 / 2543629 , S2CID 47515491.
- Erdős, Paul ; Szekeres, George (1935), „O problemă combinatorie în geometrie” (PDF) , Compositio Mathematica , 2 : 463–470.
- Chiar, S .; Pnueli, A .; Lempel, A. (1972), "Permutation graphs and transit graphs", Journal of the ACM , 19 (3): 400–410, doi : 10.1145 / 321707.321710 , S2CID 9501737.
- Fahle, T. (2002), „Simplu și rapid: îmbunătățirea unui algoritm ramificat și legat pentru o clică maximă”, Proc. Al 10-lea Simpozion European asupra Algoritmilor , Note de curs în Informatică, 2461 , Springer-Verlag, pp. 47-86, doi : 10.1007 / 3-540-45749-6_44 , ISBN 978-3-540-44180-9.
- Feige, U. (2004), „Aproximarea clicei maxime prin eliminarea subgrafelor”, SIAM Journal on Discrete Mathematics , 18 (2): 219–225, doi : 10.1137 / S089548010240415X.
- Feige, U .; Goldwasser, S .; Lovász, L .; Safra, S ; Szegedy, M. (1991), „ Cloșca aproximativă este aproape NP-completă”, Proc. Al 32-lea simp IEEE. on Foundations of Computer Science , pp. 2-12, doi : 10.1109 / SFCS.1991.185341 , ISBN 0-8186-2445-0, S2CID 46605913.
- Feige, U .; Krauthgamer, R. (2000), „Găsirea și certificarea unei clici ascunse mari într-un grafic semirandominar”, Structuri și algoritmi aleatori , 16 (2): 195–208, doi : 10.1002 / (SICI) 1098-2418 (200003) 16 : 2 <195 :: AID-RSA5> 3.0.CO; 2-A.
- Frank, Ove; Strauss, David (1986), „Markov graphs”, Journal of the American Statistical Association , 81 (395): 832–842, doi : 10.2307 / 2289017 , JSTOR 2289017 , MR 0860518.
- Garey, MR ; Johnson, DS (1978), Rezultate „ puternice” ale completitudinii NP: motivație, exemple și implicații ”, Journal of the ACM , 25 (3): 499–508, doi : 10.1145 / 322077.322090 , S2CID 18371269.
- Garey, MR ; Johnson, DS ; Stockmeyer, L. (1976), „Some simplified NP-complete graph problems”, Theoretical Computer Science , 1 (3): 237–267, doi : 10.1016 / 0304-3975 (76) 90059-1 , MR 0411240.
- Gavril, F. (1973), "Algoritmi pentru o clică maximă și un set maxim independent al unui grafic de cerc", Rețele , 3 (3): 261-273, doi : 10.1002 / net.3230030305.
- Goldmann, M .; Håstad, J. (1992), „O limită inferioară simplă pentru clica monotonă folosind un joc de comunicare” (PDF) , Information Processing Letters , 41 (4): 221–226, CiteSeerX 10.1.1.185.3065 , doi : 10.1016 / 0020 -0190 (92) 90184-W.
- Gröger, Hans Dietmar (1992), "La complexitatea randomizat a proprietăților graph monotone" (PDF) , Acta Cybernetica , 10 (3): 119-127 , recuperate 2009-10-02
- Grosso, A .; Locatelli, M .; Della Croce, F. (2004), „Combinarea swap-urilor și a greutăților nodurilor într-o abordare lacomă adaptivă pentru problema maximă a clicelor”, Journal of Heuristics , 10 (2): 135–152, doi : 10.1023 / B: HEUR.0000026264.51747. 7f , S2CID 40764225.
- Halldórsson, MM (2000), „Aproximări ale setului independent ponderat și ale problemelor subsetului ereditar”, Journal of Graph Algorithms and Applications , 4 (1): 1-16, doi : 10.7155 / jgaa.00020.
- Hamzaoglu, I .; Patel, JH (1998), "Testare algoritmi de compactare set pentru circuite combinaționale", Proc. 1998 IEEE / ACM International Conference on Computer-Aided Design , pp. 283-289, doi : 10.1145 / 288548.288615 , S2CID 12258606.
- Harary, F .; Ross, IC (1957), „A procedure for clique detection using the group matrix”, Sociometry , American Sociological Association, 20 (3): 205–215, doi : 10.2307 / 2785673 , JSTOR 2785673 , MR 0110590.
- Håstad, J. (1999), „Clique is hard to approximate within n 1 - ε ”, Acta Mathematica , 182 (1): 105–142, doi : 10.1007 / BF02392825.
- Impagliazzo, R .; Paturi, R .; Zane, F. (2001), „Care probleme au o complexitate exponențială puternică?”, Journal of Computer and System Sciences , 63 (4): 512–530, doi : 10.1006 / jcss.2001.1774.
- Itai, A .; Rodeh, M. (1978), „Găsirea unui circuit minim într-un grafic”, SIAM Journal on Computing , 7 (4): 413–423, doi : 10.1137 / 0207033.
- Jerrum, M. (1992), „Clici mari eludă procesul Metropolis”, Structuri și algoritmi aleatori , 3 (4): 347–359, doi : 10.1002 / rsa.3240030402.
- Jian, T (1986), "O O (2 0.304 n ) algoritm pentru rezolvarea problemelor maxim stabilit independent", IEEE Transactions on Computers , IEEE Computer Society, 35 (9): 847-851, doi : 10.1109 / TC.1986.1676847 , ISSN 0018-9340.
- Johnson, DS ; Trick, MA , eds. (1996), Cliques, Coloring, and Satisfiability: Second DIMACS Implementation Challenge, 11-13 octombrie 1993 , Seria DIMACS în matematică discretă și informatică teoretică, 26 , American Mathematical Society , ISBN 0-8218-6609-5.
- Johnson, DS ; Yannakakis, M. (1988), „On generate all maximal independent sets”, Information Processing Letters , 27 (3): 119–123, doi : 10.1016 / 0020-0190 (88) 90065-8.
- Karp, Richard M. (1972), „Reducibilitatea printre problemele combinatorii”, în Miller, RE; Thatcher, JW (eds.), Complexitatea Calculatorului Calcule (PDF) , New York: Plenul ., Pp 85-103, arhivate de original (PDF) pe 2011-06-29 , recuperate 2009-12-17.
- Karp, Richard M. (1976), „Analiza probabilistică a unor probleme de căutare combinatorie”, în Traub, JF (ed.), Algoritmi și complexitate: noi direcții și rezultate recente , New York: Academic Press , pp. 1-19.
- Katayama, K .; Hamamoto, A .; Narihisa, H. (2005), „O căutare locală eficientă pentru problema maximă a clicelor”, Scrisori de procesare a informațiilor , 95 (5): 503–511, doi : 10.1016 / j.ipl.2005.05.010.
- Khot, S. (2001), „Rezultate îmbunătățite ale inaproximării pentru MaxClique, numărul cromatic și colorarea graficului aproximativ”, Proc. 42 IEEE Symp. Foundations of Computer Science , pp. 600–609, doi : 10.1109 / SFCS.2001.959936 , ISBN 0-7695-1116-3, S2CID 11987483.
- Kloks, T .; Kratsch, D .; Müller, H. (2000), „Găsirea și numărarea eficientă a subgrafelor mici induse”, Informatii privind prelucrarea scrisorilor , 74 (3-4): 115–121, doi : 10.1016 / S0020-0190 (00) 00047-8.
- Konc, J .; Janežič, D. (2007), „O ramură îmbunătățită și un algoritm legat pentru problema maximă a clicii” (PDF) , MATCH Communications in Mathematical and in Computer Chemistry , 58 (3): 569–590. Cod sursa
- Kuhl, FS; Crippen, GM; Friesen, DK (1983), „Un algoritm combinatoriu pentru calcularea legării ligandului”, Journal of Computational Chemistry , 5 (1): 24–34, doi : 10.1002 / jcc.540050105 , S2CID 122923018.
- Lagarias, Jeffrey C .; Shor, Peter W. (1992), „Conjectura de acoperire cu cuburi a lui Keller este falsă în dimensiuni ridicate”, Buletinul Societății Americane de Matematică , Seria nouă, 27 (2): 279–283, arXiv : math / 9210222 , doi : 10.1090 / S0273-0979-1992-00318-X , MR 1155280 , S2CID 6390600.
- Lipton, RJ ; Tarjan, RE (1980), „Aplicații ale teoremei separatorului planar”, SIAM Journal on Computing , 9 (3): 615–627, doi : 10.1137 / 0209046 , S2CID 12961628.
- Liu, Yu; Lu, Jiaheng; Yang, Hua; Xiao, Xiaokui; Wei, Zhewei (2015), „Către seturi independente maxime pe grafice masive”, Proceedings of the 41st International Conference on Very Large Data Bases (VLDB 2015) , Proceedings of the VLDB Endowment, 8 , pp. 2122–2133, doi : 10.14778 /2831360.2831366 , hdl : 10138/157292.
- Luce, R. Duncan ; Perry, Albert D. (1949), „A method of matrix analysis of group structure”, Psychometrika , 14 (2): 95–116, doi : 10.1007 / BF02289146 , hdl : 10.1007 / BF02289146 , PMID 18152948 , S2CID 16186758.
- Mackey, John (2002), „A cub cub tiling of dimension opt with no facesharing”, Discrete and Computational Geometry , 28 (2): 275–279, doi : 10.1007 / s00454-002-2801-9 , MR 1920144.
- Magniez, Frédéric; Santha, Miklos; Szegedy, Mario (2007), "Algoritmi cuantici pentru problema triunghiului", SIAM Journal on Computing , 37 (2): 413-424, arXiv : quant-ph / 0310134 , doi : 10.1137 / 050643684 , S2CID 594494.
- Makino, K .; Uno, T. (2004), „New algorithms for enumerating all maximal cliques”, Algorithm Theory: SWAT 2004 (PDF) , Lecture Notes in Computer Science, 3111 , Springer-Verlag , pp. 260–272, CiteSeerX 10.1.1.138. 705 , doi : 10.1007 / 978-3-540-27810-8_23.
- Meka, Raghu; Potechin, Aaron; Wigderson, Avi (2015), „Suma de pătrate limite inferioare pentru clica plantată”, Proceedings of the Forty-Seventh Annual ACM on Symposium on Theory of Computing (STOC '15) , New York, NY, SUA: ACM, pp . 87–96, arXiv : 1503.06447 , doi : 10.1145 / 2746539.2746600 , ISBN 978-1-4503-3536-2, S2CID 2754095.
- Luna, JW; Moser, L. (1965), „Despre clici în grafice”, Israel Journal of Mathematics , 3 : 23–28, doi : 10.1007 / BF02760024 , MR 0182577 , S2CID 9855414.
- Nešetřil, J .; Poljak, S. (1985), „Despre complexitatea problemei subgrafului”, Commentationes Mathematicae Universitatis Carolinae , 26 (2): 415–419.
- Östergård, PRJ (2002), „Un algoritm rapid pentru problema maximă a clicii”, Matematică aplicată discretă , 120 (1–3): 197–207, doi : 10.1016 / S0166-218X (01) 00290-6.
- Ouyang, Q .; Kaplan, PD; Liu, S .; Libchaber, A. (1997), „Soluția ADN a problemei maxime a cliciței”, Science , 278 (5337): 446–449, Bibcode : 1997Sci ... 278..446O , doi : 10.1126 / science.278.5337.446 , PMID 9334300.
- Papadimitriou, Christos H .; Yannakakis, Mihalis (1981), „The clique problem for planar graphs”, Information Processing Letters , 13 (4-5): 131–133, doi : 10.1016 / 0020-0190 (81) 90041-7 , MR 0651460.
- Pardalos, PM; Rogers, GP (1992), „A branch and bound algorithm for the maximum clique problem”, Computers & Operations Research , 19 (5): 363-375, doi : 10.1016 / 0305-0548 (92) 90067-F.
- Razborov, AA (1985), „ Limite inferioare pentru complexitatea monotonă a unor funcții booleene”, Proceedings of the URSS Academy of Sciences (în rusă), 281 : 798-801. Traducere în engleză în Sov. Matematica. Dokl. 31 (1985): 354-357CS1 maint: postscript ( link ).
- Régin, J.-C. (2003), „Folosirea programării constrângerilor pentru a rezolva problema maximă a clicelor”, Proc. Al 9-lea Int. Conf. Principiile și practica programării constrângerilor - CP 2003 , Note de curs în informatică, 2833 , Springer-Verlag , pp. 634-648, doi : 10.1007 / 978-3-540-45193-8_43.
- Rodos, Nicolae; Willett, Peter; Calvet, Alain; Dunbar, James B .; Humblet, Christine (2003), „CLIP: căutare similară a bazelor de date 3D utilizând detectarea clicii”, Journal of Chemical Information and Computer Sciences , 43 (2): 443–448, doi : 10.1021 / ci025605o , PMID 12653507.
- Robson, JM (1986), „Algorithms for maximum independent sets”, Journal of Algorithms , 7 (3): 425–440, doi : 10.1016 / 0196-6774 (86) 90032-5.
- Robson, JM (2001), Găsirea unui set maxim independent în timpul O (2 n / 4 ).
- Rosgen, B; Stewart, L (2007), „Rezultatele complexității pe grafice cu câteva clici” , Matematică discretă și informatică teoretică , 9 (1): 127–136.
- Samudrala, Ram; Moult, John (1998), "A graph-theoretic algorithm for comparative modeling of protein structure", Journal of Molecular Biology , 279 (1): 287-302, doi : 10.1006 / jmbi.1998.1689 , PMID 9636717.
- Sethuraman, Samyukta; Butenko, Sergiy (2015), „The maximum ratio clique problem”, Computational Management Science , 12 (1): 197–218, doi : 10.1007 / s10287-013-0197-z , MR 3296231 , S2CID 46153055.
- Song, Y. (2015), „Despre problema setului independent în grafice aleatoare” , International Journal of Computer Mathematics , 92 (11): 2233-2242, doi : 10.1080 / 00207160.2014.976210 , S2CID 6713201.
- Spirin, Victor; Mirny, Leonid A. (2003), „Complexe proteice și module funcționale în rețele moleculare”, Proceedings of the National Academy of Sciences , 100 (21): 12123–12128, Bibcode : 2003PNAS..10012123S , doi : 10.1073 / pnas. 2032324100 , PMC 218723 , PMID 14517352.
- Tarjan, RE ; Trojanowski, AE (1977), „Finding a maximum independent set” (PDF) , SIAM Journal on Computing , 6 (3): 537–546, doi : 10.1137 / 0206038.
- Tomita, E .; Kameda, T. (2007), "Un algoritm eficient ramificat și legat pentru găsirea unei clici maxime cu experimente de calcul", Journal of Global Optimization , 37 (1): 95-111, doi : 10.1007 / s10898-006-9039 -7 , S2CID 21436014.
- Tomita, E .; Seki, T. (2003), „Un algoritm eficient de ramificare și legare pentru găsirea unei clici maxime” , Matematică discretă și informatică teoretică , Lecture Notes in Computer Science, 2731 , Springer-Verlag, pp. 278-289 , doi : 10.1007 / 3-540-45066-1_22 , ISBN 978-3-540-40505-4.
- Tomita, E .; Tanaka, A .; Takahashi, H. (2006), „Cel mai rău caz de complexitate în timp pentru generarea tuturor clicurilor maxime și a experimentelor de calcul”, Theoretical Computer Science , 363 (1): 28–42, doi : 10.1016 / j.tcs.2006.06.015.
- Tsukiyama, S .; Ide, M .; Ariyoshi, I .; Shirakawa, I. (1977), „Un nou algoritm pentru generarea tuturor seturilor maxime independente”, SIAM Journal on Computing , 6 (3): 505–517, doi : 10.1137 / 0206036.
- Valiant, LG (1983), „Limite inferioare exponențiale pentru circuite monotone restricționate”, Proc. Al 15-lea Simpozion ACM pe teoria calculelor , pp. 110-117, doi : 10.1145 / 800061.808739 , ISBN 0-89791-099-0, S2CID 6326587.
- Vassilevska, V .; Williams, R. (2009), „Găsirea, minimizarea și numărarea subgrafelor ponderate”, Proc. 41th ACM Symposium on Theory of Computing , pp. 455–464, CiteSeerX 10.1.1.156.345 , doi : 10.1145 / 1536414.1536477 , ISBN 978-1-60558-506-2, S2CID 224579.
- Wegener, I. (1988), „Despre complexitatea programelor de ramificare și a arborilor de decizie pentru funcțiile clice”, Jurnalul ACM , 35 (2): 461–472, doi : 10.1145 / 42282.46161 , S2CID 11967153.
- Yuster, R. (2006), „Găsirea și numărarea de clici și seturi independente în hipergrafe r- uniforme”, Informatii de prelucrare a scrisorilor , 99 (4): 130–134, doi : 10.1016 / j.ipl.2006.04.005.
- Zuckerman, D. (2006), "Extractoare de grad liniar și inapproximabilitatea maximei clice și a numărului cromatic", Proc. 38th ACM Symp. Theory of Computing , pp. 681–690, doi : 10.1145 / 1132516.1132612 , ISBN 1-59593-134-1, S2CID 5713815 , ECCC TR05-100.