Show simple item record

dc.contributor.authorSCOTT, JOSEPH
dc.date.accessioned2024-05-30 18:55:33 (GMT)
dc.date.available2024-05-30 18:55:33 (GMT)
dc.date.issued2024-05-30
dc.date.submitted2024-05-17
dc.identifier.urihttp://hdl.handle.net/10012/20632
dc.description.abstractAutomated reasoning (AR) and machine learning (ML) are two of the foundational pillars of artificial intelligence (AI) and yet have developed largely independently. The integration of these two sub-fields holds the tremendous potential to address problems that are otherwise difficult to solve, especially in the context of logic solvers, which are blackbox deductive reasoning engines designed to tackle NP-Hard problems. The early 2000s witnessed a `silent revolution' leading to the emergence of highly efficient boolean satisfiability (SAT), satisfiability modulo theories (SMT), and mixed-integer linear programming (MILP) solvers, capable of scaling to hundreds of millions of variables and being deployed billions of times daily in various industries. These advancements were primarily due to novel symbolic reasoning techniques as well as the use of ML in solvers. Building on previous successes, this thesis presents several advances in the use of ML in solvers. A particular way of characterizing the value of using ML in the context of automated reasoning tools is the following: under widely believed complexity-theoretic assumptions, we do not expect any one solver or even a fixed sequence of solvers to perform well on all classes of instances. In fact, there is considerable empirical support for the aforementioned observation. Hence, it is reasonable for us to research methods that enable solver users to adaptively select a (sequence of) solver(s) for any given instance. ML provides a promising means to realize such (adaptive) algorithm selection methods. We make the following contributions in this thesis: First, inspired by the success of the algorithm selection tool SATZilla for SAT solvers, we present the design and implementation of MachSMT, an algorithm selection tool for SMT solvers. MachSMT supports the entirety of the SMT-LIB and leverages ML over state-of-the-art SMT solvers. We provide empirical evidence for the value of algorithm selection and efficacy of MachSMT over three broad SMT usage scenarios, namely, solver selection for instances obtained from SMT-COMP (an annual competition for SMT solvers), configuration selection for a given solver (cvc5) over a large industrial benchmark suite, and finally for solver selection for a specific domain (network verification). Second, we present the design and implementation of a novel adaptive algorithm selection tool (aka, a {\it meta-solver}), called \goose, for neural network verification solvers, a class of tools aimed at improving the trustworthiness of ML systems. Traditional algorithm selection tools (e.g., MachSMT) typically tend to be non-adaptive, i.e., once a solver is selected for a given instance this selection is not changed at runtime. By contrast, a key novelty here is that \goose implements an {\it adaptive} sequential portfolio, i.e., it calls a set of subsolvers in a sequence, wherein the order in which subsolvers are called is determined adaptively based on information from their online and offline performance histories. We have implemented a variety of complete and incomplete subsolvers in \goose (in addition to using a set of off-the-shelf ones), and the following synergizing techniques to implement its adaptive sequential portfolio: algorithm selection, probabilistic satisfiability inference, and time-iterative deepening. Additionally, in the spirit of improving solver performance via ML techniques, we present \banditfuzz, an RL algorithm for relative performance fuzzing of solvers. While \machsmt and \goose leverage supervised learning to make solvers faster, \banditfuzz leverages RL to search for performance issues in solvers. \banditfuzz searches for short problem instances for which a set of target solvers is under-performant, while a set of reference solvers is performant. Such instances expose performance issues in solvers, and are often caused by solver developer errors (e.g., missing rewrite rules, errors in heuristics, etc.). We additionally introduce \pierce, a versatile and extensible testing tool aimed at solvers for the neural network verification (NNV) problem. At its core, \pierce implements a fuzzing engine over the Open Neural Network Exchange (ONNX) -- a standardized model format for deep learning and classical ML, and VNN-LIB -- a specification standard over the input-output behavior of ML systems. \pierce supports the entirety of the VNN-LIB and most of ONNX v18.en
dc.language.isoenen
dc.publisherUniversity of Waterlooen
dc.subjectConstraint Solvingen
dc.subjectAIen
dc.subjectVerificationen
dc.subjectMachine Learningen
dc.subjectFormal Methodsen
dc.subjectNeural Networksen
dc.titleMeta-Solving via Machine Learning for Automated Reasoningen
dc.typeDoctoral Thesisen
dc.pendingfalse
uws-etd.degree.departmentDavid R. Cheriton School of Computer Scienceen
uws-etd.degree.disciplineComputer Scienceen
uws-etd.degree.grantorUniversity of Waterlooen
uws-etd.degreeDoctor of Philosophyen
uws-etd.embargo.terms0en
uws.contributor.advisorSCOTT, JOSEPH
uws.contributor.affiliation1Faculty of Mathematicsen
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.typeOfResourceTexten
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record


UWSpace

University of Waterloo Library
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519 888 4883

All items in UWSpace are protected by copyright, with all rights reserved.

DSpace software

Service outages