Abstract
We address the non-redundant random generation of k words of length n in a context-free language. Additionally, we want to avoid a predefined set of words. We study a rejection-based approach, whose worst-case time complexity is shown to grow exponentially with k for some specifications and in the limit case of a coupon collector. We propose two algorithms respectively based on the recursive method and on an unranking approach. We show how careful implementations of these algorithms allow for a non-redundant generation of k words of length n in O(k×n×logn) arithmetic operations, after a precomputation of Θ(n) numbers. The overall complexity is therefore dominated by the generation of k words, and the non-redundancy comes at a negligible cost.
| Original language | English |
|---|---|
| Pages (from-to) | 177-194 |
| Number of pages | 18 |
| Journal | Theoretical Computer Science |
| Volume | 502 |
| DOIs | |
| Publication status | Published - 2 Sept 2013 |
Keywords
- Context-free languages
- Non-redundant generation
- Random generation
- Recursive random generation
- Unranking
- Weighted grammars
Fingerprint
Dive into the research topics of 'Non-redundant random generation algorithms for weighted context-free grammars'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver