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.
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.
Risposte:
Puoi farlo con SAT4J , semplicemente ripetendo su tutti i modelli: http://www.sat4j.org/howto.php#models . Immagino che la maggior parte dei solutori di SAT abbia questa capacità.
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.
Argomento correlato: Miglior solutore SAT .
Il migliore che ho trovato è "compilatore c2d". http://reasoning.cs.ucla.edu/c2d/
Usa d-DNNF e hai bisogno dell'opzione -count .
Il solutore MBound qui fornito http://www.cs.cornell.edu/~sabhar/ può fornire conteggi dei modelli con garanzie probabilistiche. È molto più veloce dell'enumerazione di tutte le soluzioni.
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.
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 .
Ecco uno chiamato tensorCSP e basato su uno strumento chiamato reti tensoriali. È spiegato in questo documento .
Il glucosio è un solutore SAT molto efficiente sviluppato all'università di Bordeaux.