Spiegazioni teoriche per il successo pratico dei solutori SAT?


43

Quali spiegazioni teoriche ci sono per il successo pratico dei solutori di SAT, e qualcuno può dare una panoramica e una spiegazione "stile Wikipedia" legandole tutte insieme?

Per analogia, l' analisi semplificata ( versione arXiv ) per l'algoritmo simplex fa un ottimo lavoro spiegando perché funziona così bene nella pratica, nonostante il fatto che impieghi tempo esponenziale nel peggiore dei casi ed è NP-potente ( versione arXiv ).

Ho sentito un po 'di cose come backdoor, struttura del grafico della clausola e transizioni di fase, ma (1) non vedo come si incastrano tutti insieme per dare un quadro più ampio (se lo fanno) e (2) Non so se questi spieghino davvero perché i risolutori SAT funzionano così bene, ad esempio, su istanze industriali. Inoltre, quando si tratta di cose come la struttura del grafico della clausola: perché gli attuali solutori sono in grado di sfruttare determinate strutture del grafico della clausola?

Trovo solo i risultati sulle transizioni di fase parzialmente soddisfacenti in questo senso, almeno nella mia comprensione attualmente limitata. La letteratura sulla transizione di fase parla di istanze di k-SAT casuali , ma questo spiega davvero qualcosa sulle istanze del mondo reale? Non mi aspetto che le istanze reali di SAT sembrino istanze casuali; dovrei? C'è un motivo per pensare che le transizioni di fase ci diano qualcosa, anche intuitivamente, sulle istanze del mondo reale anche se non sembrano istanze casuali?

Domande correlate che aiutano, ma non rispondono completamente alla mia domanda, in particolare la richiesta di legare le cose in un quadro coerente:


5
Questa non è una risposta, ma non credo che molte persone credano ancora che strutture grafiche / backdoor possano spiegare le prestazioni dei solutori di SAT. Sembrano più rilevanti per problemi più difficili come #SAT, QBF o compilazione di conoscenze, in cui è davvero necessario trovare fattorizzazioni intelligenti poiché è necessario esplorare in qualche modo l'intera struttura. Per la tua domanda, sono tentato di rispondere "nessuno lo sa davvero e questa è un'area di ricerca attiva". Ma ho bisogno di raccogliere riferimenti per mostrare ciò che la gente sta provando e potrebbe esserci qualcuno con una visione più ampia di me che può dare una risposta migliore.
lupo

2
@Joshua: il metodo simplex è persino potente per PSPACE (Fearnley e Savani, STOC 15).
Rahul Savani,

1
Sono d'accordo con @holf. Ecco i miei pochi centesimi: i solutori SAT possono recuperare più velocemente dei solutori CSP perché tutte le loro variabili hanno una dimensione del dominio di due. Questo non vuol dire che nessun risolutore CSP può battere un risolutore SAT, può se ha una variabile dinamica (così come valore) molto ordinata che ordina l'euristica unita a una buona codifica del problema. Inoltre, quando trasformi una "istanza di vita reale" in un'istanza SAT, raramente finisci nel punto di transizione di fase a causa dell'introduzione di così tante variabili ausiliarie. usually
Tayfun Pay

3
@TayfunPay: non stavo mettendo in discussione la tua esperienza - in effetti, credo al 100% che i problemi della "vita reale" si traducano in istanze SAT che non sono vicine alla transizione di fase. Ma non credo che ciò spieghi la facilità di tali casi, poiché tali casi non sono casuali , quindi la transizione di fase (in teoria) dovrebbe avere poco da dire su di essi (sia la durezza che la facilità).
Joshua Grochow,

2
Questo è già stato menzionato altrove, ma è importante notare che la densità variabile della clausola e le transizioni di fase sono rilevanti solo per k-SAT casuale e non hanno nulla a che fare con la durezza delle istanze derivanti da problemi industriali o combinatori. Pertanto, la maggior parte della discussione sopra è al di là del punto. Inoltre, vale la pena notare che per quanto riguarda il k-SAT casuale non esiste un modello reale facile-difficile-facile --- per i sistemi di prova in cui abbiamo limiti inferiori per le formule k-CNF generate casualmente, le formule rimangono esponenzialmente difficili per una costante arbitrariamente grande densità sopra la soglia.
Jakob Nordstrom,

Risposte:


21

Presumo che ti riferisci ai solutori di CDCL SAT su set di dati di riferimento come quelli utilizzati nel Concorso SAT . Questi programmi si basano su molte euristiche e molte ottimizzazioni. Nel 2014 ci sono state delle ottime introduzioni su come lavorano nel seminario di Risoluzioni teoriche del SAT applicato a Banff ( video ).

Questi algoritmi si basano sull'algoritmo di backtracking DPLL che cerca di trovare un'assegnazione soddisfacente impostando valori su variabili e backtrack quando trova un conflitto. Le persone hanno esaminato l'impatto di queste euristiche. Ad esempio, vedi

Sembra che l'efficienza di questi solutori SAT sui parametri di riferimento provenga principalmente da due due euristiche (e le loro varianti):

  1. Abete euristico VSIDS selezionando quale variabile ramificare in seguito.
  2. CDCL: clausola di conflitto guidata che apprende euristica che impara una nuova clausola da un conflitto.

È noto che le prove DPLL corrispondono alle prove in risoluzione. Senza CDCL le uniche prove di risoluzione che possiamo ottenere sono prove di risoluzione ad albero che sono molto più deboli delle prove di risoluzione generali.

Ci sono risultati che mostrano con CDCL che possiamo ottenere qualsiasi prova di risoluzione generale. Tuttavia ci sono avvertimenti, hanno bisogno di molti riavvii artificiali, ramificazioni artificiali e / o particolari preelaborazioni, quindi non è chiaro quanto questi siano vicini a ciò che questi programmi fanno nella pratica. Vedi ad esempio il seguente documento per maggiori dettagli:


CDCL sta essenzialmente tagliando i rami dallo spazio di ricerca. Esistono vari modi per derivare una nuova clausola appresa da un conflitto. Idealmente, aggiungeremmo una serie di clausole minime che implicavano il conflitto, ma in pratica possono essere grandi e possono essere costose da calcolare. I migliori risolutori di SAT spesso eliminano regolarmente le clausole apprese e questo aiuta nella pratica.


L'altro VSIDS euristico mantiene essenzialmente un punteggio per ogni variabile. Ogni volta che si verifica un conflitto, tutti i punteggi vengono regolati moltiplicandoli per un valore <1 e aggiungendo una costante a quelli "coinvolti" nel conflitto. Di vedere ciò che questo significa pensare alla sequenza che è 1 se la variabile v fosse "coinvolto" nel esima conflitto. Sia una costante fissa. Il punteggio della variabile al tempo è quindi: F ( v , i ) i 0 < α < 1 v n i < n F ( v , i ) α ( n - i )αF(v,i)i0<α<1vn

i<nF(v,i)α(ni)

Intuitivamente si può dire che questo cerca di enfatizzare le variabili che sono state costantemente coinvolte nei recenti conflitti. Puoi anche pensarlo come un modo semplicistico ma estremamente economico di prevedere quali variabili saranno coinvolte nel prossimo conflitto. Quindi VSIDS si ramifica prima su quelle variabili. Si può affermare che l'algoritmo è essenzialmente un algoritmo fail-fast, trovare conflitti velocemente. Veloce è correlato al minor numero di variabili impostate, il che significa bloccare grandi sottostrutture dell'albero di ricerca. Ma questa è principalmente intuizione, nessuno ha formalizzato con molta attenzione testarlo su set di dati SAT. L'esecuzione di un solutore SAT su uno di questi set di dati non è economica, per non parlare del confronto con le decisioni ottimali (la più piccola estensione dell'attuale assegnazione alle variabili che violerebbero una delle clausole). VSIDS dipende anche da quali variabili ci imbattiamo in ogni conflitto, ci sono vari modi per definire quando una variabile è coinvolta in un conflitto.


Ci sono risultati che mostrano che un'implementazione particolare di queste idee corrisponde a una centralità ponderata nel tempo dei vertici nei grafici dinamici.

Ci sono anche suggerimenti che escludendo istanze contraddittorie come quelle basate su problemi NP-difficili e primitive crittografiche e istanze casuali (in cui i risolutori SAT CDCL non sono bravi) il resto delle istanze proviene da cose molto ben strutturate come la verifica di software e hardware e in qualche modo queste le strutture sono sfruttate dai solutori del CDCL SAT (molte idee sono state menzionate come backdoor, variabili congelate, ecc.) ma in fondo sono per lo più idee e non hanno una forte evidenza teorica o sperimentale per sostenerle. Penso che uno dovrebbe pugno rigorosamente definire correttamente e mostrare che le istanze su cui questi algoritmi funzionano bene hanno la proprietà e quindi mostrare che questi algoritmi sfruttano quelle proprietà.


Alcune persone continuano a insistere sul fatto che il rapporto tra le clausole e le soglie sono l'unico gioco in città. Questo è sicuramente falso come chiunque conosca un po 'il funzionamento dei solutori SAT industriali o che sia a conoscenza della complessità della prova. Ci sono molte cose che fanno funzionare un solutore SAT o no su un'istanza in pratica e il rapporto delle clausole è solo una delle cose che potrebbero essere coinvolte. Penso che il seguente sondaggio sia un buon punto di partenza per conoscere le connessioni tra complessità della prova, solutori SAT e prospettiva:

È interessante notare che anche il fenomeno della soglia è più complicato di quanto la maggior parte della gente pensi, Moshe Vardi ha affermato nel suo discorso " Transizioni di fase e complessità computazionale " che il tempo di esecuzione mediano di GRASP rimane esponenziale per le formule casuali 3SAT dopo la soglia ma che l'esponente diminuisce (afaik, non è chiaro quanto velocemente diminuisce).


Perché stiamo studiando solutori SAT (come teorici della complessità)? Penso che la risposta sia la stessa di altri algoritmi: 1. confrontali, 2. trova i loro limiti, 3. progetta quelli migliori, 4. rispondi alle domande fondamentali della teoria della complessità.

Quando si modella un euristico, spesso sostituiamo l'euristico con il non determinismo. La domanda allora diventa: è un sostituto "equo"? E qui per equità intendo quanto è vicino il modello nell'aiutarci a rispondere alla domanda sopra.

Quando modelliamo un solutore SAT come un sistema di prova, stiamo parzialmente dimostrando la sua limitazione perché l'algoritmo sarà inefficiente per le dichiarazioni che hanno limiti inferiori nel sistema di prova. Ma c'è ancora un divario tra ciò che l'algoritmo trova effettivamente e la prova ottimale nel sistema di prova. Quindi dobbiamo dimostrare che anche il contrario, ovvero l'algoritmo può trovare prove valide quanto quelle nel sistema di prove. Non siamo vicini a rispondere a questa domanda, ma la quantità di euristica che viene sostituita dal non determinismo definisce quanto il modello sia vicino al sistema di prova. Non mi aspetto che abbandoneremo completamente la sostituzione dell'euristica con il non determinismo, altrimenti otterremmo risultati di automatizzabilità che hanno conseguenze su problemi aperti in cripto, ecc.

Quindi la domanda quando si guarda un modello diventa: quanto aiutano i modelli a spiegare perché il solutore SAT A è migliore del solutore SAT B? Quanto sono utili nello sviluppo di solutori SAT migliori? Il solutore SAT trova prove in pratica simili a prove ottimali nel modello? ... Dobbiamo anche modellare le istanze pratiche.

Per quanto riguarda l'intuizione secondo cui i risolutori di CDCL SAT "sfruttano la struttura delle istanze pratiche" (qualunque sia quella struttura) è generalmente intuizione accettata, penso. La vera domanda è dare una spiegazione convincente di ciò che ciò significhi e dimostrare che è effettivamente vero.

Vedi anche la risposta di Jakob Nordstrom per sviluppi più recenti.


1
Questo vale per le istanze SAT derivate dal factoring intero?
Mohammad Al-Turkistany,

1
Sì, ma è ancora un . Potrebbe benissimo fare di peggio in alcuni casi che possono essere facilmente risolti da un diverso euristico usando lo stesso solutore SAT. Ad esempio, guarda il loro articolo successivo . Mostrano che in media il loro nuovo euristico CHB ha prestazioni migliori di VSIDS. Tuttavia, se osservi attentamente la Tabella 1, vedrai che in alcuni casi il CHB ha effettivamente funzionato in peggio in media ... Pertanto, non credo che parlare di sia un modo salutare per procedere rispondendo a questa domanda. h e u r i s t i c sheuristicheuristics
Tayfun Pay

1
@Martin, senza CDCL otteniamo solo forme di risoluzione molto limitate (non ricordo esattamente cosa non riesco a capire). I risultati di Paul Beame e di altri mostrano che con CDCL e riavvii è possibile ottenere praticamente qualsiasi prova di risoluzione generale (tuttavia la selezione dei punti di riavvio e dei rami è un po 'artificiale), vedere l'articolo di Beame per i dettagli.
Kaveh,

3
@Martin, vedi anche il sondaggio di Jakob Nordstrom: csc.kth.se/~jakobn/project-proofcplx/docs/…
Kaveh

1
Per quanto riguarda la complessità prova e CDCL, è stato dimostrato da Pipatsrisawat e Darwiche sciencedirect.com/science/article/pii/S0004370210001669 e indipendentemente da Atserias, Fichte e Thurley jair.org/papers/paper3152.html che CDCL visto come un sistema di prova può polinomialmente simulare la risoluzione (i documenti indicano risultati diversi, ma le prove in entrambi i documenti possono essere utilizzate per ottenere i risultati nell'altro documento). Una differenza importante rispetto ai precedenti articoli in questa linea di ricerca è che non c'è nulla di articolare in questi modelli di CDCL. [Continua ...]
Jakob Nordstrom,

17

Sto scrivendo abbastanza rapidamente a causa di gravi vincoli di tempo (e non ho nemmeno potuto rispondere prima per lo stesso motivo), ma ho pensato che avrei provato a fare almeno un chip con i miei due centesimi.

Penso che questa sia davvero una grande domanda, e negli ultimi anni ho trascorso un periodo non banale a esaminare questo aspetto. (Informativa completa: ho ricevuto gran parte del mio attuale finanziamento proprio per cercare di trovare risposte a domande di questo tipo e quindi potenzialmente per convertire approfondimenti in SAT in solutori SAT più efficienti.)

Se uno dovesse dare una risposta di una frase, penso

nessuno lo sa davvero e questa è un'area attiva di ricerca

è praticamente buono come si arriva. Solo che c'è molto più spazio per più attività, specialmente dal lato della teoria.

Alcune spiegazioni proposte (non reciprocamente esclusive), che sono già state discusse in altre risposte e commenti, lo sono

  • a) backdoor,
  • (b) considerazioni sulla complessità parametrizzata,
  • (c) struttura grafica del problema CNF,
  • d) considerazioni sulla complessità della prova e
  • (e) transizioni di fase.

A partire dalla fine (e), sembra esserci una certa confusione riguardo alle transizioni di fase. La risposta breve qui è che non vi è alcun motivo per credere che il rapporto tra clausole e variabili sia rilevante per problemi applicati o problemi teorici combinatori (ovvero istanze predisposte). Ma per qualche ragione è un malinteso non troppo raro nella parte applicata della comunità SAT che il rapporto clausole-variabili dovrebbe in qualche modo essere una misura generalmente rilevante. Il rapporto tra clausole e variabili è molto rilevante per k-SAT casuale, ma non per altri modelli.

La mia sensazione è che le backdoor (a) siano state una spiegazione popolare, ma personalmente non ho visto prove convincenti che spieghino cosa succede nella pratica.

La complessità parametrizzata (b) fornisce una bella teoria su alcuni aspetti della SAT, e un'ipotesi molto interessante è che le istanze di SAT sono facili perché tendono ad essere "vicine a qualche isola di tracciabilità". Penso che questa ipotesi apra molte entusiasmanti direzioni di ricerca. Come notato in alcune delle risposte, ci sono molte connessioni tra (a) e (b). Tuttavia, finora non vedo alcuna prova che la complessità parametrizzata sia troppo correlata a ciò che sta accadendo nella pratica. In particolare, sembra che le istanze trattabili possano essere molto, molto difficili in pratica, e le istanze prive di piccole backdoor possono essere ancora molto facili.

La spiegazione che mi sembra più credibile per le istanze industriali è (c), vale a dire che la struttura (grafica) delle formule CNF in questione dovrebbe essere correlata con le prestazioni pratiche di SAT. L'idea qui è che variabili e clausole di istanze industriali possono essere raggruppate in comunità ben collegate con poche connessioni tra loro e che i risolutori di SAT sfruttano in qualche modo questa struttura. Sfortunatamente, sembra abbastanza difficile definire questo in modo più rigoroso, e altrettanto sfortunatamente questa zona soffre di una buona dose di clamore. Le spiegazioni proposte che ho visto finora nei documenti sono abbastanza insoddisfacenti e i modelli sembrano essere facili da abbattere. Il problema sembrerebbe essere che se uno vuole davvero farlo a fondo, quindi la matematica diventa davvero dura (perché è un problema difficile) e diventa anche estremamente confusa (perché hai bisogno che il tuo modello sia abbastanza vicino alla realtà per ottenere risultati pertinenti). In particolare, gli articoli che ho visto spiegano che le prestazioni dell'euristico VSIDS (somma decadente indipendente dallo stato variabile) per le scelte variabili funzionano bene perché esplorano le comunità nella rappresentazione grafica delle istanze non sono abbastanza convincenti, sebbene l'ipotesi in quanto tale sia ancora molto attraente.

Una linea di ricerca che ho perseguito personalmente è se le prestazioni pratiche di SAT siano in qualche modo correlate con le misure di complessità della dimostrazione delle formule CNF in questione. Sfortunatamente, la risposta breve sembra essere che in realtà non esiste una connessione chiara e convincente. Potrebbe essere ancora che ci siano correlazioni non banali (questo è qualcosa che stiamo attualmente studiando in diversi modi), ma sembra che la teoria sia troppo bella, pulita e carina e la realtà sia troppo disordinata perché ci sia davvero una buona corrispondenza. (Per quanto riguarda il documento relativo alle misure di complessità della prova e alla durezza pratica del SATdi Järvisalo, Matsliah, Nordström e Živný nel CP '12, si è scoperto che esperimenti più dettagliati forniscono un quadro molto più complesso con conclusioni meno chiare --- speriamo di arrivare a una versione completa del diario che riporti questo su ogni decennio ormai, ma è complicato, anche se si spera ancora interessante.)

Un'altra linea di lavoro correlata in complessità di prova è quella di modellare solutori SAT all'avanguardia come sistemi di prova e dimostrare teoremi in questi modelli per dedurre le proprietà dei solutori corrispondenti. Questo è un po 'un campo minato, tuttavia, dal momento che le scelte di design piccole e apparentemente innocue dal lato del modello teorico possono portare i risultati ad essere praticamente del tutto irrilevanti da un punto di vista pratico. D'altra parte, se si desidera un modello teorico abbastanza vicino alla realtà per dare risultati pertinenti, allora questo modello diventa estremamente disordinato. (Questo perché le prestazioni del solutore SAT dipendono dalla storia globale di tutto ciò che è accaduto finora in modi non banali, e questo significa che il modello non può essere modulare nel modo in cui di solito installiamo i nostri sistemi di prova --- se un particolare passaggio di derivazione è "corretta"

Due articoli che in realtà dovrebbero essere menzionati come eccezioni a questo, tuttavia, sono [Pipatsrisawat e Darwiche 2011] e [Atserias, Fichte e Thurley 2011], dove è dimostrato che la clausola guidata dal conflitto che impara i solutori di SAT modellati in modo naturale hanno potenziale per simulare polinomialmente la risoluzione completa e generale. Esiste un elenco abbastanza lungo di articoli che precedono [PD11] e [AFT11] che sostengono essenzialmente lo stesso risultato, ma hanno tutti seri problemi con la modellazione. (È vero che anche [PD11] e [AFT11] necessitano di alcuni presupposti per funzionare, ma sono praticamente quelli minimi che ci si aspetterebbe a meno che non si chiedano documenti che mostrino anche che la gerarchia della complessità parametrizzata crolla.)

Ancora una volta, sto scrivendo tutto questo molto rapidamente, ma se ci fosse un interesse sostanziale per qualcosa di quanto sopra, potrei provare a elaborare (anche se potrebbe volerci un po 'di tempo per tornare di nuovo a questo --- non esitate a chiamarmi se c'è è qualcosa su cui vorresti che io commentassi). Come modo rapido per fornire riferimenti, lasciatemi fare alcuni self-plug spudorati (anche se la vergogna è leggermente diminuita quando vedo che alcuni commenti hanno anche citato alcuni di questi riferimenti):

Discussione di tipo tutorial sull'interazione tra la complessità della prova e la risoluzione del SAT tenutasi alla International Summer School su Soddisfacibilità, Soddisfacibilità Modulo Teorie e Ragionamento automatizzato nel 2016 con molti riferimenti completi alla fine delle diapositive: http://www.csc .kth.se / ~ jakobn / ricerca / TalkInterplaySummerSchool2016.pdf

Discorso del sondaggio leggermente più recente e più breve Comprensione della risoluzione dei conflitti guidata dai conflitti a partire dalla lente della complessità della prova dall'inizio del 2017 (anche con riferimenti completi alla fine): http://www.csc.kth.se/~jakobn/research /TalkProofComplexityLensCDCL1702.pdf

Indagine sulle connessioni tra complessità della prova e risoluzione SAT: http://www.csc.kth.se/~jakobn/research/InterplayProofCplxSAT.pdf [Riferimenti bibliografici: Jakob Nordström. Sull'interazione tra complessità di prova e risoluzione SAT. Notizie ACM SIGLOG, volume 2, numero 3, pagine 19-44, luglio 2015. (Versione leggermente modificata con errori di battitura).]

Documento SAT '16 con CDCL modellato fedelmente come sistema di prova: http://www.csc.kth.se/~jakobn/research/Trade-offsTimeMemoryModelCDCL_SAT.pdf [Riferimenti bibliografici: Jan Elffers, Jan Johannsen, Massimo Lauria, Thomas Magnard , Jakob Nordström e Marc Vinyals. Svantaggi tra tempo e memoria in un modello più stretto di solutori di CDCL SAT. In Atti della XIX Conferenza internazionale sulla teoria e le applicazioni dei test di soddisfazione (SAT '16), Appunti di lezione di informatica, volume 9710, pagine 160-176, luglio 2016.]


16

Consentitemi di aggiungere i miei due centesimi di comprensione a questo, anche se in realtà non ho mai lavorato nell'area.

Stai ponendo una delle due domande, "quali sono tutti gli approcci noti per dimostrare l'efficienza teorica di alcuni solutori SAT per alcuni tipi di casi" e "perché i solutori SAT sono efficienti nella realtà".

Per la prima domanda, ti indirizzerò alla ricerca di Stefan Szeider. Mi sembra essere l'area attualmente più attiva nel tema delle backdoor e delle parametrizzazioni FPT di SAT (che include sia approcci strutturali come misure del tipo di larghezza degli alberi e cosiddetti set di backdoor, sia una combinazione delle due).

Per quest'ultima domanda, a dire il vero, quella domanda esatta è stata discussa in ogni seminario di risoluzione dei problemi a cui ho partecipato (compresi gli ultimi anni), quindi non è una questione risolta. Ma la mia impressione è la seguente.

Prima di tutto, devi quantificare o limitare ciò che intendi per "in realtà". Non è vero che i solutori di SAT sono risolutori universalmente buoni per qualsiasi problema a cui li poni (ovviamente) e tra problemi diversi finisci per aver bisogno di strategie diverse. Ad esempio, ci sono molti successi recenti in cui le congetture matematiche sono state verificate o rafforzate da un'enorme ricerca al computer aiutata da un solutore SAT. In questo caso, a quanto pare, molte volte gli intelligenti miglioramenti e l'euristica in stile CDCL che i solutori SAT moderni impiegano normalmente non ti acquistano troppa potenza e il gioco si riduce a un modo intelligente di suddividere il tuo problema sorgente parti, seguite da (essenzialmente) un algoritmo di ramificazione a forza bruta con un piccolo fattore costante nel tempo di esecuzione.

Forse sto esagerando leggermente su questo punto, ma il mio punto era che, quando i solutori di SAT attaccarono per esempio la congettura di discrepanza di Erdos, avevano successo per un motivo diverso rispetto a quando risolvono istanze industriali derivate dai test dei circuiti.

Quindi stiamo chiedendo, perché i solutori basati su CDCL funzionano così bene su istanze industriali, ad esempio, di verifica dei circuiti (test di equivalenza dei circuiti)? Io pensoche la vista più potente (o la vista del consenso) qui è la strategia di ricerca di un risolutore di CDCL che gelifica molto bene con la struttura di questi casi. Ciò significa, ad esempio, che i circuiti sono costituiti da parti relativamente complesse (li chiamano cluster), interconnesse da connessioni relativamente meno semplici e più semplici, possibilmente in modo gerarchico; e che i risolutori di CDCL con tutta la loro euristica sono molto bravi a (di fatto) sfruttarlo e "proiettare" questi cluster sulle variabili condivise, in qualunque modo o ordine sia più utile per verificare il circuito in questione. Ma sembra anche essere ancora opinione condivisa che si tratti di spiegazioni insufficienti (ad esempio, probabilmente non possiamo spiegare teoricamente l'efficienza dei solutori SAT CDCL in questo dominio puramente facendo riferimento alla struttura grafica dell'istanza).

Quindi le parametrizzazioni trattabili vanno in qualche modo a spiegare quest'ultima? Ad essere sincero, non lo so. Penso che ci sia probabilmente un potente effetto in gioco che le istanze del mondo reale non sono il caso peggiore, né sono (probabilmente) veramente mediocre secondo qualsiasi distribuzione di istanza che siamo in grado di gestire. Ma probabilmente vale ancora la pena chiedere.


2
Magnus, hai sicuramente più esperienza in questo settore di chiunque altro abbia tentato di rispondere a questa domanda finora. Quando ho dichiarato "i miei due centesimi", mi riferivo al fatto che ho studiato solo un gruppo specifico di problemi NP-Complete nella mia tesi di laurea e in che modo i risolutori CSP e SAT cercano di risolvere i numerosi casi di questi problemi. Ho anche circa un anno di esperienza nell'uso di solutori CSP e SAT sul posto di lavoro, ma ancora una volta, non è nemmeno vicino ai tuoi oltre 10 anni di esperienza in questo campo. I tuoi "due centesimi" valgono probabilmente "due pepite d'oro". Una domanda.
Tayfun paga il

1
Spieghi quanto segue nella tua risposta "Non è vero che i solutori SAT sono solutori universalmente validi per qualsiasi problema a cui li poni ....". Sei stato in grado di esaminare il rapporto tra clausole e variabili, c = m / n, per queste istanze? In altre parole, erano nella regione difficile, c = ~ 4.2 o no? Perché quello che ho sperimentato è che si finiscono con molte variabili quando si riduce un'istanza CSP a un'istanza SAT, e di solito è per questo motivo e non perché si trova effettivamente nella regione difficile, il solutore SAT impiega più tempo tempo di risolvere.
Tayfun paga il

1
D'altra parte, se sai che questi casi sono finiti nella regione difficile di SAT, c = ~ 4.2, allora potrei sapere qual era questo problema nella vita reale? Sarei molto interessato a sapere quali problemi della vita reale finiscono effettivamente nella dura regione del SAT quando sono ridotti ad esso. Grazie
Tayfun paga il

2
Onestamente, ho poca o nessuna esperienza di soluzione SAT pratica. Tutto il mio lavoro reale è stato dalla parte della pura teoria di quella domanda. Comunque sia, per quanto riguarda la tua domanda: la mia impressione è che i risultati per k-SAT casuale e densità di clausole (che menzioni) si applichino davvero solo se la tua istanza di input è letteralmente una formula uniformemente casuale. Si noti inoltre che il limite ~ 4.2 si applica solo se la formula è 3-SAT, al contrario di una formula CNF di lunghezza mista.
Magnus Wahlström,

1
E per "problemi non ben risolti dai solutori di SAT", intendo principalmente problemi che si presume siano realmente intrattabili, come rompere una buona criptovaluta. Tuttavia, ci sono anche formule che nessun risolutore di CDCL sarà in grado di risolvere in modo efficiente a causa di limiti inferiori teorici di prova, come le formule di principio del buco del piccione. Ho visto almeno un discorso con il messaggio "I risolutori SAT CDCL mi hanno fallito", in cui un po 'di scavo rivela che il loro problema con la codifica nasconde un aspetto simile a un piccione (ad esempio, contenente una variazione del problema di assegnazione). Sfortunatamente, non riesco a ricordare i dettagli.
Magnus Wahlström,

15

Esiste un documento " Misure relative alla complessità della prova e durezza pratica del SAT " di Matti Järvisalo, Arie Matsliah, Jakob Nordström e Stanislav Živný nel CP '12 che tenta di collegare la durezza o la facilità di risoluzione di alcune formule dei solutori di CDCL con la prova di risoluzione misure di complessità, in particolare spazio a prova di risoluzione. I risultati sono in qualche modo contrastanti, ma penso che sia un passo nella giusta direzione.


Sfortunatamente, la risposta breve sembra essere che in realtà non esiste una connessione chiara e convincente a misure di complessità della prova. Potrebbe essere ancora che ci siano correlazioni non banali, ma sembra che la teoria sia troppo chiara e la realtà sia troppo disordinata perché ci sia davvero una buona corrispondenza. Per quanto riguarda il documento "Relative Proof Complexity Measures", si è scoperto che esperimenti più dettagliati forniscono un quadro molto più complesso con conclusioni meno chiare --- speriamo di arrivare a una versione di giornale completa che riporti questo su ogni decennio ormai, ma è complicato , anche se si spera ancora interessante.
Jakob Nordstrom,

15

Non sono un esperto in questo settore, ma penso che la roba casuale di transizione SAT / fase sia più o meno completamente estranea alla roba di applicazioni industriali / pratiche.

Ad esempio, i bravissimi solutori di istanze casuali (come https://www.gableske.net/dimetheus ) si basano sui metodi della fisica statistica (propagazione delle credenze ecc.) Credo, mentre i bravissimi solutori "generali" (come come http://fmv.jku.at/lingeling/ ) stanno usando tecniche non correlate (più simili a quelle di cui parlava Kaveh) credo.

Ma, come ho detto, forse non credermi sulla parola; questo viene da un certo non esperto.


Sì. Il SAT casuale e il SAT industriale sono giochi completamente diversi e i metodi utilizzati sono diversi. Inoltre, se si desidera risolvere istanze combinatorie davvero difficili, allora altre tecniche hanno più successo (ad esempio, se il problema è abbastanza difficile, allora l'apprendimento delle clausole non paga, tranne forse molto localmente). Ma in qualche modo sembra un malinteso abbastanza comune (almeno sul lato applicato della comunità SAT) che il rapporto tra clausole e variabili dovrebbe in qualche modo essere rilevante per qualsiasi istanza SAT CNF e non solo per istanze casuali.
Jakob Nordstrom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.