Problema della cricca: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Aggiunto link alla citazione |
|||
(46 versioni intermedie di 22 utenti non mostrate) | |||
Riga 1:
[[File:Brute force Clique algorithm.svg|thumb
In [[informatica]], il '''problema della cricca''' si riferisce a uno qualsiasi dei problemi legati alla ricerca di particolari [[Glossario di teoria dei grafi#Sottografo|sottografi]] [[Grafo completo|completi]] ("[[Cricca (teoria dei grafi)|cricche]]") in un [[grafo]], cioè, insiemi di elementi dove ciascuna coppia di elementi è connessa.
Riga 6:
I problemi della cricca includono:
* trovare la [[cricca massima]] (una cricca con il più grande numero di vertici),
* trovare una cricca con il peso massimo in un [[grafo
* elencare tutte le [[Cricca massimale|cricche massimali]] (cricche che non possono essere ampliate),
* risolvere il [[problema decisionale]] di verificare se un grafo contiene una cricca più grande di una data dimensione.
Questi problemi sono tutti difficili: il problema decisionale della cricca è [[NP-completo]] (uno dei [[21 problemi NP-completi di Karp]]), il problema di trovare la cricca massima è sia [[Complessità parametrizzata|intrattabile a parametro fisso]], sia [[Difficoltà di approssimazione|difficile da approssimare]], ed elencare tutte le cricche massimali può richiedere un [[tempo esponenziale]] in quanto esistono grafi con un numero esponenziale di cricche massimali. Nondimeno, ci sono algoritmi per questi problemi che si eseguono in tempo esponenziale o che gestiscono certi grafi di entrata più specializzati in tempo polinomiale.<ref name="bbpp">Per una rassegna
== Storia ==
Sebbene i sottografi completi siano studiati da più tempo in matematica,<ref>I sottografi completi fanno una prima apparizione nella letteratura matematica nella riformulazione della teoria dei grafi della [[teoria di Ramsey]] da parte di {{cita
A partire dal lavoro di Harary e Ross, molti altri hanno escogitato algoritmi per varie versioni del problema della cricca.<ref name="bbpp"/> Negli anni 1970, i ricercatori cominciarono a studiare questi algoritmi dal punto di vista dell'[[analisi del caso peggiore]]; vedi, per esempio, {{cita
== Definizioni ==
{{vedi anche|Cricca (teoria dei grafi)}}
[[File:6n-graf-clique.svg|thumb|Il grafo mostrato ha una sola cricca massima, il triangolo {1,2,5}, e altre quattro cricche massimali, le coppie {2,3}, {3,4}, {4,5} e {4,6}.]]
Un [[grafo indiretto]] è formato da un [[insieme finito]] di [[Vertice (teoria dei grafi)|vertici]] e da un insieme di [[Coppia non ordinata|coppie non ordinate]] di vertici, che sono chiamati [[Spigolo (teoria dei grafi)|spigoli]]. Per convenzione, nell'analisi degli algoritmi, il numero di vertici nel grafo è denotato da ''n'' e il numero di spigoli è denotato da ''m''. Una [[Cricca (teoria dei grafi)|cricca]] in un grafo ''G'' è un [[Glossario di teoria dei grafi#Sottografo|sottografo]] [[Grafo completo|completo]] di ''G''; cioè, è un sottoinsieme ''S'' di vertici tale che ogni due vertici in ''S'' sono connessi da uno spigolo in ''G''. Una [[cricca massimale]] è una cricca alla quale non possono essere aggiunti altri vertici; una [[cricca massima]] è una cricca che include il numero di vertici più grande possibile, e il numero di cricca
Sono stati studiati parecchi problemi strettamente collegati alla ricerca delle cricche.
* Nel problema della cricca massima, l'entrata è un grafo indiretto, e l'uscita è una cricca massima del grafo. Se ci sono cricche massime mutiple, solo una deve essere l'uscita.
* Nel problema della cricca massima ponderata, l'entrata è un grafo indiretto con i pesi sui suoi vertici (o, meno frequentemente, spigoli) e l'uscita è una cricca con il massimo peso totale. Il problema della cricca massima è il caso speciale in cui i pesi sono tutti uguali.
* Nel problema dell'elencazione delle cricche massimali, l'entrata è un grafo indiretto, e l'uscita è un elenco di tutte le sue cricche massimali. Il problema della cricca massima può essere risolto usando come subroutine un algoritmo per il problema dell'elencazione delle cricche massimali, perché la cricca massima deve essere inclusa fra tutte le cricche massimali.
* Nel problema della ''k''-cricca, l'entrata è un grafo indiretto e un numero ''k'', e l'uscita è una cricca di dimensione ''k'' se ne esiste una (o, talvolta, tutte le cricche di dimensione ''k'').
* Nel problema di decisione della cricca, l'entrata è un grafo indiretto e un numero ''k'', e l'uscita è un [[Valore di verità|valore booleano]]: vero se il grafo contiene una ''k''-cricca, e falso altrimenti.
I primi quattro di questi problemi sono tutti importanti in applicazioni pratiche; il problema di decisione della cricca non lo è, ma è necessario per applicare la teoria della [[NP-completo|NP-completezza]] ai problemi di ricerca delle cricche.
Il problema della cricca e il [[problema dell'insieme indipendente]] sono complementari: una cricca in ''G'' è un insieme nel [[grafo complemento]] di ''G'' e viceversa. Perciò, molti risultati computazionali possono essere applicati ugualmente bene a entrambi i problemi, e alcuni saggi di ricerca non distinguono chiaramente tra i due problemi. Tuttavia, i due problemi hanno proprietà diverse quando sono applicati a famiglie ristrette di grafi; per esempio, il problema della cricca può essere risolto in tempo polinomiale per i [[Grafo planare|grafi planari]],<ref name="CN85">{{cita
== Algoritmi ==
=== Massimale contro massima ===
Una cricca [[Elemento massimale|massimale]], talvolta chiamata massimale con inclusione, è una cricca che non è inclusa in una cricca più grande. Si noti, perciò, che ogni cricca è contenuta in una cricca massima.
Riga 40:
Trovare una cricca massimale è immediato: partendo da una cricca arbitraria (per esempio, un singolo vertice), si fa crescere la cricca attuale un vertice alla volta iterando sui vertici rimanenti del grafo, aggiungendo un vertice se è connesso a ciascun vertice della cricca attuale e scartandolo altrimenti. Questo algoritmo funziona in [[tempo lineare]]. A causa della facilità di trovare le cricche massimali e della loro dimensione potenziale, maggiore attenzione è stata dedicata al problema algoritmico, molto più difficile, di trovare una cricca massima o altrimenti grande di quanta ne sia stata data al problema di trovare una singola cricca massima.
=== Cricche di dimensione fissa ===
Un [[Metodo forza bruta|algoritmo di forza bruta]] per testare se un grafo ''G'' contiene una cricca con ''k'' vertici, e per trovare qualsiasi cricca di questo tipo che esso contiene,
Il più semplice caso non banale del problema di trovare una cricca è trovare un triangolo in un grafo, o
Se si desidera solo un singolo triangolo, o l'assicurazione che il grafo sia senza triangoli, sono possibili algoritmi più veloci. Come osservano {{cita
=== Elencare tutte le cricche massimali ===
Secondo un risultato di {{cita
Come mostrarono {{cita
* Per ogni cricca massimale ''C''
* Ciascuna cricca massimale in ''G'' che non contenga ''v'' è una cricca massimale in ''G'' \ ''v'', e ciascuna cricca massimale in ''G'' che non contiene ''v'' può essere formata da una cricca massimale ''C'' in ''G'' \ ''v'' aggiungendo ''v'' e rimuovendo i non vicini di ''v'' da ''C''.
Usando queste osservazioni esse possono generare tutte le cricche
Sulla base di questo risultato, è possibile elencare tutte le cricche massimali in tempo polinomiale, per famiglie di grafi in cui il numero di cricche è limitato polinomialmente. Queste famiglie includono i [[Grafo cordale|grafi cordali]], i [[Grafo completo|grafi completi]], i [[Grafo senza triangoli|grafi senza triangoli]], i [[Grafo d'intervallo|grafi d'intervallo]], i grafi di [[bossicità]] limitata e i [[Grafo planare|grafi planari]].<ref>{{cita
=== Trovare le cricche massime in grafi arbitrari ===
È possibile trovare la cricca massima, o il numero di cricca, di un grafo arbitrario a ''n'' vertici nel tempo O(3<sup>''n''/3</sup>) = O(1,4422<sup>''n''</sup>) usando uno degli algoritmi descritti sopra per elencare tutte le cricche massimali del grafo e restituire quella più grande. Tuttavia, per questa variante del problema della cricca sono possibili limiti temporali migliori per il caso peggiore. L'algoritmo of {{cita
Ci sono state estese ricerche anche su [[Algoritmo euristico|algoritmi euristici]] per risolvere i problemi delle cricche massime senza garanzie sui tempi di esecuzione del caso peggiore, basati su metodi che includono il ''[[branch and bound]]'',<ref>{{cita
=== Classi speciali di grafi ===
[[File:Permutation graph.svg|thumb|In questo [[grafo di permutazione]], le cricche massime corrispondono alle [[Sottosequenza crescente più lunga|sottosequenze decrescenti più lunghe]] (4,3,1) e (4,3,2) della permutazione definita.]]
I [[Grafo planare|grafi planari]], e altre famiglie di grafi sparsi, sono stati discussi sopra: essi hanno un numero lineare di cricche massimali, di dimensione limitata, che possono essere elencati in tempo lineare.<ref name="CN85"/> In particolare, per i grafi planari, qualsiasi cricca può avere al massimo quattro vertici, in base al [[teorema di Kuratowski]].
I [[Grafo perfetto|grafi perfetti]] sono definiti dalle proprietà che il loro numero di cricca uguaglia il loro numero cromatico e che questa uguaglianza vale anche in ciascuno dei loro [[Sottografo indotto|sottografi indotti]]. Per i grafi perfetti, è possibile trovare una cricca massima in tempo polinomiale, usando un algoritmo basato sulla [[programmazione semidefinita]].<ref>{{cita
Tuttavia, questo metodo è complesso e non combinatorio, e algoritmi specializzati per la ricerca di cricche sono stati sviluppati per molte sottoclassi di grafi perfetti.<ref>{{cita
In alcuni casi, questi algoritmi possono essere estesi pure ad altre classi di grafi, non perfette: per esempio, in un [[grafo a cerchio]], la [[Vicinanza (teoria dei grafi)|vicinanza]] di ciascun vertice è un grafo di permutazione, così una cricca massima si può trovare applicando l'algoritmo del grafo di permutazione a ciascuna vicinanza.<ref>{{cita
Il problema algoritmico di trovare una cricca
=== Algoritmi di approssimazione ===
Parecchi autori hanno considerato [[Algoritmo di approssimazione|algoritmi di approssimazione]] che tentano di trovare una cricca o un insieme indipendente che, sebbene non massimi, abbiano dimensione tanto vicina al massimo da poter essere trovati in tempo polinomiale. Sebbene gran parte di questo lavoro si sia focalizzata su insiemi indipendenti in grafi sparsi, un caso che non ha senso per il problema complementare della cricca, si è lavorato anche su algoritmi di approssimazione che non usano tali assunzioni di sparsità.<ref>{{cita
{{cita
== Limiti inferiori ==
=== NP-completezza ===
[[File:Sat reduced to Clique from Sipser.svg|thumb|L'istanza di soddisfacibilità 3-CNF (x ∨ x ∨ y) ∧ (~x ∨ ~y ∨ ~y) ∧ (~x ∨ y ∨ y) ridotta a cricca. I vertici verdi formano una 3-cricca e corrispondono a un'assegnazione soddisfacente.<ref>Adattato da {{cita|Sipser1996
Il problema decisionale della cricca è [[NP-completo]]. Era uno dei [[21 problemi NP-completi di Karp|21 problemi originali di Richard Karp]] dimostrati come NP-completi nel suo saggio del 1972 ''Reducibility Among Combinatorial Problems''. Questo problema fu menzionato anche nel saggio di [[Stephen Cook]] che introduceva la teoria dei problemi NP-completi. Pertanto, il problema di trovare una cricca massima è NP-difficile: se si potesse risolverlo, si potrebbe anche risolvere il problema decisionale, confrontando la dimensione della cricca massima con il parametro della dimensione dato come entrata nel problema decisionale.
La dimostrazione della NP-completezza di Karp è una [[riduzione molti a uno]] del [[problema di soddisfacibilità booleana]] per le formule in [[forma normale congiuntiva]], che fu dimostrato essere NP-completo nel [[teorema di Cook-Levin]].<ref>{{cita
Alcuni problemi NP completi (come il [[problema del commesso viaggiatore]] nei [[Grafo planare|grafi planari]]) possono essere risolti in un tempo che è esponenziale in una funzione sublineare del parametro ''n'' della dimensione dell'entrata.<ref>{{cita
Tuttavia, come descrivono {{cita
=== Complessità dei circuiti ===
[[File:Monotone circuit for 3-clique.svg|thumb|Un circuito monotono per
La difficoltà computazionale del problema della cricca ha fatto sì che fosse usato per dimostrare vari limiti inferiori nella [[complessità dei circuiti]]. Poiché l'esistenza di una cricca di una data dimensione è una [[Proprietà ereditaria|proprietà monotona dei grafi]] (se esiste una cricca in un dato grafo, esisterà in qualsiasi supergrafo), deve esistere un circuito monotono, che usa solo [[Porta AND|porte AND]] e [[Porta OR|porte OR]], per risolvere il problema decisionale della cricca per una data dimensione fissa della cricca stessa. Tuttavia, si può dimostrare che la dimensione di questi circuiti è una funzione superpolinomiale del numero dei vertici e della dimensione della cricca, esponenziale nella radice cubica del numero dei vertici.<ref>{{cita
=== Complessità degli alberi decisionali ===
[[File:Decision tree for 3-clique no arrowheads.svg|thumb|Un semplice albero decisionale per rilevare la presenza di una 3-cricca in un grafo a 4 vertici. Usa fino a 6 domande della forma "Esiste il cuneo rosso?", abbinandosi al limite ottimale ''n''(''n'' − 1)/2.]]
La complessità (deterministica) dell'[[Modello dell'albero decisionale|albero decisionale]] nel determinare la [[proprietà dei grafi]] è il numero di domande della forma "C'è uno spigolo tra il vertice ''u'' e il vertice ''v''?" a cui si deve rispondere nel caso peggiore per determinare se un grafo ha una particolare proprietà. Ossia, È l'altezza minima di un [[Modello dell'albero decisionale|albero decisionale]] booleano per il problema. Dal momento che ci sono al massimo ''n''(''n'' − 1)/2 domande possibili a cui rispondere, qualsiasi proprietà dei grafi può essere determinata con ''n''(''n'' − 1)/2 domande. È 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 {{cita
La congettura di Aanderaa-Karp-Rosenberg afferma anche che la complessità degli alberi decisionali randomizzati di funzioni monotone non banali è Θ(n<sup>2</sup>). 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<sup>2</sup>).<ref>Per esempio, questo consegue da {{cita
=== Intrattabilità a parametro fisso ===
La [[complessità parametrizzata]]<ref>{{cita
Per il problema della cricca, l'algoritmo di forza bruta ha un tempo di esecuzione O(''n''<sup>''k''</sup>''k''<sup>2</sup>), e sebbene possa essere
{{cita
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 [[
=== Difficoltà di approssimazione ===
[[File:Cube-face-intersection-graph.svg|thumb|Un grafo di relazioni di compatibilità tra campioni a 2 bit di stringhe di dimostrazione a 3 bit. Ciascuna cricca massimale (triangolo) di questo grafo rappresenta tutti i modi di campionare una singola stringa da 3 bit. La dimostrazione dell'inapprossimabilità del problema della cricca coinvolge [[Sottografo indotto|sottografi indotti]] di grafi analogamente definiti per numeri maggiori di bit.]]
La complessità computazionale di approssimare il problema della cricca è studiata da molto tempo; ad esempio, {{cita
L'idea generica di questi risultati di inapprossimabilità<ref>Questa riduzione è dovuta originariamente a {{cita
{{-}}
== Programmi liberi per la ricerca della massima cricca ==
{| class="wikitable"
|-
!Nome<br />
!Licenza
!Linguaggio API
!Breve info
|-
|[[NetworkX]] ||[[BSD]]|| Python || soluzione approssimata, vedi la routine {{Collegamento interrotto|1=[http://networkx.lanl.gov/preview/reference/generated/networkx.algorithms.approximation.clique.max_clique.html max_clique] |data=luglio 2019 |bot=InternetArchiveBot }}
|-
|maxClique ||CRAPL|| Java || [http://www.dcs.gla.ac.uk/~pat/maxClique/distribution/ algoritmi esatti e istanze DIMACS]
|-
|[[OpenOpt]] ||[[BSD]]|| Python || soluzioni esatte e approssimate, possibilità di specificare i nodi che devono essere<br
|}
== Note ==
== Bibliografia ==
{{Div col|2}}
* {{cita testo |cognome1=Abello |nome1=J. |cognome2=Pardalos |nome2=P. M. |cognome3=Resende |nome3=M. G. C. |contributo=On maximum clique problems in very large graphs |titolo=External Memory Algorithms |curatore1-nome=J. |curatore1-cognome=Abello |curatore2-nome=J. |curatore2-cognome=Vitter |wkcuratore2
* {{cita testo |nome1=N. |cognome1=Alon |wkautore1=Noga Alon |nome2=R. |cognome2=Boppana |titolo=The monotone circuit complexity of boolean functions |rivista=[[Combinatorica]] |volume=7 |numero=1 |anno=1987 |pagine=1–22 |doi=10.1007/BF02579196 |cid=Alon1987}}
* {{cita testo |nome1=N. |cognome1=Alon |wkautore1=Noga Alon |nome2=M. |cognome2=Krivelevich |nome3=B. |cognome3=Sudakov |titolo=Finding a large hidden clique in a random graph |rivista=Random Structures & Algorithms |volume=13 |numero=3–4 |anno=1998 |pagine=457–466 |doi=10.1002/(SICI)1098-2418(199810/12)13:3/4<457::AID-RSA14>3.0.CO;2-W |cid=Alon1998}}
* {{cita testo | cognome1 = Alon | nome1 = N. | wkautore1 = Noga Alon | cognome2 = Yuster | nome2 = R. | cognome3 = Zwick | nome3 = U. | contributo = Finding and counting given length cycles | pagine = 354–364 | titolo = Proceedings of the 2nd [[European Symposium on Algorithms]], Utrecht, The Netherlands | anno = 1994 |cid=Alon1994}}
* {{cita testo |nome1=K. |cognome1=Amano |nome2=A. |cognome2=Maruoka |contributo=A superpolynomial lower bound for a circuit computing the clique function with at most (1/6)log log ''n'' negation gates |titolo=Proc. Symp. Mathematical Foundations of Computer Science |serie=Lecture Notes in Computer Science |anno=1998 |editore=[[Springer-Verlag]] |volume=1450 |pagine=399–408 |url=http://www.springerlink.com/content/m64ju7clmqhqmv9g/ |cid=Amano1998 |urlmorto=sì }}
* {{cita testo |titolo=Proof verification and the hardness of approximation problems |nome1=Sanjeev |cognome1=Arora |wkautore1=Sanjeev Arora |nome2=Carsten |cognome2=Lund |wkautore2=Carsten Lund |nome3=Rajeev |cognome3=Motwani |wkautore3=Rajeev Motwani |nome4=Madhu |cognome4=Sudan |
* {{cita testo |nome1=S. |cognome1=Arora |wkautore1=Sanjeev Arora |nome2=S. |cognome2=Safra |wkautore2=Shmuel Safra |titolo=Probabilistic checking of proofs: A new characterization of NP |rivista=[[Rivista of the ACM]] |volume=45 |numero=1 |anno=1998 |pagine=70–122 |doi=10.
* {{cita testo |cognome1=Balas |nome1=E. |cognome2=Yu |nome2=C. S. |titolo=Finding a maximum clique in an arbitrary graph |rivista=[[SIAM Rivista on Computing]] |volume=15 |numero=4 |anno=1986 |pagine=1054–1068 |doi=10.1137/0215075 |cid=Balas1986}}
* {{cita testo |cognome1=Battiti |nome1=R. |cognome2=Protasi |nome2=M. |titolo=Reactive local search for the maximum clique problem |rivista=[[Algorithmica]] |volume=29 |numero=4 |anno=2001 |pagine=610–637 |doi=10.1007/s004530010074 |cid=Battiti2001}}
* {{Cita testo | cognome1=Bollobás | nome1=Béla | wkautore1=Béla Bollobás | titolo=Complete subgraphs are elusive | anno=1976 | rivista=Rivista of Combinatorial Theory, Serie B | issn=0095-8956 | volume=21 | numero=1 | pagine=1–7 | doi=10.1016/0095-8956(76)90021-6 |cid= Bollobás1976}}
* {{cita testo |nome1=I. M. |cognome1=Bomze |nome2=M. |cognome2=Budinich |nome3=P. M. |cognome3=Pardalos |nome4=M. |cognome4=Pelillo |contributo=The maximum clique problem |titolo=Handbook of Combinatorial Optimization |volume=4 |pagine=1–74 |editore=Kluwer Academic Editores |anno=1999 |id={{citeseerx|10.1.1.48.4074}} |cid=Bomze1999}}
* {{cita testo |nome1=R. |cognome1=Boppana |nome2=M. M. |cognome2=Halldórsson |titolo=Approximating maximum independent sets by excluding subgraphs |rivista=BIT |volume=32 |anno=1992 |pagine=180–196 |doi=10.1007/BF01994876 |numero=2 |cid=Boppana1992}}
* {{cita testo | cognome1=Bron | nome1=C. | cognome2=Kerbosch | nome2=J. | titolo=Algorithm 457: finding all cliques of an undirected graph | anno=1973 | rivista=[[Communications of the ACM]] | doi=10.1145/362342.362367 | volume=16 | numero=9 | pagine=575–577 |cid=Bron1973}}
* {{cita testo |cognome1=Carraghan |nome1=R. |cognome2=Pardalos |nome2=P. M. |titolo=An exact algorithm for the maximum clique problem |rivista=Operations Research Letters |volume=9 |anno=1990 |pagine=375–382 |url=http://www.inf.ufpr.br/renato/download/An_Exact_Algorithm_for_the_Maximum_Clique_Problem.pdf |numero=6 |doi=10.1016/0167-6377(90)90057-C |cid=
* {{cita testo | cognome1=Cazals | nome1=F. | cognome2=Karande | nome2=C. | titolo=A note on the problem of reporting maximal cliques | url=ftp://ftp-sop.inria.fr/geometrica/fcazals/papers/ncliques.pdf | anno=2008 | rivista=[[Theoretical Computer Science (rivista)|Theoretical Computer Science]] | volume=407 | numero=1 | pagine=564–568 | doi=10.1016/j.tcs.2008.05.010 | cid=Cazals2008 | urlmorto=sì }}
* {{cita testo |nome1=Jianer |cognome1=Chen |nome2=Xiuzhen |cognome2=Huang |nome3=Iyad A. | cognome3=Kanj |nome4=Ge |cognome4=Xia | titolo=Strong computational lower bounds via parameterized complexity | rivista=J. Comput. Syst. Sci. | volume=72 | anno=2006 | pagine=1346–1367 | doi=10.1016/j.jcss.2006.04.007 |numero=8 |cid=Chen2006}}
* {{cita testo |nome1=N. |cognome1=Chiba |nome2=T. |cognome2=Nishizeki |titolo=Arboricity and subgraph listing algorithms |rivista=[[SIAM Rivista on Computing]] |volume=14 |numero=1 |pagine=210–223 |anno=1985 |doi=10.1137/0214017 |cid=Chiba1985}}
* {{cita testo |cognome1=Childs |nome1=A. M. |cognome2=Farhi |nome2=E. |cognome3=Goldstone |nome3=J. |wkautore3=Jeffrey Goldstone |cognome4=Gutmann |nome4=S. |titolo=Finding cliques by quantum adiabatic evolution |rivista=Quantum Information and Computation |volume=2 |numero=3 |pagine=181–191 |anno=2002 |arxiv=quant-ph/0012104 |cid=Childs2002}}
* {{cita testo |cognome1=Childs |nome1=A. M. |cognome2=Eisenberg |nome2=J. M. |titolo=Quantum algorithms for subset finding |rivista=Quantum Information and computation |volume=5 |numero=7 |pagine=593–604 |anno=2005 |arxiv=quant-ph/0311038 |cid=Childs2005}}
* {{cita testo | cognome1 = Clark | nome1 = Brent N. | cognome2 = Colbourn | nome2 = Charles J. | wkautore2= Charles Colbourn | wkautore3 = David S. Johnson | cognome3 = Johnson | nome3 = David S. | titolo = Unit disk graphs | rivista = [[Discrete Mathematics (rivista)|Discrete Mathematics]] | volume = 86 | numero = 1–3 | anno = 1990 | pagine = 165–177 | doi = 10.1016/0012-365X(90)90358-O |cid=Clark1990}}
* {{cita testo |nome=S. A. |cognome=Cook |wkautore=Stephen Cook |anno=1971 |titolo=Symposium on Theory of Computing|Proc. 3rd ACM Symposium on Theory of Computing |pagine=151–158 |url=http://4mhz.de/cook.html |doi=10.1145/800157.805047 |capitolo=The complexity of theorem-proving procedures |cid=Cook1971}}
* {{cita testo |nome1=R. G. |cognome1=Downey |wkautore2=Michael Fellows |nome2=M. R. |cognome2=Fellows |titolo=Fixed-parameter tractability and completeness. II. On completeness for W[1] |rivista=[[Theoretical Computer Science (rivista)|Theoretical Computer Science]] |volume=141 |numero=1–2 |anno=1995 |pagine=109–131 |doi=10.1016/0304-3975(94)00097-3 |cid=Downey1995}}
* {{cita testo |nome1=R. G. |cognome1=Downey |wkautore2=Michael Fellows |nome2=M. R. |cognome2=Fellows |titolo=Parameterized complexity | editore=[[Springer-Verlag]] | anno=1999 |isbn = 0-387-94883-X |cid=Downey1999}}
* {{cita testo |nome1=F. |cognome1=Eisenbrand |nome2=F. |cognome2=Grandoni |titolo=On the complexity of fixed parameter clique and dominating set |rivista=[[Theoretical Computer Science (rivista)|Theoretical Computer Science]] |volume=326 |numero=1–3 |pagine=57–67 |anno=2004 |doi=10.1016/j.tcs.2004.05.009 |cid=Eisenbrand2004}}
* {{cita testo |nome1=David |cognome1=Eppstein |wkautore1=David Eppstein |nome2=Maarten |cognome2=Löffler |nome3=Darren |cognome3=Strash |curatore1-cognome=Cheong |curatore1-nome=Otfried |curatore2-nome=Kyung-Yong |curatore2-cognome=Chwa |curatore3-nome=Kunsoo |curatore3-cognome=Park |titolo=21st International Symposium on Algorithms and Computation (ISAAC 2010), Jeju, Korea |serie=Lecture Notes in Computer Science |volume=6506 |pagine=403–414 |editore=Springer-Verlag |doi=10.1007/978-3-642-17517-6_36 |arxiv=1006.5440 |anno=2010 |
* {{cita testo |nome1=David |cognome1=Eppstein |wkautore1=David Eppstein |nome2=Darren |cognome2=Strash |contributo=Listing all maximal cliques in large sparse real-world graphs |titolo=10th International Symposium on Experimental Algorithms |anno=2011 |arxiv=1103.0318 |cid= Eppstein2011}}
* {{cita testo |nome1=Paul |cognome1=Erdős |wkautore1=Paul Erdős |nome2=George |cognome2=Szekeres |wkautore2=George Szekeres |titolo=A combinatorial problem in geometry |rivista=Compositio Mathematica |volume=2 |anno=1935 |pagine=463–470 |url=http://www.renyi.hu/~p_erdos/1935-01.pdf |cid=Erdős1935}}
* {{cita testo |nome1=S. |cognome1=Even |wkautore1=Shimon Even |nome2=A. |cognome2=Pnueli |wkautore2=Amir Pnueli |nome3=A. |cognome3=Lempel |wkautore3=Abraham Lempel |titolo=Permutation graphs and transitive graphs |rivista=[[Rivista of the ACM]] |volume=19 |numero=3 |pagine=400–410 |anno=1972 |doi=10.1145/321707.321710 |cid=Even1972}}
* {{cita testo |nome=T. |cognome=Fahle |titolo=[[European Symposium on Algorithms|Proc. 10th European Symposium on Algorithms]] |serie=Lecture Notes in Computer Science |editore=Springer-Verlag |volume=2461 |anno=2002 |pagine=47–86 |doi=10.1007/3-540-45749-6_44 |
* {{cita testo |nome=U. |cognome=Feige |wkautore=Uriel Feige |titolo=Approximating maximum clique by removing subgraphs |rivista=SIAM Rivista on Discrete Mathematics |volume=18 |numero=2 |pagine=219–225 |anno=2004 |doi=10.1137/S089548010240415X |cid=Feige2004}}
* {{cita testo |nome1=U. |cognome1=Feige |wkautore1=Uriel Feige |nome2=S. |cognome2=Goldwasser |wkautore2=Shafi Goldwasser |nome3=L. |cognome3=Lovász |wkautore3=László Lovász |nome4=S |cognome4=Safra |
* {{cita testo |nome1=U. |cognome1=Feige |wkautore1=Uriel Feige |nome2=R. |cognome2=Krauthgamer |titolo=Finding and certifying a large hidden clique in a semirandom graph |rivista=Random Structures and Algorithms |volume=16 |numero=2 |pagine=195–208 |anno=2000 |doi=10.1002/(SICI)1098-2418(200003)16:2<195::AID-RSA5>3.0.CO;2-A |cid=Feige2000}}
* {{cita testo |nome1=M. R. |cognome1=Garey |wkautore1=Michael R. Garey |nome2=D. S. |cognome2=Johnson |wkautore2=David S. Johnson |titolo="Strong" NP-completeness results: motivation, examples and implications |rivista=[[Rivista of the ACM]] |volume=25 |pagine=499–508 |anno=1978 |doi=10.1145/322077.322090 |numero=3 |cid=GArey1978}}
* {{cita testo | cognome = Gavril | nome = F. | doi = 10.1002/net.3230030305 | numero = 3 | rivista = Networks | pagine = 261–273 | titolo = Algorithms for a maximum clique and a maximum independent set of a circle graph | volume = 3 | anno = 1973 |cid=Gavril1973}}
* {{cita testo |nome1=M. |cognome1=Goldmann |nome2=J. |cognome2=Håstad |wkautore2=Johan Håstad |titolo=A simple lower bound for monotone clique using a communication game |rivista=Information Processing Letters |volume=41 |numero=4 |anno=1992 |pagine=221–226 |doi=10.1016/0020-0190(92)90184-W |cid=Goldmann1992}}
* {{cita testo |nome=M. C. |cognome=Golumbic |wkautore=Martin Charles Golumbic |titolo=Algorithmic Graph Theory and Perfect Graphs |serie=Computer Science and Applied Mathematics |editore=[[Academic Press]] |anno=1980 |isbn=0-444-51530-5 |cid=Golumbic1980}}
* {{Cita testo | volume = 10 | numero = 3 | pagine =
* {{cita testo |nome1=A. |cognome1=Grosso |nome2=M. |cognome2=Locatelli |nome3=F. |cognome3=Della Croce |titolo=Combining swaps and node weights in an adaptive greedy approach for the maximum clique problem |rivista=Rivista of Heuristics |volume=10 |numero=2 |anno=2004 |pagine=135–152 |doi=10.1023/B:HEUR.0000026264.51747.7f |cid=Grosso2004}}
* {{cita testo |nome1=M. |cognome1=Grötschel |nome2=L. |cognome2=Lovász |wkautore2=László Lovász |nome3=A. |cognome3=Schrijver|wkautore3=Alexander Schrijver |titolo=Geometric Algorithms and Combinatorial Optimization |serie=Algorithms and Combinatorics |volume=2 |editore=[[Springer–Verlag]] |anno=1988 |contributo=9.4 Coloring Perfect Graphs |pagine=296–298 |isbn=0-387-13624-X |cid= Grötschel1998}}
* {{cita testo |nome=G. |cognome=Gutin |contributo=5.3 Independent sets and cliques |titolo=Handbook of graph theory |curatore1-nome=J. L. |curatore1-cognome=Gross |curatore2-nome=J. |curatore2-cognome=Yellen |editore=CRC Press |anno=2004 |isbn=978-1-58488-090-5 |pagine=389–402 |serie=Discrete Mathematics & Its Applications |cid=Gutin2004}}
* {{cita testo |titolo=Approximations of Weighted Independent Set and Hereditary Subset Problems |nome=M. M. |cognome=Halldórsson |rivista=[[Rivista of Graph Algorithms and Applications]] |volume=4 |numero=1 |pagine=1–16 |anno=2000 |url=http://jgaa.info/accepted/00/Halldorsson00.4.1.pdf |cid= Halldórsson2000}}
* {{cita testo |cognome1=Harary |nome1=F. |wkautore1=Frank Harary |cognome2=Ross |nome2=I. C. |titolo=A procedure for clique detection using the group matrix |rivista=Sociometry |volume=20 |anno=1957 |pagine=205–215 |doi=10.2307/2785673 |numero=3 |editore=American Sociological Association |mr=0110590 |jstor=2785673 |cid=Harary1957}}
* {{cita testo |nome=J. |cognome=Håstad |wkautore=Johan Håstad |titolo=Clique is hard to approximate within n<sup>1 − ε</sup> |rivista=[[Acta Mathematica]] |volume=182 |numero=1 |pagine=105–142 |anno=1999 |doi=10.1007/BF02392825 |cid= Håstad1999}}
* {{cita testo |nome1=R. |cognome1=Impagliazzo |wkautore1=Russell Impagliazzo |nome2=R. |cognome2=Paturi |nome3=F. |cognome3=Zane |titolo=Which problems have strongly exponential complexity? |rivista=[[Rivista of Computer and System Sciences]] |volume=63 |numero=4 |anno=2001 |pagine=512–530 |doi=10.1006/jcss.2001.1774 |cid=Impagliazzo2001}}
* {{cita testo |nome1=A. |cognome1=Itai |nome2=M. |cognome2=Rodeh |titolo=Finding a minimum circuit in a graph |rivista=[[SIAM Rivista on Computing]] |volume=7 |numero=4 |pagine=413–423 |anno=1978 |doi=10.1137/0207033 |cid=Itai1978}}
* {{cita testo |nome=M. |cognome=Jerrum |titolo=Large cliques elude the Metropolis process |rivista=Random Structures and Algorithms |volume=3 |pagine=347–359 |anno=1992 |doi=10.1002/rsa.3240030402 |numero=4 |cid=Jerrum1992}}
* {{Cita testo | cognome1=Jian | nome1=T | titolo=An O(2<sup>0.304''n''</sup>) Algorithm for Solving Maximum Independent Set Problem | editore=IEEE Computer Society | anno=1986 | rivista=IEEE Transactions on Computers | issn=0018-9340 | volume=35 | numero=9 | pagine=847–851 | doi=10.1109/TC.1986.1676847 |cid= Jian1986}}
* {{cita testo |curatore1-nome=D. S. |curatore1-cognome=Johnson |
* {{cita testo |nome1=D. S. |cognome1=Johnson |wkautore1=David S. Johnson |nome2=M. |cognome2=Yannakakis |wkautore2=Mihalis Yannakakis |titolo=On generating all maximal independent sets |rivista=Information Processing Letters |volume=27 |anno=1988 |pagine=119–123 |numero=3 |doi=10.1016/0020-0190(88)90065-8 |cid= Johnson1998}}
* {{cita testo |
* {{cita testo | cognome=Karp |nome=Richard M. |wkautore=Richard M. Karp |contributo=Probabilistic analysis of some combinatorial search problems |titolo=Algorithms and Complexity: New Directions and Recent Results |curatore-nome=J. F. |curatore-cognome=Traub |editore=[[Academic Press]] |città=New York |anno=1976 |pagine=1–19 |cid=Karp1976}}
* {{cita testo |nome1=K. |cognome1=Katayama |nome2=A. |cognome2=Hamamoto |nome3=H. |cognome3=Narihisa |titolo=An effective local search for the maximum clique problem |rivista=Information Processing Letters |volume=95 |numero=5 |anno=2005 |pagine=503–511 |doi=10.1016/j.ipl.2005.05.010 |cid= Katayama2005}}
* {{cita testo |nome=S. |cognome=Khot |titolo=[[Symposium on Foundations of Computer Science|Proc. 42nd IEEE Symp. Foundations of Computer Science]] |pagine=600–609 |anno=2001 |doi=10.1109/SFCS.2001.959936 |
* {{cita testo |nome1=T. |cognome1=Kloks |nome2=D. |cognome2=Kratsch |nome3=H. |cognome3=Müller |titolo=Finding and counting small induced subgraphs efficiently |rivista=Information Processing Letters |volume=74 |numero=3–4 |pagine=115–121 |anno=2000 |doi=10.1016/S0020-0190(00)00047-8 |cid=Kloks2000}}
* {{cita testo |nome1=J. |cognome1=Konc |nome2=D. |cognome2=Janežič |titolo=An improved branch and bound algorithm for the maximum clique problem |rivista=MATCH Communications in Mathematical and in Computer Chemistry |volume=58 |numero=3 |pagine=569–590 |anno=2007 |
* {{cita testo |cognome1=Lipton |nome1=R. J. |wkautore1=Richard J. Lipton |cognome2=Tarjan |nome2=R. E. |wkautore2=Robert Tarjan |titolo=Applications of a planar separator theorem |rivista=[[SIAM Rivista on Computing]] |volume=9 |numero=3 |pagine=615–627 |anno=1980 |doi=10.1137/0209046 |cid=Lipton1980}}
* {{cita testo | cognome1 = Luce | nome1 = R. Duncan | wkautore1 = R. Duncan Luce | cognome2 = Perry | nome2 = Albert D. | titolo = A method of matrix analysis of group structure | rivista = Psychometrika | volume = 14 | numero = 2 | anno = 1949 | pagine = 95–116 | doi = 10.1007/BF02289146 | pmid = 18152948 |cid=Luce1949}}
* {{cita testo | cognome1 = Magniez | nome1 = Frédéric | cognome2 = Santha | nome2 = Miklos | cognome3 = Szegedy | nome3 = Mario | wkautore3 = Mario Szegedy | titolo = Quantum algorithms for the triangle problem | anno = 2007 | arxiv = quant-ph/0310134 | rivista = [[SIAM Rivista on Computing]] | volume = 37 | numero = 2 | pagine = 413–424 | doi = 10.1137/050643684 |cid= Magniez2007}}
* {{cita testo |nome=K. |cognome1=Makino |nome2=T. |cognome2=Uno |contributo=New algorithms for enumerating all maximal cliques |titolo=Algorithm Theory: SWAT 2004 |serie=Lecture Notes in Computer Science |editore=[[Springer-Verlag]] |volume=3111 |anno=2004 |pagine=260–272 |url=http://www.springerlink.com/content/p9qbl6y1v5t3xc1w/ |cid=Makino2004 |urlmorto=sì }}
* {{cita testo | cognome1 = Moon | nome1 = J. W. | wkautore2 = Leo Moser | cognome2 = Moser | nome2 = L. | titolo = On cliques in graphs | rivista = Israel Rivista of Mathematics | volume = 3 | anno = 1965 | pagine = 23–28 | mr = 0182577 | doi = 10.1007/BF02760024 |cid=Moon1965}}
* {{cita testo |wkautore1=Jaroslav Nešetřil |nome1=J. |cognome1=Nešetřil |wkautore2=Svatopluk Poljak |nome2=S. |cognome2=Poljak |titolo=On the complexity of the subgraph problem |rivista=Commentationes Mathematicae Universitatis Carolinae |volume=26 |numero=2 |pagine=415–419 |anno=1985 |cid=Nešetřil1985}}
* {{cita testo |nome=P. R. J. |cognome=Östergård |titolo=A fast algorithm for the maximum clique problem |rivista=Discrete Applied Mathematics |volume=120 |numero=1–3 |anno=2002 |pagine=197–207 |doi=10.1016/S0166-218X(01)00290-6 |cid=Östergård2002}}
* {{cita testo |cognome1=Ouyang |nome1=Q. |cognome2=Kaplan |nome2=P. D. |cognome3=Liu |nome3=S. |cognome4=Libchaber |nome4=A. |titolo=DNA solution of the maximal clique problem |rivista=[[
* {{cita testo |cognome1=Pardalos |nome1=P. M. |cognome2=Rogers |nome2=G. P. |titolo=A branch and bound algorithm for the maximum clique problem |rivista=Computers & Operations Research |anno=1992 |volume=19 |numero=5 |pagine=363–375 |doi=10.1016/0305-0548(92)90067-F |cid=Pardalos1992}}
* {{cita testo |nome=A. A. |cognome=Razborov |wkautore=Alexander Razborov |titolo=Lower bounds for the monotone complexity of some Boolean functions |
* {{cita testo |nome=J.-C. |cognome=Régin |contributo=Using constraint programming to solve the maximum clique problem |titolo=Proc. 9th Int. Conf. Principles and Practice of Constraint Programming – CP 2003 |anno=2003 |url=http://www.springerlink.com/content/8p1980dfmrt3agyp/ |serie=Lecture Notes in Computer Science |editore=[[Springer-Verlag]] |volume=2833 |pagine=634–648 |cid=Régin2003 |urlmorto=sì }}
* {{cita testo |nome=J. M. |cognome=Robson |titolo=Algorithms for maximum independent sets |rivista=Rivista of Algorithms |volume=7 |anno=1986 |pagine=425–440 |numero=3 |doi=10.1016/0196-6774(86)90032-5 |cid=Robson1986}}
* {{Cita testo | cognome1=Robson | nome1=J. M. | titolo=Finding a maximum independent set in time O(2<sup>''n''/4</sup>) |anno=2001 |url=http://www.labri.fr/perso/robson/mis/techrep.html |cid=Robson2001}}
* {{cita testo |cognome1=Rosgen |nome1=B |cognome2=Stewart |nome2=L |anno=2007 |titolo=Complexity results on graphs with few cliques |rivista=Discrete Mathematics and Theoretical Computer Science |volume=9 |numero=1 |pagine=127–136 |url=http://www.dmtcs.org/dmtcs-ojs/index.php/dmtcs/article/view/707/1817 |cid=Rosgen2007 |urlmorto=sì |urlarchivio=https://web.archive.org/web/20150923215449/http://www.dmtcs.org/dmtcs-ojs/index.php/dmtcs/article/view/707/1817 |dataarchivio=23 settembre 2015 }}
* {{cita testo |nome=M. |cognome=Sipser |wkautore=Michael Sipser |titolo=[[Introduction to the Theory of Computation]] |editore=[[The Thomson Corporation|International Thompson Publishing]] |anno=1996 |isbn=0-534-94728-X |cid=Sipser1996}}
* {{cita testo |nome1=R. E. |cognome1=Tarjan |wkautore1=Robert Tarjan |nome2=A. E. |cognome2=Trojanowski |titolo=Finding a maximum independent set |rivista=[[SIAM Rivista on Computing]] |volume=6 |anno=1977 |pagine=537–546 |url=ftp://db.stanford.edu/pub/cstr.old/reports/cs/tr/76/550/CS-TR-76-550.pdf |doi=10.1137/0206038 |numero=3 |cid=Tarjan1977 |urlmorto=sì }}
* {{cita testo |nome1=E. |cognome1=Tomita |nome2=T. |cognome2=Kameda |titolo=An efficient branch-and-bound algorithm for finding a maximum clique with computational experiments |rivista=Rivista of Global Optimization |volume=37 |numero=1 |anno=2007 |pagine=95–111 |doi=10.1007/s10898-006-9039-7 |cid=Tomita2007}}
* {{cita testo |nome1=E. |cognome1=Tomita |nome2=T. |cognome2=Seki |titolo=Discrete Mathematics and Theoretical Computer Science |serie=Lecture Notes in Computer Science |editore=Springer-Verlag |volume=2731 |anno=2003 |pagine=278–289 |doi=10.1007/3-540-45066-1_22 |
* {{cita testo |nome1=E. |cognome1=Tomita |nome2=A. |cognome2=Tanaka |nome3=H. |cognome3=Takahashi |titolo=The worst-case time complexity for generating all maximal cliques and computational experiments |rivista=[[Theoretical Computer Science (rivista)|Theoretical Computer Science]] |volume=363 |numero=1 |pagine=28–42 |anno=2006 |doi=10.1016/j.tcs.2006.06.015 |cid=Tomita2006}}
* {{cita testo |nome1=S. |cognome1=Tsukiyama |nome2=M. |cognome2=Ide |nome3=I. |cognome3=Ariyoshi |nome4=I. |cognome4=Shirakawa |titolo=A new algorithm for generating all the maximal independent sets |rivista=[[SIAM Rivista on Computing]] |volume=6 |anno=1977 |pagine=505–517 |doi=10.1137/0206036 |numero=3 |cid=Tsukiyama1977}}
* {{cita testo |cognome=Valiant |nome=L. G. |titolo=[[Symposium on Theory of Computing|Proc. 15th ACM Symposium on Theory of Computing]] |anno=1983 |pagine=110–117 |doi=10.1145/800061.808739 |
* {{cita testo |nome1=V. |cognome1=Vassilevska |nome2=R. |cognome2=Williams |wkautore2=Ryan Williams (computer scientist) |titolo=[[Symposium on Theory of Computing|Proc. 41st ACM Symposium on Theory of Computing]] |anno=2009 |pagine=455–464 |doi=10.1145/1536414.1536477 |
* {{cita testo |cognome=Wegener |nome=I. |titolo=On the complexity of branching programs and decision trees for clique functions |rivista=[[Rivista of the ACM]] |volume=35 |numero=2 |pagine=461–472 |anno=1988 |doi=10.1145/42282.46161 |cid=Wegener1998}}
* {{cita testo |nome=R. |cognome=Yuster |titolo=Finding and counting cliques and independent sets in ''r''-uniform hypergraphs |rivista=Information Processing Letters |volume=99 |numero=4 |pagine=130–134 |anno=2006 |doi=10.1016/j.ipl.2006.04.005 |cid=Yuster2006}}
* {{cita testo |nome=D. |cognome=Zuckerman |titolo=[[Symposium on Theory of Computing|Proc. 38th ACM Symp. Theory of Computing]] |pagine=681–690 |anno=2006 |doi=10.1145/1132516.1132612 |id=
{{Div col end}}
{{Portale
[[Categoria:
[[Categoria:
[[fr:Clique (théorie des graphes)#Problème de la clique]]
|