Verifica delle formule con due quantificatori (


15

I solutori SAT offrono un modo efficace per verificare la validità di una formula booleana con un quantificatore.

Ad esempio, per verificare la validità di , possiamo usare un solutore SAT per determinare se φ ( x ) è soddisfacente. Per verificare la validità di x . φ ( x ) , possiamo usare un solutore SAT per determinare se ¬ φ ( x ) è soddisfacente. (Qui x = ( x 1 , , x n ) è un n -vettore di variabili booleane e φx.φ(x)φ(x)x.φ(x)¬φ(x)x=(x1,,xn)nφ è una formula booleana.)

I solutori QBF sono progettati per verificare la validità di una formula booleana con un numero arbitrario di quantificatori.

E se avessimo una formula con due quantificatori? Esistono algoritmi efficienti per la verifica della validità: quelli migliori del semplice utilizzo di algoritmi generici per QBF? Per essere più specifici ho una formula del modulo (o x . y . ψ ( x , y ) ) e vuoi verificarne la validità. Ci sono buoni algoritmi per questo? Modifica 4/8: ho imparato che questa classe di formule è talvolta conosciuta come 2QBF, quindi sto cercando buoni algoritmi per 2QBF.x.y.ψ(x,y)x.y.ψ(x,y)

Specializzazione ulteriore: Nel mio caso particolare, ho una formula del modulo il cui voglio controllare, dove validità f , g sono funzioni che producono un k uscita bit. Esistono algoritmi per verificare la validità di questo particolare tipo di formula, in modo più efficiente rispetto agli algoritmi generici per QBF?x.y.f(x)=g(y)f,gk

PS Non sto chiedendo la durezza del caso peggiore, nella teoria della complessità. Sto chiedendo algoritmi praticamente utili (tanto quanto i moderni solutori SAT sono praticamente utili su molti problemi anche se SAT è NP-completo).


4
non è sostanzialmente equivalente ax y ψ ( x , y ) . xy ψ(x,y)xy ψ(x,y)
Huck Bennett,

2
Penso che l'OP significhi questo in modo informale, in quanto entrambi sono difficili per i solutori di SAT e che una soluzione a entrambi sarebbe interessante
Suresh Venkat

1
@HuckBennett, penso che i due abbiano una durezza equivalente. (Prova: è valido se è ¬ x . y . ¬ ψ ( x , y ) . Pertanto, se abbiamo un modo per testare la validità delle formule del modulo x . y . ψ ( x , y ) , possiamo anche testare la validità delle formule x . yx.y.ψ(x,y)¬x.y.¬ψ(x,y)x.y.ψ(x,y) lasciando ψ ( x , y ) =x.y.ψ(x,y) e verificando la validità dix . y . ψ ( x , y ) .) Comunque, sarei interessato agli algoritmi per entrambi i casi. ψ(x,y)=¬ψ(x,y)x.y.ψ(x,y)
DW

6
@DW, non necessariamente, ad esempio SAT e TAUT non sono ritenuti avere la stessa complessità.
Kaveh,

4
@chazisop: Penso che l'OP stia chiedendo algoritmi / solutori -SAT, non solutori QBF generali. Tuttavia esistono molti solutori di QBF. Vedi la scheda "solutori" su qbflib.orgΠ2/Σ2
Huck Bennett,

Risposte:


22

Se posso, abbastanza palesemente, pubblicizzare me stesso, abbiamo scritto un articolo su questo algoritmo basato sull'astrazione dell'anno scorso per 2QBF . Ho un'implementazione per qdimacs, che posso fornire se lo desideri, ma dalla mia esperienza, si può trarre grandi vantaggi dalla specializzazione dell'algoritmo per un problema particolare. C'è anche un documento più vecchio Uno studio comparativo degli algoritmi 2QBF , che presenta anche algoritmi abbastanza facilmente implementabili.


Awesome! Thanks, Mikolas, this is just the sort of thing I was hoping for.
D.W.

2
Ciao @DW felice di poterti aiutare. Spero che troverai questo utile. QBF è una bestia abbastanza diversa dal SAT, quindi bisogna stare un po 'attenti perché le cose possono esplodere molto facilmente :-). Non esitate a scrivermi una e-mail se avete domande più dettagliate sul nostro lavoro.
Mikolas,

7

I have read two papers related to this, one specifically related to 2QBF. The papers are the following:

Incremental Determinization, Markus N. Rabe and Sanjit Seshia, Theory and Applications of Satisfiability Testing (SAT 2016).

Hanno implementato il loro algoritmo in uno strumento chiamato CADET . L'idea di base è quella di aggiungere in modo incrementale nuovi vincoli alla formula fino a quando i vincoli descrivono una funzione Skolem unica o fino a quando non viene confermata l'assenza.

Il secondo è Incremental QBF Solving , Florian Lonsing e Uwe Egly.

Implementato in uno strumento chiamato DepQBF . Non pone alcun vincolo al numero di alternanze del quantificatore. Si parte dal presupposto che abbiamo formule qbf strettamente correlate. Si basa sulla risoluzione incrementale e non getta le clausole apprese durante l'ultima risoluzione. Aggiunge clausole e cubi alla formula corrente e si interrompe se clausole o cubi sono vuoti, che rappresentano unsat o sat.

Modifica : solo per una prospettiva di come funzionano questi approcci per i benchmark 2QBF. Si prega di guardare i risultati di QBFEVal-2018 per i risultati della competizione annuale QBF QBFEVAL . Nel 2019 non c'era traccia 2QBF.

Nella traccia 2QBF QBFEVAL-2018 DepQBF è stato il vincitore , CADET è stato il secondo in gara.

Quindi, in pratica, questi due approcci funzionano molto bene (almeno sui parametri di riferimento QBFEVAL).


4

Per dimostrare la soddisfazione di Xyφ, possiamo giocare con due giocatori A e B, ognuno dei quali ha accesso a un solutore SAT. Se stiamo lavorando in un dominioD, quindi ad ogni iterazione (incluso il primo) A sceglie un elemento che soddisfa il set di vincoli che ha (inizia vuoto), un'D, come nostro candidato per soddisfare la formula. Quindi, B cerca di soddisfare¬φ[un'/X] con qualche BB. Se B non può farlo, significa cheun' works and we're done, otherwise we go back to A and we add to its constraint set ϕ[b/y], which guarantees this sort of mistake will not be made again. I have a feeling that one could think about the form of ϕ and do this sort of a procedure in a more strategic way, relying upon some sufficient subsets to eliminate any given candidate or some known symmetries to eliminate parts of this search early. Perhaps one might even add their own constraints to the initial constraint set of A.


2
This is the algorithm described in the paper that Mikolas cites; see Algorithm 1 of that paper. If ϕ is provided as the negation of a CNF formula, they then show some ways to further improve the algorithm by taking into account the form of ϕ (as your answer suggests might be possible); see Section 5 of that paper. Nice explanation of an elegant and powerful approach!
D.W.

It's quite nice, there is an analogy with adversarial machine learning if you squint at and indeed it works for any complemented lattice where you have a solver of sorts
Samuel Schlesinger
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.