DeepAI AI Chat
Log In Sign Up

Symbolic Execution + Model Counting + Entropy Maximization = Automatic Search Synthesis

09/23/2020
by   Mara Downing, et al.
0

We present a method of automatically synthesizing steps to solve search problems. Given a specification of a search problem, our approach uses symbolic execution to analyze the specification in order to extract a set of constraints which model the problem. These constraints are used in a process called model counting, which is leveraged to compute probability distributions relating search steps to predicates about an unknown target. The probability distribution functions determine an information gain objective function based on Shannon entropy, which, when maximized, yields the next optimal step of the search. We prove that our algorithm converges to a correct solution, and discuss computational complexity issues. We implemented a domain specific language in which to write search problem specifications, enabling our static analysis phase. Our experiments demonstrate the effectiveness of our approach on a set of search problem case studies inspired by the domains of software security, computational geometry, AI for games, and user preference ranking.

READ FULL TEXT
04/03/2021

Input Validation with Symbolic Execution

Symbolic execution has always been plagued by the inability to handle pr...
05/14/2019

Incremental Adaptive Attack Synthesis

Information leakage is a significant problem in modern software systems....
07/26/2019

Attack Synthesis for Strings using Meta-Heuristics

Information leaks are a significant problem in modern computer systems a...
01/26/2023

Synthesizing Specifications

Every program should always be accompanied by a specification that descr...
01/25/2023

LTL Reactive Synthesis with a Few Hints

We study a variant of the problem of synthesizing Mealy machines that en...
05/26/2021

Automated Repair of Unrealisable LTL Specifications Guided by Model Counting

The reactive synthesis problem consists of automatically producing corre...
06/17/2020

Synthesizing Tasks for Block-based Programming

Block-based visual programming environments play a critical role in intr...