Masterarbeit, 2020
66 Seiten, Note: Sehr gut
1 Introduction
1.1 The Idea about DualSat
2 SAT-Solver Technology
2.1 Preliminaries
2.1.1 Encoding a Problem as SAT
2.1.2 Resolution, Preprocessing
2.2 DPLL Solvers
2.2.1 DPLL with Chronological Backtracking
2.2.2 Clause Learning
2.2.3 DPLL with Conflict Directed Backjumping
2.2.4 DPLL with Stack Redo
2.2.4.1 Practical Examples for the Stack Redo
2.3 DNNF, Extended Solution Classes and Other Known Algorithms for SAT-Solving
2.4 Efficient Data Structures for SAT-Solvers
2.4.1 Literal Counting
2.4.2 Watched Literals and Lazy Data Structures
2.4.3 The Data Structures of DualSat
2.5 DualSat
2.5.1 Unentangled Literal Detection
2.5.2 The Variable Selection Heuristic of DualSat
2.5.3 Some Other Implementation Details of DualSat
2.5.4 Wide Integer Implementation for DualSat
2.6 Interesting #SAT solvers
2.6.1 Clasp and Nogoods in DualSat
2.6.2 sharpSAT and Component Caching
3 Conclusion and Outlook
4 Benchmarks
4.1 rutgers.edu DualSat
4.2 rutgers.edu Clasp
4.3 rutgers.edu sharpSAT
4.4 rutgers.edu one solution DualSat
4.5 rutgers.edu one solution Clasp
4.6 rutgers.edu one solution ZChaff
4.7 DQMR DualSat
Epilogue
The primary objective of this thesis is the development and implementation of DualSat, a SAT solver specifically designed to enumerate all solutions to a given propositional formula, rather than just returning a single satisfying assignment. The work explores advanced data structures, conflict-directed backjumping, and a novel "stack redo" mechanism to efficiently navigate the search space of Conjunctive Normal Form (CNF) instances.
1.1 The Idea about DualSat
The initial idea about DualSat was to write a solver that returns not just one but all solutions to a given problem. This is different from plain SAT solvers which only return the first solution they can find and actually different from merely counting solutions. This may be important if a problem cannot be expressed solely by SAT as a CNF but if you have a coherent optimization problem on the number of satisfiable instances. That is why DualSat aims to return solution classes that are as compact as possible. One solution class encompasses many solutions on which a postprocessor may f.i. execute a non-linear optimization problem later on. There are plenty of NP-hard problems in computer science and some are linked to not just return any solution but to find the best possible solution of a host of solutions.
A simple solution class defines a zero or one value for a number of variables and leaves some other variables unassigned. You may write such a solution class as 01xx1 which means x1=0, x2=1, x5=1. In deed the very first solvers like CDP did already return such simple solution classes [BHMW08]. However the old style literal counting scheme of this implementation has some time been replaced with lazy data structures and watched literals. These require that all variables become assigned before a solution is detected [LyMS05].
1 Introduction: Provides a comprehensive overview of the progress in SAT solving and motivates the need for solvers that can find all solutions to NP-hard problems.
2 SAT-Solver Technology: Details the fundamental algorithms and theoretical background, including DPLL, clause learning, and the specific architecture of DualSat.
3 Conclusion and Outlook: Evaluates the performance of DualSat against established solvers and suggests future enhancements like hybrid data structures and improved preprocessing.
4 Benchmarks: Presents empirical data and execution results for DualSat and competing solvers across a wide range of test instances.
Epilogue: Contains corrections, errata, and a reflective discussion on the development process and the challenges encountered.
SAT-solver, DualSat, DPLL, backtracking, stack redo, clause learning, CNF, model counting, conflict-directed backjumping, propositional logic, search space, solution enumeration, performance benchmarking.
The work focuses on the development of DualSat, a SAT solver aimed at efficiently finding all solutions for a given CNF formula, addressing the limitations of solvers that only return single solutions.
Key contributions include the stack redo algorithm, unentangled literal detection, and the use of dual data structures to improve backtracking and search efficiency.
The primary objective is to enable the enumeration of solution classes in a compact format, facilitating further optimization tasks on those sets of solutions.
The solver utilizes modified DPLL algorithms, conflict-directed backjumping, and optimized data structures such as watched literals and literal counters.
Performance is validated through extensive benchmarking against established tools like Clasp, ZChaff, and sharpSAT across diverse problem instances.
The work is characterized by terms such as SAT-solving, stack redo, clause learning, and model counting within the context of propositional satisfiability.
The stack redo feature preserves previous work during backtracking, allowing the solver to re-enter search branches more efficiently without restarting from scratch after encountering conflicts.
It allows the solver to identify when variables can be safely determined without needing to explore all branches, significantly speeding up the enumeration of solutions.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

