Problema fisurii
În informatică , problema fisurilor se referă la oricare dintre problemele legate de găsirea anumitor subgrafe complete („ fisuri ”) într-un grafic , adică seturi de elemente unde fiecare pereche de elemente este conectată.
De exemplu, problema maximă de clică apare în următorul scenariu din lumea reală. Luați în considerare o rețea socială , în care vârfurile graficului reprezintă oameni, iar marginile grafului reprezintă reciproc cunoștințele. Pentru a găsi un subset mai mare de oameni care se cunosc toți, se poate inspecta sistematic toate subseturile, un proces care consumă prea mult timp pentru a fi practic pentru rețelele sociale care includ mai mult de câteva zeci de oameni. Deși această căutare cu forță brută poate fi îmbunătățită prin algoritmi mai eficienți, toți acești algoritmi necesită timp exponențial pentru a rezolva problema. Astfel, o mare parte din teoria problemei clica 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. [1] Împreună cu aplicațiile sale în rețelele de socializare, problema clică are, de asemenea, multe aplicații în bioinformatică și chimie computațională . [2]
Problemele clice includ:
- găsiți clica maximă (o clică cu cel mai mare număr de vârfuri),
- găsiți o clică cu greutatea maximă într-un grafic ponderat ,
- enumerați toate fisurile maxime (fisuri care nu pot fi extinse),
- rezolvați problema deciziei de a verifica dacă un grafic conține o fisură mai mare decât o dimensiune dată.
Toate aceste probleme sunt dificile: problema deciziei de crack este NP-completă (una dintre cele 21 de probleme Karp-NP-complete ), problema găsirii fisurii maxime este atât intratabilă cu un parametru fix , cât și dificil de aproximat și listează toate valorile maxime fisurile pot lua timp exponențial deoarece există grafice cu un număr exponențial de fisuri maxime. Cu toate acestea, există algoritmi pentru aceste probleme care rulează în timp exponențial sau care gestionează anumite grafice de intrare în timp polinomiale mai specializate. [1]
Istorie
Deși subgrafele complete sunt concepute pentru mai mult timp în matematică, [3] termenul „bandă” (clica în engleza originală) și problema listării algoritmice a clicurilor sunt ambele din științele sociale, unde subgrafele complete sunt folosite pentru a modela clici sociale, grupuri de oameni care se cunosc toți. Terminologia „clicii” provine de la Luce & Perry (1949) , iar primul algoritm care rezolvă problema clicii este cel al lui Harari & Ross (1957) , [1] care au fost motivați de aplicația sociologică.
De la lucrările lui Harary și Ross, mulți alții au conceput algoritmi pentru diferite versiuni ale problemei clici. [1] În anii 1970, cercetătorii au început să studieze acești algoritmi din punctul de vedere al analizei în cel mai rău caz ; vezi, de exemplu, Tarjan și Trojanowski (1977) , o lucrare timpurie despre complexitatea celui mai rău caz în problema maximă a clicii. Tot în anii 1970, începând cu lucrările lui Cook (1971) și Karp (1972) , cercetătorii au început să găsească justificări matematice pentru dificultatea percepută a problemei clici în teoria completitudinii NP și a rezultatelor legate de intractabilitate. În anii 1990, o serie de studii inovatoare au început cu Feige și colab. (1991) și raportat la vremea respectivă de către ziarele de vârf [4], a arătat că nu este posibil nici măcar să aproximăm problema cu precizie și eficiență.
Definiții
Un grafic indirect 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 fisură într-un grafic G este un subgraf complet al lui G ; adică este un subset S de vârfuri astfel încât fiecare doi vârfuri din S sunt conectate printr-o margine din G. O fisură maximă este o fisură la care nu se pot adăuga alte vârfuri; o fisură maximă este o fisură care include cel mai mare număr posibil de vârfuri, iar numărul fisurii ω ( G ) este numărul de vârfuri într-o fisură maximă de G. [1]
Au fost studiate mai multe probleme strâns legate de cercetarea fisurilor.
- În problema maximă a clicului, intrarea este un grafic indirect, iar ieșirea este o clic maximă a graficului. Dacă există mai multe fisuri maxime, doar una trebuie să fie ieșirea.
- În problema maximă a fisurii ponderate, intrarea este un grafic indirect cu greutățile pe vârfurile sale (sau, mai rar, pe margini), iar ieșirea este o fisură cu greutatea totală maximă. Problema maximă a fisurării este cazul special în care greutățile sunt la fel.
- În problema de listare a clicurilor maxime, intrarea este un grafic indirect, iar ieșirea este o listă a tuturor clicurilor maxime. Problema maximă de fisurare poate fi rezolvată folosind un algoritm pentru problema maximă de listare a fisurilor ca subrutină, deoarece fisura maximă trebuie inclusă între toate fisurile maxime.
- În problema k- crack, intrarea este un grafic indirect și un număr k , iar ieșirea este o fisură de dimensiune k dacă există una (sau, uneori, toate fisurile dimensiunii k ).
- În problema deciziei de clic, intrarea este un grafic indirect și un număr k , iar ieșirea este o valoare booleană : adevărat dacă graficul conține un crack k , și fals în caz contrar.
Primele patru dintre aceste probleme sunt importante în aplicațiile practice; problema deciziei crack nu este, dar este necesar să se aplice teoria completitudinii NP problemelor de căutare crack.
Problema clică și problema setului independent sunt complementare: o clică în G este o mulțime din 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 disting 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 fisurii poate fi rezolvată în timp polinomial pentru graficele plane , [5] în timp ce problema setului independent rămâne dificil de NP pe graficele plane.
Algoritmi
Maxim versus maxim
O fisură maximă , uneori numită maximă cu includere, este o fisură care nu este inclusă într-o fisură mai mare. De aceea, rețineți că fiecare fisură este conținută într-o fisură maximă.
Fisurile maxime pot fi foarte mici. Un grafic poate conține o clică non-maximă cu mulți vârfuri și o clică bidimensională separată care este maximă. În timp ce o fisură maximă (adică mai mare) este neapărat maximă, inversul nu se menține. Există câteva tipuri de grafice în care fiecare fisură este maximă ( complementele graficelor bine acoperite , care includ în special grafice complete , grafice fără triunghiuri fără vârfuri izolate , grafuri multiple multipartite și k- arbori ), dar alte grafice au maxim clipuri care nu sunt maxime.
Găsirea unei fisuri maxime este imediată: pornind de la o clică arbitrară (de exemplu, un singur vârf), clica curentă este crescută câte un vârf la un moment dat, iterând peste vârfurile rămase ale graficului, adăugând un vârf dacă este conectat la fiecare vârful fisurii actuale și aruncându-l altfel. Acest algoritm funcționează în timp liniar . Datorită ușurinței de a găsi fisuri maxime și a dimensiunii potențiale a acestora, s-a acordat mai multă atenție problemei algoritmice mult mai dificile de a găsi o fisură maximă sau altfel mare decât a fost dată problemei de a găsi o fisură maximă unică.
S-au remediat fisurile de dimensiune
Un algoritm de forță brută pentru a testa dacă un grafic G conține un cli cu k vârfuri și pentru a găsi orice astfel de fisură pe care o conține, trebuie să examineze fiecare subgraf cu cel puțin k vârfuri și să verifice dacă formează o fisură. Acest algoritm folosește timpul O ( n k k 2 ): există subgrafe O ( n k ) de verificat, fiecare dintre ele având margini O ( k 2 ) a căror prezență în G trebuie verificată. Prin urmare, problema poate fi rezolvată în timp polinomial ori de câte ori k este o constantă fixă. Cu toate acestea, atunci când k face parte din introducerea problemei, timpul este exponențial. [6]
Cel mai simplu caz netrivial al problemei găsirii unei clici este găsirea unui triunghi într-un grafic sau echivalent pentru a determina dacă graficul este fără triunghiuri . Într-un grafic cu m muchii, pot exista cel mult Θ ( m 3/2 ) triunghiuri; cel mai rău caz apare atunci când G este el însuși o fisură. Prin urmare, algoritmii pentru listarea tuturor triunghiurilor trebuie să ia cel puțin timpul Ω ( m 3/2 ) în cel mai rău caz, iar algoritmii sunt cunoscuți pentru a se potrivi cu această limită de timp. [7] De exemplu, Chiba și Nishizeki (1985) descriu un algoritm care sortează vârfurile de la cel mai înalt la cel mai mic grad și apoi iterează prin fiecare vârf v din lista sortată, căutând triunghiuri care includ v și care nu includ niciun vârf anterior. a listei. Pentru a face acest lucru, algoritmul marchează toți vecinii lui v , caută prin toate marginile incidente unui vecin cu v, producând ca ieșire un triunghi pentru fiecare margine care are marcate două puncte extreme, apoi elimină marcajele și șterge v de la graficul. După cum arată autorii, timpul pentru acest algoritm este proporțional cu arboricitatea graficului ( a ( G )) prin numărul de muchii, care este O ( m a ( G )). Deoarece arboricitatea este cel mult O ( m 1/2 ), acest algoritm funcționează în timp O ( m 3/2 ). Mai general, toate fisurile cu k vârfuri pot fi listate printr-un algoritm similar care durează un timp proporțional cu numărul de muchii pentru puterea ( k - 2) a arboricității. [5] Pentru graficele de arboricitate constantă, cum ar fi graficele plane (sau, în general, graficele oricărei familii de grafice minore închise netriviale), acest algoritm folosește timpul O ( m ), care este optim, deoarece este liniar în dimensiunea intrarea.
Dacă doriți doar un singur triunghi sau asigurarea că graficul este fără triunghiuri, 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 rapide de multiplicare a matricii, cum ar fi algoritmul Coppersmith-Winograd, pot fi aplicate pentru a găsi triunghiuri în timpul O ( n 2.376 ), care poate fi mai rapid decât O ( m 3/2 ) pentru grafice suficient de dense . Alon, Yuster & Zwick (1994) au îmbunătățit algoritmul O ( m 3/2 ) pentru a găsi triunghiuri O ( m 1,41 ) folosind multiplicarea rapidă a matricei. Această idee a utilizării înmulțirii rapide a matricii pentru a găsi triunghiuri a fost, de asemenea, extinsă la problemele de a găsi k- fisuri pentru valori mai mari ale lui k . [8]
Enumerați toate fisurile maxime
Conform unui rezultat al lui Moon & Moser (1965) , orice grafic cu n vârfuri are cel mult 3 n / 3 fisuri maxime. Algoritmul L- Bron-Kerbosch este o procedură recursivă care revine înapoi (backtracking) a lui Bron & Kerbosch (1973) care mărește un candidat de clică având în vedere un vârf la un moment dat, sau adăugându-l la clicul candidat sau un set de vârfuri care nu sunt excluse pot fi în clică, dar trebuie să aibă unii non-vecini în clica finală; se poate arăta că variantele acestui algoritm au cel mai rău timp de execuție O (3 n / 3 ). [9] Astfel, aceasta oferă o soluție optimă, în cel mai rău caz, la problema listării tuturor seturilor maxime independente; în plus, s-a raportat pe scară largă că algoritmul Bron-Kerbosch este în practică mai rapid decât alternativele sale. [10]
După cum au arătat Tsukiyama, Ide, Ariyoshi și Shirakawa (1977) , este, de asemenea, posibil să se enumere toate clice maxime într-un grafic într-un timp care este polinomial pentru fiecare clică generată. Un algoritm ca al lor în care timpul de execuție depinde de mărimea ieșirii este cunoscut sub numele de algoritm sensibil la ieșire . Algoritmul lor se bazează pe următoarele două observații, care conectează fisurile maxime ale graficului dat G la fisurile maxime ale unui grafic G \ v format prin eliminarea unui vârf arbitrar v din G :
- Pentru fiecare fisură maximă C în G \ v sau C continuă să formeze o fisură maximă în G sau C ⋃ {v} formează o fisură maximă în G. Prin urmare, G are cel puțin la fel de multe fisuri maxime ca G \ v .
- Fiecare fisură maximă din G care nu conține v este o fisură maximă în G \ v și fiecare fisură maximă din G care nu conține v poate fi formată dintr-o fisură maximă C în G \ v prin adăugarea v și eliminarea non- vecini de v din C.
Folosind aceste observații pot genera toate fisurile maxime din G prin intermediul unui algoritm recursiv care, pentru fiecare fisură maximă C din G \ v , produce ca ieșire C și fisura formată prin adăugarea v la C și eliminarea tuturor non-vecinilor lui v . Cu toate acestea, unele fisuri din G pot fi generate în acest fel de mai multe clici părinte ale lui G \ v , astfel încât elimină duplicatele producând ca ieșire o fisură în G numai atunci când părintele său din G \ v este lexicografic maxim dintre toate fisurile posibile părinţi. Pe baza acestui principiu, ele arată că toate fisurile maxime din G pot fi generate în timpul O ( mn ) pentru fiecare fisură, unde m este numărul de muchii din G și n este numărul de vârfuri; Chiba și Nishizeki (1985) îmbunătățesc această valoare la O ( ma ) pentru fiecare clică, unde a este arboricitatea graficului dat. Makino & Uno (2004) furnizează un algoritm alternativ sensibil la ieșire bazat pe multiplicarea rapidă a matricei, iar Johnson & Yannakakis (1988) arată că este, de asemenea, posibil să se enumere toate fisurile maxime în ordine lexicografică cu o întârziere polinomială pentru fiecare fisură, deși inversul acestui ordin este NP-dificil de generat.
Pe baza acestui rezultat, este posibilă listarea tuturor fisurilor maxime în timp polinomial, pentru familiile de grafice în care numărul fisurilor este limitat polinomial. Aceste familii includ grafice corzii , complet grafice, non-triunghiulare grafice, interval grafice, limitate bossicity grafice și graficele planare . [11] În special, graficele plane și, mai general, orice familie de grafice care sunt ambele rare (având ca număr de muchii cel mult o constantă pentru numărul de vârfuri), sunt închise pe baza operației de preluare a subgrafelor, are O ( n ) fisuri, cel mult de dimensiuni constante, care pot fi listate în timp liniar. [5] [12]
Găsirea fisurilor maxime în grafice arbitrare
Este posibil să se găsească fisura maximă, sau numărul fisurii, al unui grafic arbitrar n- vârf în timp O (3 n / 3 ) = O (1,4422 n ) folosind unul dintre algoritmii descriși mai sus pentru a enumera toate fisurile maxime ale graficul și returnează-l pe cel mai mare. Cu toate acestea, pentru această variantă a problemei fisurilor, sunt posibile termene mai bune î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 un sistem de backtracking recursiv similară cu cea a algoritmului Bron-Kerbosch , dar este capabil de a elimina unele apeluri recursive , atunci când se poate demonstra că este garantat că o altă combinație de noduri care nu sunt utilizate în derivațiile de apel la o soluție care este la cel puțin la fel de bine. Jian (1986) a îmbunătățit acest lucru în O (2 0,304 n ) = O (1,2346 n ). Robson (1986) a îmbunătățit-o în timp O (2 0,276 n ) = O (1,2108 n ), în detrimentul unei utilizări mai mari a spațiului, prin intermediul unui model similar înapoi cu o analiză de caz mai complicată, împreună cu o tehnică de programare dinamică în care soluția optimă este precomputată pentru toate subgrafele mici conectate ale graficului complementului și aceste soluții parțiale sunt utilizate pentru a scurta traversarea înapoi. Cel mai rapid algoritm cunoscut astăzi este cel datorat lui Robson (2001) , care rulează în timp O (2 0,249 n ) = O (1,1888 n ).
Au existat, de asemenea, cercetări ample privind algoritmii euristici pentru a rezolva problemele maxime de fisurare fără garanții în timpii de execuție în cel mai rău caz, bazate pe metode incluzând căutare ramificată și legată , [13] locală , [14] algoritmi lacomi , [15] și programarea constrângerilor . [16] Metodologiile de calcul non-standard pentru găsirea fisurilor includ calculul ADN [17] și calculul cuantic adiabatic . [18] Problema maximă de clică a fost subiectul unei provocări de implementare sponsorizate de DIMACS în 1992-1993, [19] și o colecție de grafice utilizate ca etaloane pentru provocare este disponibilă publicului. [20]
Clase speciale de grafice
Graficele plane și alte familii de grafice rare au fost discutate mai sus: au un număr liniar de fisuri maxime, de dimensiuni finite, care pot fi listate în timp liniar. [5] În special, pentru graficele plane, orice fisură poate avea cel mult patru vârfuri, conform teoremei lui Kuratowski .
Graficele perfecte sunt definite de proprietățile că numărul lor de fisuri este egal cu numărul lor cromatic și că această egalitate deține și în fiecare dintre subgrafele lor induse . Pentru grafice perfecte, este posibil să se găsească o fisură maximă în timp polinomial, folosind un algoritm bazat pe programare semidefinită . [21] Cu toate acestea, această metodă este complexă și necombinatorie, iar algoritmi specializați pentru găsirea fisurilor au fost dezvoltați pentru multe subclase de grafice perfecte. [22] În graficele complementare ale graficelor bipartite , teorema lui König permite rezolvarea problemei maxime a fisurilor folosind tehnici de cuplare . Într-o altă clasă de grafice perfecte , grafice de permutare , o clică maximă este o subsecvență descrescătoare care este mai lungă decât permutația care definește graficul și poate fi găsită folosind algoritmi cunoscuți pentru cea mai lungă problemă de subsecvență descrescătoare. [23] În graficele acordurilor , fisurile maxime sunt un subset al n fisurilor formate ca parte a unei ordonări de eliminare.
Î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 circular , proximitatea fiecărui vârf este un grafic de permutare, deci o fisură maximă poate fi găsită prin aplicarea algoritmului a graficului de permutare la fiecare proximitate. [24] În mod similar, într-un grafic pe disc (cu o reprezentare geometrică cunoscută), există un algoritm de timp polinomial pentru fisuri maxime bazat pe aplicarea algoritmului pentru complementele graficelor bipartite la vecinătățile comune ale perechilor de vârfuri. [25]
Problema algoritmică a găsirii unei fisuri maxime într-un grafic aleatoriu preluată din modelul Erdős-Rényi (în care fiecare margine apare cu probabilitatea 1/2, independent de celelalte margini) a fost sugerată de Karp (1976) . Deși numărul de fisuri al acestor grafice este foarte apropiat de 2 log 2 n , algoritmii simpli lacomi , precum și tehnici mai sofisticate de aproximare randomizată [26] găsesc doar fisuri cu dimensiunea log 2 n , iar numărul de fisuri maxime din astfel de grafice este, cu probabilitate mare, exponențială în log 2 n împiedicând o soluție polinomială care le listează pe toate. Datorită dificultății acestei probleme, mai mulți autori au investigat variante ale problemei în care graficul aleatoriu este mărit prin adăugarea unei clici mari, de dimensiune proporțională cu √ n . Este posibil să găsim această clică ascunsă cu probabilitate mare în timp polinomial, folosind fie metode spectrale [27], fie programare semidefinită . [28]
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 atât de apropiată de maximă încât 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, un caz care nu are sens pentru problema complementară a clicii, a lucrat și la algoritmi de aproximare care nu utilizează astfel de ipoteze de raritate. [29]
Feige (2004) descrie un algoritm de timp polinomial care găsește o fisură de dimensiunea Ω ((log n / log log n ) 2 ) în orice grafic având numărul de fisură Ω ( n / log k n ) pentru orice constantă k . Combinând acest algoritm pentru găsirea fisurilor în grafice cu numere de fisuri între n / log n și n / log 3 n cu un algoritm diferit de Boppana & Halldórsson (1992) pentru găsirea fisurilor în grafice cu numere mai mari de fisuri și alegerea unei fisuri a două vârfuri dacă ambii algoritmi nu pot găsi nimic, Feige oferă un algoritm de aproximare care găsește o fisură 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, iar rezultatele dificultății 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 clice este NP-completă . A fost una dintre cele 21 de probleme originale ale lui Richard Karp, demonstrate ca fiind NP-complete în lucrarea sa din 1972, Reducibility Among Combinatorial Problems . Această problemă a fost menționată și în eseul lui Stephen Cook care a introdus teoria problemelor NP-complete. Prin urmare, problema găsirii unei fisuri maxime este NP-dificilă: dacă s-ar putea rezolva, s-ar putea rezolva și problema deciziei, comparând dimensiunea maximă a fisurii cu parametrul de dimensiune dat ca intrare în problema deciziei.
Dovada lui Karp de completitudine NP este o reducere mult-la-unu a problemei de satisfacție booleană pentru formule conjunctive de formă normală , care sa dovedit a fi NP-completă în teorema Cook-Levin . [31] Dintr-o formulă FNC dată, 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 . Vârfurile sunt conectate printr-o margine dacă reprezintă atribuiri 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ția celălalt. Dacă k denotă numărul de clauze din formula FNC, atunci clicurile k- vertex din acest grafic reprezintă modalități de atribuire a unor valori de adevăr unor variabile ale acestuia pentru a satisface formula; prin urmare, formula este satisfăcătoare dacă și numai dacă există o clică cu k vârfuri.
Unele probleme NP complete (cum ar fi problema vânzătorului în grafice plane ) pot fi rezolvate într-un timp exponențial într-o funcție subliniară a parametrului n al dimensiunii de intrare. [32] Cu toate acestea, așa cum descriu Impagliazzo, Paturi și Zane (2001) , este puțin probabil ca astfel de limite să existe pentru problema fisurilor în grafice arbitrare, deoarece acestea ar implica limite subexponențiale similare pentru multe alte probleme standard NP-complete.
Complexitatea circuitelor
Dificultatea de calcul a problemei crack-ului a însemnat că a fost utilizată pentru a dovedi diferite limite inferioare ale complexității circuitului . Deoarece existența unei fisuri de o dimensiune dată este o proprietate monotonă a graficelor (dacă există o fisură într-un grafic dat, aceasta va exista în orice supergraf), trebuie să existe un circuit monoton, care utilizează doar porți ȘI și porți SAU , pentru a rezolva problema deciziei fisurilor pentru o anumită dimensiune fixă a fisurii în sine. Cu toate acestea, se poate arăta că dimensiunea acestor circuite este o funcție superpolinomială a numărului de vârfuri și a dimensiunii fisurii, exponențială în rădăcina cubică a numărului de vârfuri. [33] Chiar dacă este permis un număr mic de porți NU , complexitatea rămâne superpolinomială. [34] În plus, adâncimea unui circuit monoton pentru problema fisurilor folosind porți cu număr maxim limitat de linii de ventilare trebuie să fie de cel puțin un polinom de dimensiunea fisurii. [35]
Complexitatea arborilor de decizie
Complexitatea (deterministă) a arborelui decizional în determinarea proprietății graficelor 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ă. Deoarece există cel mult n ( n - 1) / 2 întrebări posibile de răspuns, orice proprietate a graficelor poate fi determinată cu n ( n - 1) / 2 întrebări. È anche possibile definire la complessità casuale e quantistica dell'albero decisionale di una proprietà, il numero atteso di domande (per un'entrata del caso peggiore) a cui un algoritmo randomizzato o quantistico deve rispondere al fine di determinare correttamente se il grafo dato ha la proprietà in questione.
Poiché la proprietà di contenere una cricca è una proprietà monotona (aggiungere uno spigolo può fare soltanto in modo che esistano più cricche all'interno del grafo, non meno), essa è coperta dalla congettura di Aanderaa-Karp-Rosenberg , che afferma che la complessità deterministica dell'albero decisionale nel determinare una qualsiasi proprietà dei grafi monotona non banale è esattamente n ( n − 1)/2. Per gli alberi decisionali deterministici, fu dimostrato da Bollobás (1976) che una k -cricca (2 ≤ k ≤ n ) ha una complessità degli alberi esattamente di n ( n − 1)/2. Gli alberi decisionali deterministici richiedono una dimensione esponenziale per rilevare le cricche o una grande dimensione polinomiale per rilevare cricche di dimensione limitata. [36]
La congettura di Aanderaa-Karp-Rosenberg afferma anche che la complessità degli alberi decisionali randomizzati di funzioni monotone non banali è Θ(n 2 ). La congettura è risolta per la proprietà di contenere una k -cricca (2 ≤ k ≤ n ), poiché è noto che essa ha la complessità dell'albero decisionale randomizzato Θ(n 2 ). [37] Per gli alberi decisionali quantici, il limite inferiore più noto è Ω(n), ma non si conosce nessun algoritmo corrispondente per il caso di k ≥ 3. [38]
Intrattabilità a parametro fisso
La complessità parametrizzata [39] è lo studio di teoria della complessità dei problemi che sono forniti naturalmente di un piccolo parametro intero k , e per i quali il problema diventa più difficile al crescere di k , come il trovare k -cricche nei grafi. Si dice che un problema è trattabile a parametro fisso se c'è un algoritmo per risolverlo su entrate di dimensione n nel tempo f ( k ) n O(1) ; cioè, se può essere risolto in tempo polinomiale per qualsiasi valore fisso di k e in più se l'esponente del polinomio non dipende da k .
Per il problema della cricca, l'algoritmo di forza bruta ha un tempo di esecuzione O( n k k 2 ), e sebbene possa essere migliorato dalla moltiplicazione veloce tra matrici il tempo di esecuzione ha ancora un esponente che è lineare in k . Perciò, sebbene il tempo di esecuzione di algoritmi noti per il problema della cricca sia polinomiale per qualsiasi k fisso, questi algoritmi non sono sufficienti per la trattabilità a parametro fisso. Downey & Fellows (1995) definirono una gerarchia di problemi parametrizzati, la gerarchia W, che congetturarono non avesse algoritmi trattabili a parametro fisso; essi provarono che l'inisieme indipendente (o, equivalentemente, la cricca) è difficile per il primo livello di questa gerarchia, W[1] . Pertanto, secondo la loro congettura, la cricca non è trattabile a parametro fisso. Inoltre, questo risultato fornisce la base per le dimostrazioni della W[1] -difficoltà di molti altri problemi, e serve così come analogo del teorema di Cook-Levin per la complessità parametrizzata.
Chen et al. (2006) mostrarono che il problema della cricca non può essere risolto nel tempo a meno che non venga meno l' ipotesi del tempo esponenziale .
Sebbene sia improbabile che i problemi di elencare le cricche massimali o di trovare le cricche massime siano a trattabili a parametro fisso con il parametro k , esse possono essere a trattabili a parametro fisso per altri parametri di complessità delle istanze. Ad esempio, è noto che entrambi i problemi sono a trattabili a parametro fisso quando sono parametrizzati in base alla degenerazione del grafo delle entrate. [12]
Difficoltà di approssimazione
La complessità computazionale di approssimare il problema della cricca è studiata da molto tempo; ad esempio, Garey & Johnson (1978) osservarono che, a causa del fatto che il numero di cricca assume valori interi piccoli ed è NP-difficile da computare, non può avere uno schema di approssimazione in tempo pienamente polinomiale . Tuttavia, poco di più si seppe fino ai primi anni 1990, quando parecchi autori cominciarono a fare connessioni tra l'approssimazione delle cricche massime e le dimostrazioni verificabili probabilisticamente , e usarono queste connessioni per dimostrare i risultati della difficoltà di approssimazione per il problema della cricca massima. [4] [40] Dopo molti miglioramenti in questi risultati è ora noto che, a meno che P = NP , non ci può essere nessun algoritmo in tempo polinomiale che approssima la cricca massima entro un fattore migliore di O( n 1 − ε ), per qualsiasi ε > 0. [41]
L'idea generica di questi risultati di inapprossimabilità [42] è formare un grafo che rappresenta un sistema di dimostrazioni verificabili probabilisticamente per un problema NP-completo come la soddisfacibilità. Un sistema di dimostrazione di questo tipo è definito da una famiglia di stringhe di dimostrazione (sequenze di bit) e da verificatori di dimostrazione: algoritmi che, dopo una quantità polinomiale di computazione su una data istanza di soddisfacibilità, eaaminano un piccolo numero di bit della stringa di dimostrazione scelti casualmente e, sulla base di quell'esame, dichiarano che è o una dimostrazione valida o una dimostrazione invalida. Le false negazioni non sono consentite: una dimostrazione valida deve essere sempre dichiarata valida, ma una dichiarazione invalida può essere dichiarata valida finché la probabilità che un verificatore faccia un errore di questo tipo è bassa. Per trasformare un sistema di dimostrazione verificabile probabilisticamente in un problema della cricca, si forma un grafo nel quale i vertici rappresentano tutti i modi possibili in cui un verificatore di dimostrazioni potrebbe leggere una sequenza di bit di stringhe di dimostrazione e finire accettando la dimostrazione. Due vertici sono connessi da uno spigolo ogni volta che le due esecuzioni del verificatore di dimostrazioni che essi descrivono concordano sui valori dei bit della stringa di dimostrazione che entrambe esaminano. Le cricche massimali in questo grafo consistono nelle esecuzioni per una singola stringa di dimostrazione del verificatore di dimostrazioni che ha il compito di fare l'accettazione, e una di queste cricche è grande se e solo se esiste una stringa di dimostrazione che molti verificatori di dimostrazioni accettano. Se l'istanza originale di soddisfacibilità è soddisfacibile, ci sarà una grande cricca definita da una stringa di dimostrazione valida per quell'istanza, ma se l'istanza originale non è soddisfacibile, allora tutte le stringhe di dimostrazione sono invalide, qualsiasi stringa di dimostrazione ha solo un piccolo numero di verificatori che l'accettano erroneamente e tutte le cricche sono piccole. Perciò, se si potesse distinguere in tempo polinomiale tra i grafi che hanno grandi cricche ei grafi nei quali le cricche sono piccole, si potrebbe usare questa abilità per distinguere i grafi generati dalle istanze soddisfacibili e insoddisfacibili del problema della soddisfacibilità, non possibile a meno che P = NP. Un'approssimazione accurata in tempo polinomiale al problema della cricca consentirebbe a questi due insiemi di grafi di essere distinti l'uno dall'altro, ed è perciò anch'essa impossibile.
Programmi liberi per la ricerca della massima cricca
Nome | Licenza | Linguaggio API | Breve info |
---|---|---|---|
NetworkX | BSD | Python | soluzione approssimata, vedi la routine max_clique [ collegamento interrotto ] |
maxClique | CRAPL | Java | algoritmi esatti e istanze DIMACS |
OpenOpt | BSD | Python | soluzioni esatte e approssimate, possibilità di specificare i nodi che devono essere inclusi / esclusi; vedi la classe MCP Archiviato il 3 ottobre 2013 in Internet Archive . per maggiori dettagli ed esempi |
Note
- ^ a b c d e Per una rassegna di questi algoritmi di questi algoritmi e per le definizioni di base usate in questo articolo, vedi Bomze, Budinich, Pardalos & Pelillo (1999) e Gutin (2004) .
- ^ Per maggiori dettagli e riferimenti, vedi cricca (teoria dei grafi) .
- ^ I sottografi completi fanno una prima apparizione nella letteratura matematica nella riformulazione della teoria dei grafi della teoria di Ramsey da parte di Erdős & Szekeres (1935) .
- ^ a b Gina Kolata, In a Frenzy, Math Enters Age of Electronic Mail , in New York Times , 26 giugno 1990.
- ^ a b c d Chiba & Nishizeki (1985) .
- ^ Ad es., vedi Downey & Fellows (1995) .
- ^ Itai & Rodeh (1978) forniscono un algoritmo con tempo di esecuzione O( m 3/2 ) che trova un triangolo se ne esiste uno, ma non elenca tutti i triangoli; Chiba & Nishizeki (1985) elencano tutti i triangoli nel tempo O( m 3/2 ).
- ^ Eisenbrand2004 , Eisenbrand & Grandoni (2004) ; Kloks, Kratsch & Müller (2000) ; Nešetřil & Poljak (1985) ; Vassilevska & Williams (2009) ; Yuster (2006) .
- ^ Tomita, Tanaka & Takahashi (2006) .
- ^ Cazals & Karande (2008) ; Eppstein & Strash (2011) .
- ^ Rosgen & Stewart (2007) .
- ^ a b Eppstein, Löffler & Strash (2010) .
- ^ Balas & Yu (1986) ; Carraghan & Pardalos (1990) ; Pardalos & Rogers (1992) ; Östergård (2002) ; Fahle (2002) ; Tomita & Seki (2003) ; Tomita & Kameda(2007) ; Konc & Janežič (2007) .
- ^ Battiti & Protasi (2001) ; Katayama, Hamamoto & Narihisa (2005) .
- ^ Abello, Pardalos & Resende (1999) ; Grosso, Locatelli & Della Croce (2004) .
- ^ Régin (2003) .
- ^ Ouyang et al. (1997) . Sebbene il titolo si riferisca alle cricche massimali, il problema che questo saggio risolve è in effetti il problema della cricca massima.
- ^ Childs et al. (2002) .
- ^ Johnson & Trick (1996) .
- ^ DIMACS challenge graphs for the clique problem Archiviato il 18 dicembre 2009 in Wikiwix., consultato il 17-12-2009.
- ^ Grötsche, Lovász & Schrijver (1988) .
- ^ Golumbic (1980) .
- ^ Golumbic (1980) , p. 159. Ecen, Pnueli & Lempel (1972) forniscono un algoritmo alternativo in tempo quadratico per le cricche massime nei grafi di comparabilità , una classe di grafi perfetti più vasta che include i grafi di permutazione come caso speciale.
- ^ Gavril (1973) ; Golumbic (1980) , p. 247.
- ^ Clark, Colbourn & Johnson (1990) .
- ^ Jerrum (1992) .
- ^ Alon, Krivelevich & Sudakov (1998) .
- ^ Feige & Krauthgamer (2000) .
- ^ Boppana & Halldórsson (1992) ; Feige (2004) ; Halldórsson (2000) .
- ^ Adattato da Sipser1996 , Sipser (1996) .
- ^ Cook (1971) dà essenzialmente la stessa riduzione, da 3-SAT invece della soddisfacibilità, per mostrare che l' isomorfismo di sottografi è NP-completo.
- ^ Lipton & Tarjan (1980) .
- ^ Alon & Boppana (1987) . Per limiti anteriori e più deboli sul problema della cricca, vedi Valiant (1983) e Razborov (1985) .
- ^ Amano1998 , Amano & Maruoka (1998) .
- ^ Goldmann & Håstad (1992) usarono la complessità della comunicazione per dimostrare questo risultato.
- ^ Wegener (1988) .
- ^ Per esempio, questo consegue da Gröger (1992) .
- ^ Childs & Eisenberg (2005) ; Magniez, Santha & Szegedy (2007) .
- ^ Downey & Fellows (1999) .
- ^ Feige et al. (1991) ; Arora & Safra (1998) ; Arora1998b , Arora et al. (1998) .
- ^ Håstad (1999) dimostrò l'inapprossimabilità per questo rapporto usando un'assunzione teorica di complessità più forte, la disuguaglianza di NP e ZPP ; Khot (2001) descrisse più precisamente il rapporto di inapprossimazione, e Zuckerman (2006) derandomizzò la costruzione indebolendo la sua assunzione a P ≠ NP.
- ^ Questa riduzione è dovuta originariamente a Feige et al. (1991) e usata in tutte le successive dimostrazioni di inapprossimabilità; le dimostrazioni differiscono nelle forze e nei dettagli dei sistemi di dimostrazioni verificabili probabilisticamente su cui si basano.
Bibliografia
- J. Abello, PM Pardalos e MGC Resende, On maximum clique problems in very large graphs , in J. Abello e J. Vitter (a cura di), External Memory Algorithms , DIMACS Serie on Discrete Mathematics and Theoretical Computer Science, vol. 50, American Mathematical Society , 1999, 119–130, ISBN 0-8218-1184-3 . URL consultato il 26 marzo 2014 (archiviato dall' url originale il 29 febbraio 2012) .
- N. Alon e R. Boppana, The monotone circuit complexity of boolean functions , in Combinatorica , vol. 7, n. 1, 1987, 1–22, DOI : 10.1007/BF02579196 .
- N. Alon , M. Krivelevich e B. Sudakov, <457::AID-RSA14>3.0.CO;2-W Finding a large hidden clique in a random graph , in Random Structures & Algorithms , vol. 13, 3–4, 1998, 457–466, DOI : 10.1002/(SICI)1098-2418(199810/12)13:3/4<457::AID-RSA14>3.0.CO;2-W .
- N. Alon , R. Yuster e U. Zwick, Finding and counting given length cycles , in Proceedings of the 2nd European Symposium on Algorithms , Utrecht, The Netherlands , 1994, 354–364.
- K. Amano e A. Maruoka, A superpolynomial lower bound for a circuit computing the clique function with at most (1/6)log log n negation gates , in Proc. Symp. Mathematical Foundations of Computer Science [ collegamento interrotto ] , Lecture Notes in Computer Science, vol. 1450, Springer-Verlag , 1998, 399–408.
- Sanjeev Arora , Carsten Lund , Rajeev Motwani , Madhu Sudan e Mario Szegedy , Proof verification and the hardness of approximation problems , in Rivista of the ACM , vol. 45, n. 3, 1998, 501–555, DOI : 10.1109/SFCS.1992.267823 , ECCC TR98-008 . . Presentato originariamente al Symposium on Foundations of Computer Science del 1992
- S. Arora e S. Safra , Probabilistic checking of proofs: A new characterization of NP , in Rivista of the ACM , vol. 45, n. 1, 1998, 70–122, DOI : 10.1109/SFCS.1992.267824 , presentato originariamente al Symposium on Foundations of Computer Science del 1992,.
- E. Balas e CS Yu, Finding a maximum clique in an arbitrary graph , in SIAM Rivista on Computing , vol. 15, n. 4, 1986, 1054–1068, DOI : 10.1137/0215075 .
- R. Battiti e M. Protasi, Reactive local search for the maximum clique problem , in Algorithmica , vol. 29, n. 4, 2001, 610–637, DOI : 10.1007/s004530010074 .
- Béla Bollobás , Complete subgraphs are elusive , in Rivista of Combinatorial Theory, Serie B , vol. 21, n. 1, 1976, 1–7, DOI : 10.1016/0095-8956(76)90021-6 , ISSN 0095-8956 .
- IM Bomze, M. Budinich, PM Pardalos e M. Pelillo, The maximum clique problem , in Handbook of Combinatorial Optimization , vol. 4, Kluwer Academic Editores, 1999, 1–74, CiteSeerX : 10.1.1.48.4074 .
- R. Boppana e MM Halldórsson, Approximating maximum independent sets by excluding subgraphs , in BIT , vol. 32, n. 2, 1992, 180–196, DOI : 10.1007/BF01994876 .
- C. Bron e J. Kerbosch, Algorithm 457: finding all cliques of an undirected graph , in Communications of the ACM , vol. 16, n. 9, 1973, 575–577, DOI : 10.1145/362342.362367 .
- R. Carraghan e PM Pardalos, An exact algorithm for the maximum clique problem ( PDF ), in Operations Research Letters , vol. 9, n. 6, 1990, 375–382, DOI : 10.1016/0167-6377(90)90057-C (archiviato dall' url originale il 17 luglio 2011) .
- F. Cazals e C. Karande, A note on the problem of reporting maximal cliques ( PDF ) [ collegamento interrotto ] , in Theoretical Computer Science , vol. 407, n. 1, 2008, 564–568, DOI : 10.1016/j.tcs.2008.05.010 .
- Jianer Chen, Xiuzhen Huang, Iyad A. Kanj e Ge Xia, Strong computational lower bounds via parameterized complexity , in J. Comput. Syst. Sci. , vol. 72, n. 8, 2006, 1346–1367, DOI : 10.1016/j.jcss.2006.04.007 .
- N. Chiba e T. Nishizeki, Arboricity and subgraph listing algorithms , in SIAM Rivista on Computing , vol. 14, n. 1, 1985, 210–223, DOI : 10.1137/0214017 .
- AM Childs, E. Farhi, J. Goldstone e S. Gutmann, Finding cliques by quantum adiabatic evolution , in Quantum Information and Computation , vol. 2, n. 3, 2002, 181–191, arXiv : quant-ph/0012104 .
- AM Childs e JM Eisenberg, Quantum algorithms for subset finding , in Quantum Information and computation , vol. 5, n. 7, 2005, 593–604, arXiv : quant-ph/0311038 .
- Brent N. Clark, Charles J. Colbourn e David S. Johnson , Unit disk graphs , in Discrete Mathematics , vol. 86, 1–3, 1990, 165–177, DOI : 10.1016/0012-365X(90)90358-O .
- SA Cook , The complexity of theorem-proving procedures , in Symposium on Theory of Computing , 1971, 151–158, DOI : 10.1145/800157.805047 .
- RG Downey e MR Fellows , Fixed-parameter tractability and completeness. II. On completeness for W[1] , in Theoretical Computer Science , vol. 141, 1–2, 1995, 109–131, DOI : 10.1016/0304-3975(94)00097-3 .
- RG Downey e MR Fellows , Parameterized complexity , Springer-Verlag , 1999, ISBN 0-387-94883-X .
- F. Eisenbrand e F. Grandoni, On the complexity of fixed parameter clique and dominating set , in Theoretical Computer Science , vol. 326, 1–3, 2004, 57–67, DOI : 10.1016/j.tcs.2004.05.009 .
- David Eppstein , Maarten Löffler e Darren Strash, Listing All Maximal Cliques in Sparse Graphs in Near-Optimal Time , in Otfried Cheong, Kyung-Yong Chwa e Kunsoo Park (a cura di), 21st International Symposium on Algorithms and Computation (ISAAC 2010), Jeju, Korea , Lecture Notes in Computer Science, vol. 6506, Springer-Verlag, 2010, 403–414, DOI : 10.1007/978-3-642-17517-6_36 , ISBN 978-3-642-17516-9 , arXiv : 1006.5440 .
- David Eppstein e Darren Strash, Listing all maximal cliques in large sparse real-world graphs , in 10th International Symposium on Experimental Algorithms , 2011, arXiv : 1103.0318 .
- Paul Erdős e George Szekeres , A combinatorial problem in geometry ( PDF ), in Compositio Mathematica , vol. 2, 1935, 463–470.
- S. Even , A. Pnueli e A. Lempel , Permutation graphs and transitive graphs , in Rivista of the ACM , vol. 19, n. 3, 1972, 400–410, DOI : 10.1145/321707.321710 .
- T. Fahle, Simple and Fast: Improving a Branch-And-Bound Algorithm for Maximum Clique , in Proc. 10th European Symposium on Algorithms , Lecture Notes in Computer Science, vol. 2461, Springer-Verlag, 2002, 47–86, DOI : 10.1007/3-540-45749-6_44 , ISBN 978-3-540-44180-9 .
- U. Feige , Approximating maximum clique by removing subgraphs , in SIAM Rivista on Discrete Mathematics , vol. 18, n. 2, 2004, 219–225, DOI : 10.1137/S089548010240415X .
- U. Feige , S. Goldwasser , L. Lovász , S Safra e M. Szegedy , Approximating clique is almost NP-complete , in Proc. 32nd IEEE Symp. on Foundations of Computer Science , 1991, 2–12, DOI : 10.1109/SFCS.1991.185341 , ISBN 0-8186-2445-0 .
- U. Feige e R. Krauthgamer, <195::AID-RSA5>3.0.CO;2-A Finding and certifying a large hidden clique in a semirandom graph , in Random Structures and Algorithms , vol. 16, n. 2, 2000, 195–208, DOI : 10.1002/(SICI)1098-2418(200003)16:2<195::AID-RSA5>3.0.CO;2-A .
- MR Garey e DS Johnson , "Strong" NP-completeness results: motivation, examples and implications , in Rivista of the ACM , vol. 25, n. 3, 1978, 499–508, DOI : 10.1145/322077.322090 .
- F. Gavril, Algorithms for a maximum clique and a maximum independent set of a circle graph , in Networks , vol. 3, n. 3, 1973, 261–273, DOI : 10.1002/net.3230030305 .
- M. Goldmann e J. Håstad , A simple lower bound for monotone clique using a communication game , in Information Processing Letters , vol. 41, n. 4, 1992, 221–226, DOI : 10.1016/0020-0190(92)90184-W .
- MC Golumbic , Algorithmic Graph Theory and Perfect Graphs , Computer Science and Applied Mathematics, Academic Press , 1980, ISBN 0-444-51530-5 .
- Hans Dietmar Gröger, On the randomized complexity of monotone graph properties ( PDF ), in Acta Cybernetica , vol. 10, n. 3, 1992, 119–127. URL consultato il 10 febbraio 2009 (archiviato dall' url originale il 24 settembre 2015) .
- A. Grosso, M. Locatelli e F. Della Croce,Combining swaps and node weights in an adaptive greedy approach for the maximum clique problem , in Rivista of Heuristics , vol. 10, n. 2, 2004, 135–152, DOI : 10.1023/B:HEUR.0000026264.51747.7f .
- M. Grötschel, L. Lovász e A. Schrijver , 9.4 Coloring Perfect Graphs , in Geometric Algorithms and Combinatorial Optimization , Algorithms and Combinatorics, vol. 2, Springer–Verlag , 1988, 296–298, ISBN 0-387-13624-X .
- G. Gutin, 5.3 Independent sets and cliques , in JL Gross e J. Yellen (a cura di), Handbook of graph theory , Discrete Mathematics & Its Applications, CRC Press, 2004, 389–402, ISBN 978-1-58488-090-5 .
- MM Halldórsson, Approximations of Weighted Independent Set and Hereditary Subset Problems ( PDF ), in Rivista of Graph Algorithms and Applications , vol. 4, n. 1, 2000, 1–16.
- F. Harary e IC Ross, A procedure for clique detection using the group matrix , in Sociometry , vol. 20, n. 3, American Sociological Association, 1957, 205–215, DOI : 10.2307/2785673 , JSTOR 2785673 , MR 0110590 .
- J. Håstad , Clique is hard to approximate within n 1 − ε , in Acta Mathematica , vol. 182, n. 1, 1999, 105–142, DOI : 10.1007/BF02392825 .
- R. Impagliazzo , R. Paturi e F. Zane, Which problems have strongly exponential complexity? , in Rivista of Computer and System Sciences , vol. 63, n. 4, 2001, 512–530, DOI : 10.1006/jcss.2001.1774 .
- A. Itai e M. Rodeh, Finding a minimum circuit in a graph , in SIAM Rivista on Computing , vol. 7, n. 4, 1978, 413–423, DOI : 10.1137/0207033 .
- M. Jerrum, Large cliques elude the Metropolis process , in Random Structures and Algorithms , vol. 3, n. 4, 1992, 347–359, DOI : 10.1002/rsa.3240030402 .
- T Jian, An O(2 0.304 n ) Algorithm for Solving Maximum Independent Set Problem , in IEEE Transactions on Computers , vol. 35, n. 9, IEEE Computer Society, 1986, 847–851, DOI : 10.1109/TC.1986.1676847 , ISSN 0018-9340 .
- DS Johnson e MA Trick (a cura di), Cliques, Coloring, and Satisfiability: Second DIMACS Implementation Challenge, October 11–13, 1993 , DIMACS Serie in Discrete Mathematics and Theoretical Computer Science, vol. 26, American Mathematical Society , 1996, ISBN 0-8218-6609-5 .
- DS Johnson e M. Yannakakis , On generating all maximal independent sets , in Information Processing Letters , vol. 27, n. 3, 1988, 119–123, DOI : 10.1016/0020-0190(88)90065-8 .
- Richard M. Karp , Reducibility among combinatorial problems ( PDF ), in RE Miller e JW Thatcher (a cura di), Complexity of Computer Computations , New York, Plenum , 1972, 85–103.
- Richard M. Karp , Probabilistic analysis of some combinatorial search problems , in JF Traub (a cura di), Algorithms and Complexity: New Directions and Recent Results , New York, Academic Press , 1976, 1–19.
- K. Katayama, A. Hamamoto e H. Narihisa, An effective local search for the maximum clique problem , in Information Processing Letters , vol. 95, n. 5, 2005, 503–511, DOI : 10.1016/j.ipl.2005.05.010 .
- S. Khot, Improved inapproximability results for MaxClique, chromatic number and approximate graph coloring , in Proc. 42nd IEEE Symp. Foundations of Computer Science , 2001, 600–609, DOI : 10.1109/SFCS.2001.959936 , ISBN 0-7695-1116-3 .
- T. Kloks, D. Kratsch e H. Müller, Finding and counting small induced subgraphs efficiently , in Information Processing Letters , vol. 74, 3–4, 2000, 115–121, DOI : 10.1016/S0020-0190(00)00047-8 .
- J. Konc e D. Janežič, An improved branch and bound algorithm for the maximum clique problem ( PDF ), in MATCH Communications in Mathematical and in Computer Chemistry , vol. 58, n. 3, 2007, 569–590. URL consultato il 26 marzo 2014 (archiviato dall' url originale il 27 marzo 2014) . Source code
- RJ Lipton e RE Tarjan , Applications of a planar separator theorem , in SIAM Rivista on Computing , vol. 9, n. 3, 1980, 615–627, DOI : 10.1137/0209046 .
- R. Duncan Luce e Albert D. Perry, A method of matrix analysis of group structure , in Psychometrika , vol. 14, n. 2, 1949, 95–116, DOI : 10.1007/BF02289146 , PMID 18152948 .
- Frédéric Magniez, Miklos Santha e Mario Szegedy , Quantum algorithms for the triangle problem , in SIAM Rivista on Computing , vol. 37, n. 2, 2007, 413–424, DOI : 10.1137/050643684 , arXiv : quant-ph/0310134 .
- K. Makino e T. Uno, New algorithms for enumerating all maximal cliques , in Algorithm Theory: SWAT 2004 [ collegamento interrotto ] , Lecture Notes in Computer Science, vol. 3111, Springer-Verlag , 2004, 260–272.
- JW Moon e L. Moser , On cliques in graphs , in Israel Rivista of Mathematics , vol. 3, 1965, 23–28, DOI : 10.1007/BF02760024 , MR 0182577 .
- J. Nešetřil e S. Poljak, On the complexity of the subgraph problem , in Commentationes Mathematicae Universitatis Carolinae , vol. 26, n. 2, 1985, 415–419.
- PRJ Östergård, A fast algorithm for the maximum clique problem , in Discrete Applied Mathematics , vol. 120, 1–3, 2002, 197–207, DOI : 10.1016/S0166-218X(01)00290-6 .
- Q. Ouyang, PD Kaplan, S. Liu e A. Libchaber, DNA solution of the maximal clique problem , in Science , vol. 278, n. 5337, 1997, 446–449, DOI : 10.1126/science.278.5337.446 , PMID 9334300 .
- PM Pardalos e GP Rogers, A branch and bound algorithm for the maximum clique problem , in Computers & Operations Research , vol. 19, n. 5, 1992, 363–375, DOI : 10.1016/0305-0548(92)90067-F .
- ( RU ) AA Razborov , Lower bounds for the monotone complexity of some Boolean functions , in Proceedings of the USSR Academy of Sciences , vol. 281, 1985, 798–801.
- J.-C. Régin, Using constraint programming to solve the maximum clique problem , in Proc. 9th Int. Conf. Principles and Practice of Constraint Programming – CP 2003 [ collegamento interrotto ] , Lecture Notes in Computer Science, vol. 2833, Springer-Verlag , 2003, 634–648.
- JM Robson, Algorithms for maximum independent sets , in Rivista of Algorithms , vol. 7, n. 3, 1986, 425–440, DOI : 10.1016/0196-6774(86)90032-5 .
- JM Robson, Finding a maximum independent set in time O(2 n /4 ) , 2001.
- B Rosgen e L Stewart, Complexity results on graphs with few cliques , in Discrete Mathematics and Theoretical Computer Science , vol. 9, n. 1, 2007, 127–136 (archiviato dall' url originale il 23 settembre 2015) .
- M. Sipser , Introduction to the Theory of Computation , International Thompson Publishing , 1996, ISBN 0-534-94728-X .
- RE Tarjan e AE Trojanowski, Finding a maximum independent set ( PDF ) [ collegamento interrotto ] , in SIAM Rivista on Computing , vol. 6, n. 3, 1977, 537–546, DOI : 10.1137/0206038 .
- E. Tomita e T. Kameda, An efficient branch-and-bound algorithm for finding a maximum clique with computational experiments , in Rivista of Global Optimization , vol. 37, n. 1, 2007, 95–111, DOI : 10.1007/s10898-006-9039-7 .
- E. Tomita e T. Seki, An Efficient Branch-and-Bound Algorithm for Finding a Maximum Clique , in Discrete Mathematics and Theoretical Computer Science , Lecture Notes in Computer Science, vol. 2731, Springer-Verlag, 2003, 278–289, DOI : 10.1007/3-540-45066-1_22 , ISBN 978-3-540-40505-4 .
- E. Tomita, A. Tanaka e H. Takahashi, The worst-case time complexity for generating all maximal cliques and computational experiments , in Theoretical Computer Science , vol. 363, n. 1, 2006, 28–42, DOI : 10.1016/j.tcs.2006.06.015 .
- S. Tsukiyama, M. Ide, I. Ariyoshi e I. Shirakawa, A new algorithm for generating all the maximal independent sets , in SIAM Rivista on Computing , vol. 6, n. 3, 1977, 505–517, DOI : 10.1137/0206036 .
- LG Valiant, Exponential lower bounds for restricted monotone circuits , in Proc. 15th ACM Symposium on Theory of Computing , 1983, 110–117, DOI : 10.1145/800061.808739 , ISBN 0-89791-099-0 .
- V. Vassilevska e R. Williams , Finding, minimizing, and counting weighted subgraphs , in Proc. 41st ACM Symposium on Theory of Computing , 2009, 455–464, DOI : 10.1145/1536414.1536477 , ISBN 978-1-60558-506-2 .
- I. Wegener, On the complexity of branching programs and decision trees for clique functions , in Rivista of the ACM , vol. 35, n. 2, 1988, 461–472, DOI : 10.1145/42282.46161 .
- R. Yuster, Finding and counting cliques and independent sets in r -uniform hypergraphs , in Information Processing Letters , vol. 99, n. 4, 2006, 130–134, DOI : 10.1016/j.ipl.2006.04.005 .
- D. Zuckerman, Linear degree extractors and the inapproximability of max clique and chromatic number , in Proc. 38th ACM Symp. Theory of Computing , 2006, 681–690, DOI : 10.1145/1132516.1132612 , ISBN 1-59593-134-1 , ECCC TR05-100 .