109 research outputs found

    Automated design of boolean satisfiability solvers employing evolutionary computation

    Get PDF
    Modern society gives rise to complex problems which sometimes lend themselves to being transformed into Boolean satisfiability (SAT) decision problems; this thesis presents an example from the program understanding domain. Current conflict-driven clause learning (CDCL) SAT solvers employ all-purpose heuristics for making decisions when finding truth assignments for arbitrary logical expressions called SAT instances. The instances derived from a particular problem class exhibit a unique underlying structure which impacts a solver\u27s effectiveness. Thus, tailoring the solver heuristics to a particular problem class can significantly enhance the solver\u27s performance; however, manual specialization is very labor intensive. Automated development may apply hyper-heuristics to search program space by utilizing problem-derived building blocks. This thesis demonstrates the potential for genetic programming (GP) powered hyper-heuristic driven automated design of algorithms to create tailored CDCL solvers, in this case through custom variable scoring and learnt clause scoring heuristics, with significantly better performance on targeted classes of SAT problem instances. As the run-time of GP is often dominated by fitness evaluation, evaluating multiple offspring in parallel typically reduces the time incurred by fitness evaluation proportional to the number of parallel processing units. The naive synchronous approach requires an entire generation to be evaluated before progressing to the next generation; as such, heterogeneity in the evaluation times will degrade the performance gain, as parallel processing units will have to idle until the longest evaluation has completed. This thesis shows empirical evidence justifying the employment of an asynchronous parallel model for GP powered hyper-heuristics applied to SAT solver space, rather than the generational synchronous alternative, for gaining speed-ups in evolution time. Additionally, this thesis explores the use of a multi-objective GP to reveal the trade-off surface between multiple CDCL attributes --Abstract, page iii

    CDCL SAT solver heuristics: Clause management, instance structure, and decisions

    Get PDF
    The Boolean satisfiability problem or SAT is the problem of deciding if a Boolean formula has a satisfying assignment. It was the first problem shown to be NP-complete, and remains one of the most well-known and studied NP-complete problems. We do not expect to find a polynomial time algorithm that solves all SAT problems, as this would imply equivalence of the complexity classes P and NP, which seems unlikely. However, there are algorithms and heuristics to solve SAT problems that are often effective in practice. A SAT solver is a program that takes as input a Boolean formula and tries to find a satisfying assignment for it. The most-used algorithm in SAT solvers intended for solving real-world problems is known as Conflict Driven Clause Learning, abbreviated CDCL. Due to its broad usage, improving the performance of these solvers can have a large impact on other fields that use SAT solvers and also make SAT solving a useful tool for more applications. The practical performance of CDCL SAT solvers depends critically on a small number of key heuristic mechanisms, and works on these heuristics over the past 20 years have improved CDCL solver performance significantly. This dissertation contributes to our understanding of two of the key heuristic mechanisms, known as the decision heuristic and the clause database management scheme. There are two main foci, which are closely related. First, we focus on developing light weighted methods to use measures of instance structure in solver heuristics. The structure of instances arising from real-world problems seems to be one of the main features that makes them special but there is little work exploiting structural properties within CDCL solvers. We introduce a new structural measure for SAT instances, called Centrality, and show that this measure can be used in both decision and clause management heuristics to improve solver performance. Second, we study different components of clause database management schemes in order to understand and improve them. We categorize clauses as permanent and temporary, show that the permanent set is key to solver performance and propose modifications to the criteria for permanent clauses to improve performance. In recent years, clause database management strategies used in high-performance solvers have become complex, making their study and refinement difficult. We introduce a new clause reduction scheme, called online deletion, which is simple to implement and results in comparable performance

    Proceedings of SAT Competition 2021 : Solver and Benchmark Descriptions

    Get PDF
    Non peer reviewe

    Explaining SAT Solving Using Causal Reasoning

    Get PDF
    The past three decades have witnessed notable success in designing efficient SAT solvers, with modern solvers capable of solving industrial benchmarks containing millions of variables in just a few seconds. The success of modern SAT solvers owes to the widely-used CDCL algorithm, which lacks comprehensive theoretical investigation. Furthermore, it has been observed that CDCL solvers still struggle to deal with specific classes of benchmarks comprising only hundreds of variables, which contrasts with their widespread use in real-world applications. Consequently, there is an urgent need to uncover the inner workings of these seemingly weak yet powerful black boxes. In this paper, we present a first step towards this goal by introducing an approach called {CausalSAT}, which employs causal reasoning to gain insights into the functioning of modern SAT solvers. {CausalSAT} initially generates observational data from the execution of SAT solvers and learns a structured graph representing the causal relationships between the components of a SAT solver. Subsequently, given a query such as whether a clause with low literals blocks distance (LBD) has a higher clause utility, {CausalSAT} calculates the causal effect of LBD on clause utility and provides an answer to the question. We use {CausalSAT} to quantitatively verify hypotheses previously regarded as "rules of thumb" or empirical findings, such as the query above or the notion that clauses with high LBD experience a rapid drop in utility over time. Moreover, {CausalSAT} can address previously unexplored questions, like which branching heuristic leads to greater clause utility in order to study the relationship between branching and clause management. Experimental evaluations using practical benchmarks demonstrate that {CausalSAT} effectively fits the data, verifies four "rules of thumb", and provides answers to three questions closely related to implementing modern solvers

    Proceedings of SAT Competition 2017 : Solver and Benchmark Descriptions

    Get PDF
    corecore