6,183 research outputs found
Program Synthesis using Natural Language
Interacting with computers is a ubiquitous activity for millions of people.
Repetitive or specialized tasks often require creation of small, often one-off,
programs. End-users struggle with learning and using the myriad of
domain-specific languages (DSLs) to effectively accomplish these tasks.
We present a general framework for constructing program synthesizers that
take natural language (NL) inputs and produce expressions in a target DSL. The
framework takes as input a DSL definition and training data consisting of
NL/DSL pairs. From these it constructs a synthesizer by learning optimal
weights and classifiers (using NLP features) that rank the outputs of a
keyword-programming based translation. We applied our framework to three
domains: repetitive text editing, an intelligent tutoring system, and flight
information queries. On 1200+ English descriptions, the respective synthesizers
rank the desired program as the top-1 and top-3 for 80% and 90% descriptions
respectively
Learning-Based Synthesis of Safety Controllers
We propose a machine learning framework to synthesize reactive controllers
for systems whose interactions with their adversarial environment are modeled
by infinite-duration, two-player games over (potentially) infinite graphs. Our
framework targets safety games with infinitely many vertices, but it is also
applicable to safety games over finite graphs whose size is too prohibitive for
conventional synthesis techniques. The learning takes place in a feedback loop
between a teacher component, which can reason symbolically about the safety
game, and a learning algorithm, which successively learns an overapproximation
of the winning region from various kinds of examples provided by the teacher.
We develop a novel decision tree learning algorithm for this setting and show
that our algorithm is guaranteed to converge to a reactive safety controller if
a suitable overapproximation of the winning region can be expressed as a
decision tree. Finally, we empirically compare the performance of a prototype
implementation to existing approaches, which are based on constraint solving
and automata learning, respectively
Sparse Positional Strategies for Safety Games
We consider the problem of obtaining sparse positional strategies for safety
games. Such games are a commonly used model in many formal methods, as they
make the interaction of a system with its environment explicit. Often, a
winning strategy for one of the players is used as a certificate or as an
artefact for further processing in the application. Small such certificates,
i.e., strategies that can be written down very compactly, are typically
preferred. For safety games, we only need to consider positional strategies.
These map game positions of a player onto a move that is to be taken by the
player whenever the play enters that position. For representing positional
strategies compactly, a common goal is to minimize the number of positions for
which a winning player's move needs to be defined such that the game is still
won by the same player, without visiting a position with an undefined next
move. We call winning strategies in which the next move is defined for few of
the player's positions sparse.
Unfortunately, even roughly approximating the density of the sparsest
strategy for a safety game has been shown to be NP-hard. Thus, to obtain sparse
strategies in practice, one either has to apply some heuristics, or use some
exhaustive search technique, like ILP (integer linear programming) solving. In
this paper, we perform a comparative study of currently available methods to
obtain sparse winning strategies for the safety player in safety games. We
consider techniques from common knowledge, such as using ILP or SAT
(satisfiability) solving, and a novel technique based on iterative linear
programming. The results of this paper tell us if current techniques are
already scalable enough for practical use.Comment: In Proceedings SYNT 2012, arXiv:1207.055
- …