Sto cercando di risolvere una grande formula CNF utilizzando un SAT solver
. La formula (in formato DIMACS) ha 4,697,898,048 = 2^32 + 402,930,752
clausole, e tutti i solutori SAT che ho trovato sono problemi con esso:Risoluzione SAT con più di 2^32 clausole
- (P)lingeling rapporti che ci sono "troppe clausole" (vale a dire più clausole che la riga di intestazione specifica, ma questo non è il caso)
- CryptoMiniSat4 & picosat pretesa di leggere la riga di intestazione come dicendo 402,930,752 clausole che sono 2^32 troppo pochi
- Glucose sembra analizzare 98,916,961 clausole e poi reports to have solved the formula as UNSAT utilizzando semplificazione, ma t il suo è improbabile che sia corretto (un segmento iniziale della formula questo breve è molto probabile che sia SAT).
Qualcuno è a conoscenza di un solutore SAT in grado di gestire file così grandi? O c'è qualcosa come un interruttore del compilatore che può aggirare questo tipo di comportamento? Credo che tutti i solutori siano compilati per 64bit linux. (Sono un po 'un noob quando si tratta di gestire numeri così grandi, mi dispiace.)
Forse puoi provare un solutore SAT distribuito. –
Questi OSS sono? È possibile modificarli per utilizzare interi 64b. – Jeff
@Jeff: sì, sono tutti open source C o forse C++, non so come dire la differenza. –