1110176
Sampling Unlabeled Biconnected Planar Graphs
We present an expected polynomial time algorithm to generate a 2-connected unlabeled planar graph uniformly at random. To do this we first derive recurrence formulas to count the exact number of rooted 2-connected planar graphs, based on a decomposition along the connectivity structure. For 3-connected planar graphs we use the fact that they have a unique embedding on the sphere. Special care has to be taken for rooted graphs that have a sense-reversing or a pole-exchanging automorphism. We prove a bijection between such symmetric objects and certain colored networks. These colored networks can again be decomposed along their connectivity structure. All the numbers can be evaluated in polynomial time by dynamic programming. To generate 2-connected unlabeled planar graphs without a root uniformly at random we apply rejection sampling and obtain an expected polynomial time algorithm.
16143186
Generating Labeled Planar Graphs Uniformly at Random
We present an expected polynomial time algorithm to generate a labeled planar graph uniformly at random. To generate the planar graphs, we derive recurrence formulas that count all such graphs with n vertices and m edges, based on a decomposition into 1-, 2-, and 3- connected components. For 3-connected graphs we apply a recent random generation algorithm by Schaeffer and a counting formula by Mullin and Schellenberg.
10519565
An unbiased pointing operator for unlabeled structures, with applications to counting and sampling
We introduce a general method to count and randomly sample unlabeled combinatorial structures. The approach is based on pointing unlabeled structures in an "unbiased" way, i.e., in such a way that a structure of size n gives rise to n pointed structures. We develop a specific Pólya theory for the corresponding pointing operator, and present a sampling framework relying both on the principles of Boltzmann sampling and on Pólya operators. Our method is illustrated on several examples: in each case, we provide enumerative results and efficient random samplers. The approach applies to unlabeled families of plane and non-plane unrooted trees, and tree-like structures in general, but also to cactus graphs, outerplanar graphs, RNA secondary structures, and classes of planar maps.
1472614
Fast Algorithm for Stochastic Tree Computation
In this paper, a recursive algorithm that can build complex tree structure quickly is presented briefly. The plant structural growth is based on a dual-scale automaton, in which 'macrostate' and 'microstate' are used to simulate the growth unit and the metamers inside growth unit separately. Each state is characterized by its 'physiological age'. The automaton is non-deterministic in case that the probabilities exist in each growth cycle simulating the bud activity. Since the main plant structure and branches are statistically similar, and each structure can be decomposed into an axis and substructures, simulation is begun from smallest structures that have no further branch, and that information are used when such kind of structures appear in other branches. To keep the diversity of tree structure, several stochastic structures will be simulated at one time for a given physiological and chronological age. This algorithm can save a lot of time compared to node-by-node simulation. Verification is done both in organ number counting and visualization.
499477
jMocha: a model checking tool that exploits design structure
Model checking is a practical tool for automated debugging of embedded software. In model checking, a high-level description of a system is compared against a logical correctness requirement to discover inconsistencies. Since model checking is based on exhaustive state-space exploration and the size of the state space of a design grows exponentially with the size of the description, scalability remains a challenge. We have thus developed techniques for exploiting modular design structure during model checking, and the model checker jMocha (Java MOdel-CHecking Algorithm) is based on this theme. Instead of manipulating unstructured state-transition graphs, it supports the hierarchical modeling framework of reactive modules. jMocha is a growing interactive software environment for specification, simulation and verification, and is intended as a vehicle for the development of new verification algorithms and approaches. It is written in Java and uses native C-code BDD libraries from VIS. jMocha offers: (1) a GUI that looks familiar to Windows/Java users; (2) a simulator that displays traces in a message sequence chart fashion; (3) requirements verification both by symbolic and enumerative model checking; (4) implementation verification by checking trace containment; (5) a proof manager that aids compositional and assume-guarantee reasoning; and (6) SLANG (Scripting LANGuage) for the rapid and structured development of new verification algorithms. jMocha is available publicly at ; it is a successor and extension of the original Mocha tool that was entirely written in C.