Fast Algorithms to Generate Necklaces, Unlabeled Necklaces, and Irreducible Polynomials over GF(2)

Many applications call for exhaustive lists of strings subject to various constraints, such as inequivalence under group actions. A k-ary necklace is an equivalence class of k-ary strings under rotation (the cyclic group). A k-ary unlabeled necklace is an equivalence class of k-ary strings under rot...

Full description

Saved in:
Bibliographic Details
Published in:Journal of algorithms Vol. 37; no. 2; pp. 267 - 282
Main Authors: Cattell, Kevin, Ruskey, Frank, Sawada, Joe, Serra, Micaela, Miers, C.Robert
Format: Journal Article
Language:English
Published: San Diego, CA Elsevier Inc 01.11.2000
Elsevier
Subjects:
ISSN:0196-6774, 1090-2678
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Many applications call for exhaustive lists of strings subject to various constraints, such as inequivalence under group actions. A k-ary necklace is an equivalence class of k-ary strings under rotation (the cyclic group). A k-ary unlabeled necklace is an equivalence class of k-ary strings under rotation and permutation of alphabet symbols. We present new, fast, simple, recursive algorithms for generating (i.e., listing) all necklaces and binary unlabeled necklaces. These algorithms have optimal running times in the sense that their running times are proportional to the number of necklaces produced. The algorithm for generating necklaces can be used as the basis for efficiently generating many other equivalence classes of strings under rotation and has been applied to generating bracelets, fixed density necklaces, and chord diagrams. As another application, we describe the implementation of a fast algorithm for listing all degree n irreducible and primitive polynomials over GF(2).
ISSN:0196-6774
1090-2678
DOI:10.1006/jagm.2000.1108