New successor rules for constructing de Bruijn sequences

Similar documents
September 6, Abstract

De Bruijn Sequences for the Binary Strings with Maximum Density

GENERALIZING THE CLASSIC GREEDY AND NECKLACE CONSTRUCTIONS OF DE BRUIJN SEQUENCES AND UNIVERSAL CYCLES

arxiv: v1 [math.co] 30 Mar 2010

Fixed-Density Necklaces and Lyndon Words in Cool-lex Order

Finding the Largest Fixed-Density Necklace and Lyndon word

The Adjacency Graphs of Linear Feedback Shift Registers with Primitive-like Characteristic Polynomials

AN EXPLICIT UNIVERSAL CYCLE FOR THE (n 1)-PERMUTATIONS OF AN n-set

A fast algorithm to generate necklaces with xed content

DE BRUIJN GRAPHS AND THEIR APPLICATIONS TO FAULT TOLERANT NETWORKS

De Bruijn Sequences from Nonlinear Feedback Shift Registers

DeBruijn Cycles and Relatives

Nonlinear Shi, Registers: A Survey and Open Problems. Tor Helleseth University of Bergen NORWAY

On The Nonlinearity of Maximum-length NFSR Feedbacks

arxiv: v2 [math.co] 23 Nov 2015

Enumeration and symmetry of edit metric spaces. Jessie Katherine Campbell. A dissertation submitted to the graduate faculty

Necklaces Pólya s Enumeration Theorem. Pólya Counting I. Gordon Royle. Semester 1, 2004

Data Structures in Java

LOOPLESS GENERATION OF MULTISET PERMUTATIONS BY PREFIX SHIFTS

Introduction to Quantum Computing

Cryptography Lecture 3. Pseudorandom generators LFSRs

De Bruijn Sequences Revisited

Necklaces: Generalizations

HAMMING DISTANCE FROM IRREDUCIBLE POLYNOMIALS OVER F Introduction and Motivation

CS Analysis of Recursive Algorithms and Brute Force

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Dynamic Programming II Date: 10/12/17

Linear Feedback Shift Registers (LFSRs) 4-bit LFSR

EECS150 - Digital Design Lecture 26 Error Correction Codes, Linear Feedback Shift Registers (LFSRs)

COMPUTER SCIENCE TRIPOS

Fault Tolerant Computing CS 530 Information redundancy: Coding theory. Yashwant K. Malaiya Colorado State University

Bloom Filters, Minhashes, and Other Random Stuff

Information redundancy

Continuing discussion of CRC s, especially looking at two-bit errors

Cryptographic D-morphic Analysis and Fast Implementations of Composited De Bruijn Sequences

10.4 The Kruskal Katona theorem

A Scalable Method for Constructing Galois NLFSRs with Period 2 n 1 using Cross-Join Pairs

DE BRUIJN SEQUENCES FOR FIXED-WEIGHT BINARY STRINGS

3.8 MEASURE OF RUNDOMNESS:

De Bruijn sequences on primitive words and squares

EECS Components and Design Techniques for Digital Systems. Lec 26 CRCs, LFSRs (and a little power)

CMPSCI 311: Introduction to Algorithms Second Midterm Exam

Logic BIST. Sungho Kang Yonsei University

Exam in Discrete Mathematics

Determine the size of an instance of the minimum spanning tree problem.

Computation Theory Finite Automata

The Kolakoski Sequence and Some Fast Algorithms, Part 2

Convolutional Codes. Telecommunications Laboratory. Alex Balatsoukas-Stimming. Technical University of Crete. November 6th, 2008

CSE 20. Lecture 4: Introduction to Boolean algebra. CSE 20: Lecture4

Data Structures and Algorithms

Ph 219b/CS 219b. Exercises Due: Wednesday 22 February 2006

NP-Completeness. NP-Completeness 1

CSE 202 Homework 4 Matthias Springer, A

Lecture 23: Introduction to Quantum Complexity Theory 1 REVIEW: CLASSICAL COMPLEXITY THEORY

Coding on a Trellis: Convolutional Codes

Kernelization Lower Bounds: A Brief History

Growth functions of braid monoids and generation of random braids

De Bruijn Cycles for Covering Codes

CS 455/555: Mathematical preliminaries

Outline. EECS Components and Design Techniques for Digital Systems. Lec 18 Error Coding. In the real world. Our beautiful digital world.

6.111 Lecture # 12. Binary arithmetic: most operations are familiar Each place in a binary number has value 2 n

CS360 Homework 12 Solution

CRC Press has granted the following specific permissions for the electronic version of this book:

Procedure for Graphing Polynomial Functions

Nonlinear feedback shift registers and generating of binary de Bruijn sequences

Lecture 2 September 4, 2014

Computational Models Lecture 8 1

Fixed-Universe Successor : Van Emde Boas. Lecture 18

How does the computer generate observations from various distributions specified after input analysis?

Computational Models Lecture 8 1

Introduction to Quantum Computing

Combinatorial Optimization

Theoretical aspects of ERa, the fastest practical suffix tree construction algorithm

Computational Models Lecture 8 1

Pseudo-Random Number Generators

Chapter 1: Preliminaries and Error Analysis

Logarithmic space. Evgenij Thorstensen V18. Evgenij Thorstensen Logarithmic space V18 1 / 18

A fast algorithm for the Kolakoski sequence

ELCT201: DIGITAL LOGIC DESIGN

CPSC 490 Problem Solving in Computer Science

2 n -Periodic Binary Sequences with Fixed k-error Linear Complexity for k = 2 or 3

Unit 1A: Computational Complexity

Advanced Combinatorial Optimization Updated February 18, Lecture 5. Lecturer: Michel X. Goemans Scribe: Yehua Wei (2009)

MTAT Complexity Theory October 13th-14th, Lecture 6

What Is a Language? Grammars, Languages, and Machines. Strings: the Building Blocks of Languages

D1 Discrete Mathematics The Travelling Salesperson problem. The Nearest Neighbour Algorithm The Lower Bound Algorithm The Tour Improvement Algorithm

Parallel Multipliers. Dr. Shoab Khan

Generating Necklaces. North Carolina State University, Box 8206

New techniques for trail bounds and application to differential trails in Keccak

NFA and regex. the Boolean algebra of languages. regular expressions. Informatics 1 School of Informatics, University of Edinburgh

VIII. NP-completeness

Math 8803/4803, Spring 2008: Discrete Mathematical Biology

New Constructions for De Bruijn Tori

Advanced topic: Space complexity

1 Computing System 2. 2 Data Representation Number Systems 22

FINAL EXAM PRACTICE PROBLEMS CMSC 451 (Spring 2016)

Computational Complexity. IE 496 Lecture 6. Dr. Ted Ralphs

ON THE CALCULATION OF THE LINEAR EQUIVALENCE BIAS OF JUMP CONTROLLED LINEAR FINITE STATE MACHINES

CS Data Structures and Algorithm Analysis

Space-Efficient Construction Algorithm for Circular Suffix Tree

Space and Nondeterminism

Transcription:

New successor rules for constructing de Bruijn sequences Dennis Wong Northwest Missouri State University Daniel Gabric and Joe Sawada University of Guelph, CAN Aaron Williams Simon s Rock, USA Southeastern 2017 1 / 13

Outline 1. What is a de Bruijn sequence? 2. Construction methods Euler cycles in a de Bruijn graph Greedy approach Linear feedback shift registers Successor rules 3. Necklaces and co-necklaces 4. New successor rules Southeastern 2017 2 / 13

Definition What is a de Bruijn sequence? A de Bruijn sequence is a circular string of length 2 n where every binary string of length n occurs as a substring (exactly once). Example 0000101101001111 is a de Bruijn sequence for n = 4 The 16 unique substrings of length 4 are: 0000, 0001, 0010, 0101, 1011, 0110, 1101, 1010, 0100, 1001, 0011, 0111, 1111, 1110, 1100, 1000. Southeastern 2017 3 / 13

Definition What is a de Bruijn sequence? A de Bruijn sequence is a circular string of length 2 n where every binary string of length n occurs as a substring (exactly once). Example 0000101101001111 is a de Bruijn sequence for n = 4 The 16 unique substrings of length 4 are: 0000, 0001, 0010, 0101, 1011, 0110, 1101, 1010, 0100, 1001, 0011, 0111, 1111, 1110, 1100, 1000. PROBLEM: How to efficiently construct a de Bruijn sequence? Southeastern 2017 3 / 13

Construction method #1: Graph model Construct the de Bruijn graph with 2 n 1 vertices and 2 n edges: A de Bruijn sequence is in 1-1 correspondence with an Euler cycle in a de Bruijn graph. Southeastern 2017 4 / 13

Construction method #1: Graph model Construct the de Bruijn graph with 2 n 1 vertices and 2 n edges: A de Bruijn sequence is in 1-1 correspondence with an Euler cycle in a de Bruijn graph. By counting Euler cycles, the number of de Bruijn sequences is: 2 2n 1 n Southeastern 2017 4 / 13

Construction method #1: Graph model Construct the de Bruijn graph with 2 n 1 vertices and 2 n edges: A de Bruijn sequence is in 1-1 correspondence with an Euler cycle in a de Bruijn graph. By counting Euler cycles, the number of de Bruijn sequences is: 2 2n 1 n this method requires exponential space to store the graph Southeastern 2017 4 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 00001 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 000011 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 0000111 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 00001111 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 000011111 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 000011110 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 0000111101 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 00001111011 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 000011110111 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 000011110110 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 0000111101100101 Southeastern 2017 5 / 13

Construction method #2: Greedy approach Prefer-larger greedy algorithm (Martin 1934) 1. Start with 0 n (very important!) 2. Repeat: append the largest bit that does not create a duplicate length n substring Example n = 4 0000111101100101 Other greedy approaches: Prefer-same (Eldert 1958) Prefer-opposite (Alhakim 2010) these methods require exponential space to remember the sequence Southeastern 2017 5 / 13

Construction method #3: Linear feedback shift registers Construct and iterate an LFSR 1. Find a primitive polynomial polynomial of order n 2. Construct a linear feedback shift register from the polynomial 3. Iterate through register 2 n 1 times time and space efficient misses the string 0 n requires a different primitive polynomial for each n Southeastern 2017 6 / 13

Construction method #4: Successor rules Successor rule constructions A successor rule for a given de Bruijn sequence is a function { b1 if conditions NEXT (b 1 b 2 b n ) = otherwise that returns the bit following the substring b 1 b 2 b n. b 1 Southeastern 2017 7 / 13

Construction method #4: Successor rules Successor rule constructions A successor rule for a given de Bruijn sequence is a function { b1 if conditions NEXT (b 1 b 2 b n ) = otherwise that returns the bit following the substring b 1 b 2 b n. b 1 For the n = 4 de Bruijn sequence 0000101101001111, its successor rule would define NEXT (1010) = 0. Southeastern 2017 7 / 13

Necklaces and co-necklaces Strings from cycling register (rotate left) Strings from Complementing Cycling Register (complement first bit then rotate left) 10100 10100 01001 01000 10010 10001 00101 00010 01010 00101 01011 10111 01110 11101 11010 The lexicographically smallest element from each equivalence class is called a necklace and co-necklace respectively. Southeastern 2017 8 / 13

Necklace based successor rules Wong Successor (SWW 2016) { b1 if b NEXT (b 1 b 2 b n ) = 2 b 3 b n 1 is a necklace b 1 otherwise. Southeastern 2017 9 / 13

Necklace based successor rules Wong Successor (SWW 2016) { b1 if b NEXT (b 1 b 2 b n ) = 2 b 3 b n 1 is a necklace b 1 otherwise. Williams Successor *NEW* { b1 if 0b NEXT (b 1 b 2 b n ) = 2 b 3 b n is a necklace b 1 otherwise. Fredricksen (1972) gave the only other necklace based conditions Southeastern 2017 9 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Wong successor rule (necklace spanning tree n = 5) Southeastern 2017 10 / 13

Co-necklace based successor rules Huang (1990) gave the only other co-necklace based conditions (quite complex) Gabric Successor *NEW* Let β = b 1b 2 b n and let γ = b 2b 3 b n0 { b1 if b 2b 3 b n0 0 n is a co-necklace NEXT (b 1b 2 b n) = otherwise. b 1 Southeastern 2017 11 / 13

Gabric successor rule (co-necklace spanning tree n = 5) Southeastern 2017 12 / 13

Gabric successor rule (co-necklace spanning tree n = 5) Southeastern 2017 12 / 13

Summary of results So far we have found 6 new de Bruijn successors where each bit can be computed in O(n)-time O(n)-memory is required Related techniques allow us to construct an exponential number of de Bruijn sequences where each bit can be computed in O(n)-time O(n 2 )-memory is required Southeastern 2017 13 / 13

Summary of results So far we have found 6 new de Bruijn successors where each bit can be computed in O(n)-time O(n)-memory is required Related techniques allow us to construct an exponential number of de Bruijn sequences where each bit can be computed in O(n)-time O(n 2 )-memory is required -Gracias- Southeastern 2017 13 / 13