Naprogramujte sat solver založený na algoritmu DPLL (s unit propagací) a vyhodnoťte jeho výkon na vhodném datasetu. (Další vylepšení jsou volitelná). Očekává se, že studenti se budou snažit o co nejefektivnější implementaci.
Použití programu je
solver input.cnf
kde solver
je jméno spustitelného souboru a
input.cnf
je soubor s formulí v DIMACS
formátu
Na standardní výstup vypíše program následující:
SAT
nebo
UNSAT
SAT
, obsahuje druhý řádek seznam
pravdivých literálů, uspořádaný vzestupně podle čísla proměnné. Pokud je
výsledek UNSAT
, je druhý řádek prázdnýAdresáře n-vars
obsahují formule s n
proměnnými, adresář coloring
obsahuje formule získané z
barvení grafu rozdělené do podadresářů podle velikostí grafu, adresář
pigeon-hole
obsahuje formule získané z formalizace
pigeonhole principu.
Podle splnitelnosti jsou soubory v adresářích sat
a
unsat
.
Odevzdávejte mailem. V příloze pošlete archiv obsahující:
Archiv nesmí obsahovat spustitelné soubory!! Volba jazyka je na studentech, preferuji věci snadno spustitelné na unixovém systému (jiné systémy ale nejsou zakázány).