30,784 research outputs found
Controlled non uniform random generation of decomposable structures
Consider a class of decomposable combinatorial structures, using different
types of atoms \Atoms = \{\At_1,\ldots ,\At_{|{\Atoms}|}\}. We address the
random generation of such structures with respect to a size and a targeted
distribution in of its \emph{distinguished} atoms. We consider two
variations on this problem. In the first alternative, the targeted distribution
is given by real numbers \TargFreq_1, \ldots, \TargFreq_k such that 0 <
\TargFreq_i < 1 for all and \TargFreq_1+\cdots+\TargFreq_k \leq 1. We
aim to generate random structures among the whole set of structures of a given
size , in such a way that the {\em expected} frequency of any distinguished
atom \At_i equals \TargFreq_i. We address this problem by weighting the
atoms with a -tuple \Weights of real-valued weights, inducing a weighted
distribution over the set of structures of size . We first adapt the
classical recursive random generation scheme into an algorithm taking
\bigO{n^{1+o(1)}+mn\log{n}} arithmetic operations to draw structures from
the \Weights-weighted distribution. Secondly, we address the analytical
computation of weights such that the targeted frequencies are achieved
asymptotically, i. e. for large values of . We derive systems of functional
equations whose resolution gives an explicit relationship between \Weights
and \TargFreq_1, \ldots, \TargFreq_k. Lastly, we give an algorithm in
\bigO{k n^4} for the inverse problem, {\it i.e.} computing the frequencies
associated with a given -tuple \Weights of weights, and an optimized
version in \bigO{k n^2} in the case of context-free languages. This allows
for a heuristic resolution of the weights/frequencies relationship suitable for
complex specifications. In the second alternative, the targeted distribution is
given by a natural numbers such that
where is the number of undistinguished atoms.
The structures must be generated uniformly among the set of structures of size
that contain {\em exactly} atoms \At_i (). We give
a \bigO{r^2\prod_{i=1}^k n_i^2 +m n k \log n} algorithm for generating
structures, which simplifies into a \bigO{r\prod_{i=1}^k n_i +m n} for
regular specifications
Polynomial tuning of multiparametric combinatorial samplers
Boltzmann samplers and the recursive method are prominent algorithmic
frameworks for the approximate-size and exact-size random generation of large
combinatorial structures, such as maps, tilings, RNA sequences or various
tree-like structures. In their multiparametric variants, these samplers allow
to control the profile of expected values corresponding to multiple
combinatorial parameters. One can control, for instance, the number of leaves,
profile of node degrees in trees or the number of certain subpatterns in
strings. However, such a flexible control requires an additional non-trivial
tuning procedure. In this paper, we propose an efficient polynomial-time, with
respect to the number of tuned parameters, tuning algorithm based on convex
optimisation techniques. Finally, we illustrate the efficiency of our approach
using several applications of rational, algebraic and P\'olya structures
including polyomino tilings with prescribed tile frequencies, planar trees with
a given specific node degree distribution, and weighted partitions.Comment: Extended abstract, accepted to ANALCO2018. 20 pages, 6 figures,
colours. Implementation and examples are available at [1]
https://github.com/maciej-bendkowski/boltzmann-brain [2]
https://github.com/maciej-bendkowski/multiparametric-combinatorial-sampler
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
Multi-dimensional Boltzmann Sampling of Languages
This paper addresses the uniform random generation of words from a
context-free language (over an alphabet of size ), while constraining every
letter to a targeted frequency of occurrence. Our approach consists in a
multidimensional extension of Boltzmann samplers \cite{Duchon2004}. We show
that, under mostly \emph{strong-connectivity} hypotheses, our samplers return a
word of size in and exact frequency in
expected time. Moreover, if we accept tolerance
intervals of width in for the number of occurrences of each
letters, our samplers perform an approximate-size generation of words in
expected time. We illustrate these techniques on the
generation of Tetris tessellations with uniform statistics in the different
types of tetraminoes.Comment: 12p
Random generation of finitely generated subgroups of a free group
We give an efficient algorithm to randomly generate finitely generated
subgroups of a given size, in a finite rank free group. Here, the size of a
subgroup is the number of vertices of its representation by a reduced graph
such as can be obtained by the method of Stallings foldings. Our algorithm
randomly generates a subgroup of a given size n, according to the uniform
distribution over size n subgroups. In the process, we give estimates of the
number of size n subgroups, of the average rank of size n subgroups, and of the
proportion of such subgroups that have finite index. Our algorithm has average
case complexity \O(n) in the RAM model and \O(n^2\log^2n) in the bitcost
model
Random-bit optimal uniform sampling for rooted planar trees with given sequence of degrees and Applications
In this paper, we redesign and simplify an algorithm due to Remy et al. for
the generation of rooted planar trees that satisfies a given partition of
degrees. This new version is now optimal in terms of random bit complexity, up
to a multiplicative constant. We then apply a natural process
"simulate-guess-and-proof" to analyze the height of a random Motzkin in
function of its frequency of unary nodes. When the number of unary nodes
dominates, we prove some unconventional height phenomenon (i.e. outside the
universal square root behaviour.)Comment: 19 page
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
- …