Jak mogę uzyskać losową formułę zdaniową w haskell? Najlepiej potrzebuję formuły w CNF, ale chciałbymJak wygenerować losową formułę zdaniową (CNF) w haskell?
Chcę używać formuły do testowania wydajności, który obejmuje również solvers SAT. Proszę zwrócić uwagę, że moim celem nie jest sprawdzenie działania solwerów SAT! Nie interesują mnie też bardzo trudne formuły, więc trudność powinna być losowa lub zawierać jedynie proste formuły.
Wiem, że moje dane z prawdziwego świata prowadzą do formuł zdań, które nie są trudne dla solwerów SAT.
W tej chwili używam bibliotek hatt i SBV jako struktur danych do pracy z formułami zdaniowymi. Spojrzałem również na bibliotekę hGen, być może można jej użyć do generowania losowych formuł. Jednak nie ma dokumentacji i nie zaszedłem daleko, patrząc na kod źródłowy hGen.
Mój cel polega na wybraniu n
i odzyskaniu formuły zawierającej zmienne boolean n
.
monadrandom ten powinien być naprawdę nazywa się "losowość monada" nie "nondetermism monada" –
@PhilipJF, myślałem o tym, że '[]' & co zwykle nazywa niedeterminizm, ale nie widzę powodu, dla którego nazwanie Rand niedoterministyczną monadą byłoby niewłaściwe. Jest w tej samej rodzinie, semantycznie. Czy znasz dobry powód? – luqui
cóż, monadrandom tworzy rozkład prawdopodobieństwa wyników, który tak naprawdę nie jest tym samym, co niedeterminizm, który, mówiąc semantycznie, po prostu daje ci zestaw. –