Download del solutore #SAT


21

Qualcuno potrebbe indicare uno o più siti Web dove è possibile scaricare un'implementazione funzionante di un solutore #SAT? Sono interessato a coloro che restituiscono il conteggio esatto della soluzione, non un'approssimazione.


2
Ciao Walter, la tua domanda è vicina al confine di ciò che sarebbe ufficialmente "in argomento" per questo sito. Tuttavia, se non hai nessun altro posto dove porre questa domanda e possiamo rispondere, forse non è poi così male ... (Dato che il sito è ancora in fase di sviluppo, penso che siamo più aperti di quanto potrebbero essere altri siti.) che il punto di questo commento non è "sgridare" o "avvertire", è solo un avviso amichevole.
Ryan Williams,

Ciao Ryan, grazie per il tuo avviso. Mi dispiace se questa domanda è vicina al confine. Ho cercato sul web e non ho trovato nulla: solo alcuni solutori SAT, ma nessun solutore #SAT. Ecco perché l'ho chiesto qui. Naturalmente so di poter scrivere il mio codice che utilizza un solutore SAT come motore per contare le soluzioni, ma stavo cercando qualcosa di già fatto e pronto per l'uso.
Giorgio Camerani,

12
Vorrei essere in disaccordo. Penso che tali domande rientrino nell'ambito e dovrebbero esserlo!
Suresh Venkat,

concordare la sua portata. A proposito / imho non è troppo pratico per costruire un solutore #SAT da un risolutore SAT a meno che uno non abbia il codice sorgente e anche in quel caso, non così pratico, tranne che per formule molto piccole, a causa di un brutto esponenziale esponenziale. di solito sarebbero necessarie tecniche speciali uniche per #SAT e non per SAT ...
vzn

Risposte:



16

Puoi anche provare il solutore #SAT "sharpSAT" ( sito web , github ) per contare il numero di assegnazioni soddisfacenti delle formule CNF.


11

Un'opzione è utilizzare una libreria BDD, come JavaBDD . Tutte queste librerie hanno una funzione che conta le soluzioni velocemente o, almeno, rendono semplice scrivere una tale funzione. Lo svantaggio, tuttavia, è che la costruzione del BDD sarà lenta in molti casi e potrebbe richiedere molta memoria.

mnO(mn)m+n


7

Argomento correlato: Miglior solutore SAT .


1
Grazie Sadeq. L'argomento che hai indicato sembra essere orientato alla teoria. Elenca diversi documenti su come ridurre il limite superiore. È molto interessante, ma cercavo un'implementazione funzionante pronta per l'uso.
Giorgio Camerani,

2
Sei il benvenuto. Tra i link citati lì, ce n'era uno che era puramente pratico: satcompetition.org . Penso che tu possa trovare ottime implementazioni lì.
MS Dousti,



5

Ho scritto un piccolo modello / enumeratore implicito principale . Questo può già essere usato per il conteggio dei modelli con l'enumerazione dei modelli, ma non è molto pratico. Se qualcuno è interessato, posso estenderlo in modo che conti i modelli dalle prime implicazioni.


2

Il sito web BeyondNP contiene un buon inventario degli strumenti esistenti per risolvere #SAT (e altri problemi relativi relativi alle formule CNF). È inoltre possibile trovare un elenco di strumenti per il conteggio approssimativo dei modelli e la compilazione delle conoscenze (il compito di trasformare il CNF in una struttura di dati, si spera succinta, che spesso supporta il conteggio dei modelli temporali polinomiali).

È inoltre possibile trovare un elenco di strumenti per la preelaborazione di formule CNF che possono essere utili per migliorare le prestazioni dei contatori di modelli e vari benchmark .



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.