Risolutore SAT deterministico


8

Ho la seguente domanda I solutori SAT sono deterministici?

Intendo ad esempio l' algoritmo miniSAT e DPLL . Sono completamente deterministici?

Se questi algoritmi restituiranno unSAT significa che sicuramente la soluzione non esiste?

Risposte:


14

Algoritmi core come DPLL e i suoi perfezionamenti come CDCL sono completamente deterministici.

Si noti che il non determinismo non significa necessariamente che un algoritmo possa portare a un risultato errato. Ad esempio, possiamo distinguere tra

  • Algoritmi Monte Carlo , che sono algoritmi randomizzati il ​​cui output potrebbe essere errato con una certa probabilità.

  • Gli algoritmi di Las Vegas , che sono algoritmi randomizzati il ​​cui output è sempre corretto , ma gli algoritmi "giocano" con le risorse utilizzate nel calcolo, ad esempio il tempo di esecuzione su input identici può variare.

All'altro estremo ci sono algoritmi probabilistici per risolvere -SAT come Schöning [1] che è Monte-Carlo, e straordinariamente efficace nella pratica data la sua assoluta semplicità. È interessante notare che l'algoritmo di Schöning può essere completamente derandomizzato senza perdere (gran parte) della sua efficacia [2].K

In pratica, i solutori di SAT industriali impiegano sempre un certo grado di casualità, in modo da "sfuggire" al cattivo comportamento (esponenziale) del caso peggiore degli algoritmi basati su DPLL. MiniSat è un software altamente configurabile e in evoluzione. Detto questo, MiniSat non è completamente deterministico: la scelta della variabile di ramificazione è talvolta randomizzata, a seconda delle opzioni della riga di comando. (L'impostazione predefinita è che il 2% delle variabili di ramificazione sono scelte casualmente IIRC.) Allo stesso modo, MiniSAT ha la possibilità di inizializzare i punteggi VSIDS in modo casuale. (VSIDS è un'euristica per "misurare" l'influenza che ha una variabile.)


  1. U. Schöning, un algoritmo probabilistico per -SAT basato su ricerca locale limitata e riavvioK .

  2. RA Moser, D. Scheder, Una completa derandomizzazione dell'algoritmo -SAT di Schöning K .


Riferimenti molto carini.
AdrianN,

l'algoritmo monte-carlo può dire che un problema è SAT quando non lo è, senza soluzione di soddisfacimento o è solo nel caso unSAT, che il problema potrebbe essere SAT?
Xavier Combelle,

@XavierCombelle Dipende dall'algoritmo specifico, anche se faccio fatica a pensare a un algoritmo che potrebbe sbagliare SAT. Schöning ha solo unSAT sbagliato.
Martin Berger,

Un'estensione minore - mentre MiniSat usa la casualità, non è casualità "vera". Ogni esecuzione di MiniSat produrrà la stessa risposta, nello stesso lasso di tempo (se non si riconfigura alcuna opzione), poiché le stesse scelte "casuali" vengono scelte ogni volta che si esegue il solutore.
Chris Jefferson,

@ChrisJefferson MiniSAT non ha un modo per specificare un seme casuale?
Martin Berger,

6

È corretto. DPLL esplora esaurientemente lo spazio. Se restituisce "unsat", allora sicuramente non esiste un compito soddisfacente.

Più di recente, i ricercatori hanno sviluppato certificatori di solutori SAT che restituiscono inoltre una (eventualmente breve) prova di insoddisfazione, quando restituiscono "unsat". Questa prova può essere verificata da chiunque altro, il che consente agli altri di verificare che la formula non sia soddisfacente senza che sia necessario rieseguire l'algoritmo SAT. Questo può essere utile in alcuni contesti.

MiniSAT è un'implementazione, piuttosto che un algoritmo. Il suo comportamento dipende dal suo codice. Non posso parlare di ciò che fa il codice.


Tutti i solutori DPLL / CDCL possono essere "aumentati" per produrre una prova di insoddisfazione.
Yuval Filmus,

5

Una parola chiave che potresti perdere è completezza . In generale, un algoritmo di ricerca si dice completo se trova una soluzione dato che esiste (dato abbastanza tempo). In particolare, DPLL è un esempio di un metodo di ricerca completo e deterministico.


3

I solutori SAT possono essere deterministici o meno a seconda di come sono implementati. Nota che il non determinismo qui può influenzare solo il modello generato e non la risposta (SAT o UNSAT) del solutore! A fini di diversificazione e altri, il solutore SAT generalmente introduce la casualità a un certo punto: ad esempio per inizializzare attività variabili o prendere decisioni casuali. Ad esempio, in minisat, le decisioni casuali vengono prese chiamando una funzione che restituisce sempre lo stesso numero casuale quando si utilizza lo stesso seme casuale. Quindi, a questo punto, quando non modifichi alcuna configurazione del solutore, avrai sempre la stessa risposta e lo stesso modello. La modifica del seme casuale, ad esempio, non influirà sulla risposta (SAT o UNSAT) ma può cambiare il modello e il tempo di esecuzione.

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.