77 research outputs found

    Limited-Magnitude Error-Correcting Gray Codes for Rank Modulation

    Full text link
    We construct Gray codes over permutations for the rank-modulation scheme, which are also capable of correcting errors under the infinity-metric. These errors model limited-magnitude or spike errors, for which only single-error-detecting Gray codes are currently known. Surprisingly, the error-correcting codes we construct achieve a better asymptotic rate than that of presently known constructions not having the Gray property, and exceed the Gilbert-Varshamov bound. Additionally, we present efficient ranking and unranking procedures, as well as a decoding procedure that runs in linear time. Finally, we also apply our methods to solve an outstanding issue with error-detecting rank-modulation Gray codes (snake-in-the-box codes) under a different metric, the Kendall τ\tau-metric, in the group of permutations over an even number of elements S2nS_{2n}, where we provide asymptotically optimal codes.Comment: Revised version for journal submission. Additional results include more tight auxiliary constructions, a decoding shcema, ranking/unranking procedures, and application to snake-in-the-box codes under the Kendall tau-metri

    Python for education: permutations

    Get PDF
    Python implementation of permutations is presented. Three classes are introduced: Perm for permutations, Group for permutation groups, and PermError to report any errors for both classes. The class Perm is based on Python dictionaries and utilize cycle notation. The methods of calculation for the perm order, parity, ranking and unranking are given. A random permutation generation is also shown. The class Group is very simple and it is also based on dictionaries. It is mainly the presentation of the permutation groups interface with methods for the group order, subgroups (normalizer, centralizer, center, stabilizer), orbits, and several tests. The corresponding Python code is contained in the modules perms and groups.Comment: 26 pages, 1 figure, 2 table

    Efficient indexing of necklaces and irreducible polynomials over finite fields

    Full text link
    We study the problem of indexing irreducible polynomials over finite fields, and give the first efficient algorithm for this problem. Specifically, we show the existence of poly(n, log q)-size circuits that compute a bijection between {1, ... , |S|} and the set S of all irreducible, monic, univariate polynomials of degree n over a finite field F_q. This has applications in pseudorandomness, and answers an open question of Alon, Goldreich, H{\aa}stad and Peralta[AGHP]. Our approach uses a connection between irreducible polynomials and necklaces ( equivalence classes of strings under cyclic rotation). Along the way, we give the first efficient algorithm for indexing necklaces of a given length over a given alphabet, which may be of independent interest

    Random and exhaustive generation of permutations and cycles

    Full text link
    In 1986 S. Sattolo introduced a simple algorithm for uniform random generation of cyclic permutations on a fixed number of symbols. This algorithm is very similar to the standard method for generating a random permutation, but is less well known. We consider both methods in a unified way, and discuss their relation with exhaustive generation methods. We analyse several random variables associated with the algorithms and find their grand probability generating functions, which gives easy access to moments and limit laws.Comment: 9 page

    Syntactic View of Sigma-Tau Generation of Permutations

    Full text link
    We give a syntactic view of the Sawada-Williams (σ,τ)(\sigma,\tau)-generation of permutations. The corresponding sequence of στ\sigma-\tau-operations, of length n!1n!-1 is shown to be highly compressible: it has O(n2logn)O(n^2\log n) bit description. Using this compact description we design fast algorithms for ranking and unranking permutations.Comment: accepted on LATA201
    corecore