Come posso ottenere una formula proposizionale casuale in haskell? Preferibilmente ho bisogno della formula in CNF, ma vorreiCome generare una formula proposizionale casuale (CNF) in haskell?
Voglio usare le formule per il test delle prestazioni che coinvolge anche i risolutori SAT. Tieni presente che il mio obiettivo non è quello di testare le prestazioni dei solutori SAT! Inoltre, non sono interessato a formule molto difficili, quindi la difficoltà dovrebbe essere casuale o comunque includere solo formule semplici.
So che i dati del mio mondo reale portano a formule proposizionali che non sono difficili per i risolutori SAT.
Al momento utilizzo le librerie hatt e SBV come strutture dati per lavorare con formule proposizionali. Ho anche guardato la libreria hGen, forse può essere usata per generare le formule casuali. Tuttavia non c'è documentazione e non sono andato lontano guardando il codice sorgente di hGen.
Il mio obiettivo è scegliere n
e recuperare una formula che include le variabili booleane n
.
monadrandom questo in realtà dovrebbe essere chiamato "casualità monade", non "nondetermism monade" –
@PhilipJF, ho pensato che, che '[]' & co di solito vengono chiamati Nondeterminismo, ma non vedo alcun motivo per cui chiamare Rand come monade di un nondeterminismo sarebbe scorretto. È nella stessa famiglia, semanticamente parlando. Conosci una buona ragione? – luqui
beh, monadrandom produce una distribuzione di probabilità dei risultati, che in realtà non è la stessa cosa del nondeterminismo, che, semanticamente parlando, ti dà solo un set. –