12,315 research outputs found
On the enumeration of closures and environments with an application to random generation
Environments and closures are two of the main ingredients of evaluation in
lambda-calculus. A closure is a pair consisting of a lambda-term and an
environment, whereas an environment is a list of lambda-terms assigned to free
variables. In this paper we investigate some dynamic aspects of evaluation in
lambda-calculus considering the quantitative, combinatorial properties of
environments and closures. Focusing on two classes of environments and
closures, namely the so-called plain and closed ones, we consider the problem
of their asymptotic counting and effective random generation. We provide an
asymptotic approximation of the number of both plain environments and closures
of size . Using the associated generating functions, we construct effective
samplers for both classes of combinatorial structures. Finally, we discuss the
related problem of asymptotic counting and random generation of closed
environemnts and closures
Uniform Random Sampling of Traces in Very Large Models
This paper presents some first results on how to perform uniform random walks
(where every trace has the same probability to occur) in very large models. The
models considered here are described in a succinct way as a set of
communicating reactive modules. The method relies upon techniques for counting
and drawing uniformly at random words in regular languages. Each module is
considered as an automaton defining such a language. It is shown how it is
possible to combine local uniform drawings of traces, and to obtain some global
uniform random sampling, without construction of the global model
Uniform random sampling of planar graphs in linear time
This article introduces new algorithms for the uniform random generation of
labelled planar graphs. Its principles rely on Boltzmann samplers, as recently
developed by Duchon, Flajolet, Louchard, and Schaeffer. It combines the
Boltzmann framework, a suitable use of rejection, a new combinatorial bijection
found by Fusy, Poulalhon and Schaeffer, as well as a precise analytic
description of the generating functions counting planar graphs, which was
recently obtained by Gim\'enez and Noy. This gives rise to an extremely
efficient algorithm for the random generation of planar graphs. There is a
preprocessing step of some fixed small cost. Then, the expected time complexity
of generation is quadratic for exact-size uniform sampling and linear for
approximate-size sampling. This greatly improves on the best previously known
time complexity for exact-size uniform sampling of planar graphs with
vertices, which was a little over .Comment: 55 page
Boltzmann samplers for random generation of lambda terms
Randomly generating structured objects is important in testing and optimizing
functional programs, whereas generating random -terms is more specifically
needed for testing and optimizing compilers. For that a tool called QuickCheck
has been proposed, but in this tool the control of the random generation is
left to the programmer. Ten years ago, a method called Boltzmann samplers has
been proposed to generate combinatorial structures. In this paper, we show how
Boltzmann samplers can be developed to generate lambda-terms, but also other
data structures like trees. These samplers rely on a critical value which
parameters the main random selector and which is exhibited here with
explanations on how it is computed. Haskell programs are proposed to show how
samplers are actually implemented
- …