Cycle Decompositions of de Bruijn Graphs for Robot

Post on 04-Feb-2022

1 views 0 download

transcript

Introduction de Bruijn sequences Results Summary

Cycle Decompositions of de Bruijn Graphsfor Robot Identification and Tracking

Tony Grubman

Joint Supervisors: Y. Ahmet Sekercioglu David R. Wood

Department of Electrical and Computer Systems Engineering

School of Mathematical Sciences

September 23, 2013

Tony Grubman Cycles in de Bruijn graphs 1 / 24

Introduction de Bruijn sequences Results Summary

Outline

1 IntroductionMotivationDemonstrationde Bruijn graphs

2 de Bruijn sequencesExistenceConstruction: Linear feedback shift registers

3 ResultsSplitting linear feedback shift register sequencesProduct colouringCombining necklaces

Tony Grubman Cycles in de Bruijn graphs 2 / 24

Introduction de Bruijn sequences Results Summary

Outline

1 IntroductionMotivationDemonstrationde Bruijn graphs

2 de Bruijn sequencesExistenceConstruction: Linear feedback shift registers

3 ResultsSplitting linear feedback shift register sequencesProduct colouringCombining necklaces

Tony Grubman Cycles in de Bruijn graphs 2 / 24

Introduction de Bruijn sequences Results Summary

Outline

1 IntroductionMotivationDemonstrationde Bruijn graphs

2 de Bruijn sequencesExistenceConstruction: Linear feedback shift registers

3 ResultsSplitting linear feedback shift register sequencesProduct colouringCombining necklaces

Tony Grubman Cycles in de Bruijn graphs 2 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platform

I ‘Swarm’ of up to 20 robots

Mobile

I Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)

I Can display a sequence of colours aroundits perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

Mobile

I Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)

I Can display a sequence of colours aroundits perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

Mobile

I Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)

I Can display a sequence of colours aroundits perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

MobileI Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)

I Can display a sequence of colours aroundits perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

MobileI Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)

I Can display a sequence of colours aroundits perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

MobileI Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around

its perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

MobileI Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around

its perimeter

Expandable

I Vision capabilities can be provided with acamera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

MobileI Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around

its perimeter

ExpandableI Vision capabilities can be provided with a

camera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

eBugs — colourful robots

Wireless robot network research platformI ‘Swarm’ of up to 20 robots

MobileI Precision controlled stepper motors

16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around

its perimeter

ExpandableI Vision capabilities can be provided with a

camera

Problem

Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?

Tony Grubman Cycles in de Bruijn graphs 3 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Example (4 eBugs, 8 LEDs, 2 colours)

Tony Grubman Cycles in de Bruijn graphs 4 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.

The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

⌋I Each of the q` possible sequences cannot appear more than once

I Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`k

Computation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small cases

Main problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Preliminary bounds

Definition (eBug number)

Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.

Upper bound: E(q, k, `) ≤⌊q`

k

⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences

Initial lower bound: Lovasz local lemma gives E ≥ q`

8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?

Tony Grubman Cycles in de Bruijn graphs 5 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Demonstration

Tony Grubman Cycles in de Bruijn graphs 6 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

What is a de Bruijn graph?

Definition

The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`

q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.

Vertices are words of length ` over an alphabet of size q

Edge from u to v if shifting u left and appending any letter gives v

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Tony Grubman Cycles in de Bruijn graphs 7 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

What is a de Bruijn graph?

Definition

The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`

q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.

Vertices are words of length ` over an alphabet of size q

Edge from u to v if shifting u left and appending any letter gives v

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Tony Grubman Cycles in de Bruijn graphs 7 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

What is a de Bruijn graph?

Definition

The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`

q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.

Vertices are words of length ` over an alphabet of size q

Edge from u to v if shifting u left and appending any letter gives v

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Tony Grubman Cycles in de Bruijn graphs 7 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

What is a de Bruijn graph?

Definition

The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`

q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.

Vertices are words of length ` over an alphabet of size q

Edge from u to v if shifting u left and appending any letter gives v

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Tony Grubman Cycles in de Bruijn graphs 7 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` colours

I This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` colours

I This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` colours

I This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` coloursI This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` coloursI This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` coloursI This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` coloursI This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

de Bruijn graphs and eBug numbers

Example (dB(2, 3))

010

100

000

001

111

110

101

011

Every vertex is a sequence of ` coloursI This represents the camera’s view

Rotating the eBug corresponds to following an edge

A cycle of length k represents the whole eBug

E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)

Tony Grubman Cycles in de Bruijn graphs 8 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq

Example (q = 2)

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq

Example (q = 2)

10

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

10

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

10

10

01

00 11

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

10

10

01

00 11

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

11

10

00

01

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

11

10

00

01

000 111

001 011

110100

010 101

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

11

10

00

01

000 111

001 011

110100

010 101

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

010

100

000

001

111

110

101

011

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

010

100

000

001

111

110

101

011

0000 1111

1100

0011

0101

1010

01101001

01001000

0001 0010

11101101

1011 0111

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 2)

1001

0100

0010

1101

0110

1011

0000 1111

1100

0011

1010

0101

1000

0001 0111

1110

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 3)

1

0

2

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 3)

1

0

2

1002

21

0120

12

11

00

22

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Construction via line digraphs

Alternate construction

dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))

Example (q = 3)

1002

21

11

00

22

0120

12

Tony Grubman Cycles in de Bruijn graphs 9 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree q

I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree q

I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree q

I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree q

I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree q

I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree q

I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree qI dB(q, `− 1) is Eulerian

I dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn graphs are Hamiltonian

Theorem

If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.

An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)

Corollary

Every de Bruijn graph has a Hamiltonian cycle.

Proof

Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian

Every vertex in dB(q, `− 1) has in-degree q and out-degree qI dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian

Tony Grubman Cycles in de Bruijn graphs 10 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Definition

A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).

Theorem

The number of Eulerian circuits in an Eulerian digraph G is

τ(G)∏

v∈V (G)

(d+(v)− 1)!

d+(v) is the out-degree of vertex v

τ(G) is the number of spanning arborescences rooted at some vertex

I Does not depend on choice of root vertex

Corollary

There are exactly(q!)q

`−1

q`q-ary de Bruijn sequences of order `.

Tony Grubman Cycles in de Bruijn graphs 11 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Definition

A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).

Theorem

The number of Eulerian circuits in an Eulerian digraph G is

τ(G)∏

v∈V (G)

(d+(v)− 1)!

d+(v) is the out-degree of vertex v

τ(G) is the number of spanning arborescences rooted at some vertex

I Does not depend on choice of root vertex

Corollary

There are exactly(q!)q

`−1

q`q-ary de Bruijn sequences of order `.

Tony Grubman Cycles in de Bruijn graphs 11 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Definition

A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).

Theorem

The number of Eulerian circuits in an Eulerian digraph G is

τ(G)∏

v∈V (G)

(d+(v)− 1)!

d+(v) is the out-degree of vertex v

τ(G) is the number of spanning arborescences rooted at some vertex

I Does not depend on choice of root vertex

Corollary

There are exactly(q!)q

`−1

q`q-ary de Bruijn sequences of order `.

Tony Grubman Cycles in de Bruijn graphs 11 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Definition

A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).

Theorem

The number of Eulerian circuits in an Eulerian digraph G is

τ(G)∏

v∈V (G)

(d+(v)− 1)!

d+(v) is the out-degree of vertex v

τ(G) is the number of spanning arborescences rooted at some vertex

I Does not depend on choice of root vertex

Corollary

There are exactly(q!)q

`−1

q`q-ary de Bruijn sequences of order `.

Tony Grubman Cycles in de Bruijn graphs 11 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Definition

A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).

Theorem

The number of Eulerian circuits in an Eulerian digraph G is

τ(G)∏

v∈V (G)

(d+(v)− 1)!

d+(v) is the out-degree of vertex v

τ(G) is the number of spanning arborescences rooted at some vertexI Does not depend on choice of root vertex

Corollary

There are exactly(q!)q

`−1

q`q-ary de Bruijn sequences of order `.

Tony Grubman Cycles in de Bruijn graphs 11 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Definition

A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).

Theorem

The number of Eulerian circuits in an Eulerian digraph G is

τ(G)∏

v∈V (G)

(d+(v)− 1)!

d+(v) is the out-degree of vertex v

τ(G) is the number of spanning arborescences rooted at some vertexI Does not depend on choice of root vertex

Corollary

There are exactly(q!)q

`−1

q`q-ary de Bruijn sequences of order `.

Tony Grubman Cycles in de Bruijn graphs 11 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)

I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)

I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1000000

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0100000

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0010000

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0001000

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0000100

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0000010

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0000001

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

1110010

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0111001

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0111001

1xx2x3x4x5x6

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Galois LFSRs

Let q be a prime power, and consider the Galois field GF(q)

Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x

Repeatedly multiplying by x gives every non-zero element of F

Easily implemented as a digital logic circuit

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)

0111001

1xx2x3x4x5x61110010

Tony Grubman Cycles in de Bruijn graphs 12 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Galois

1000000

1xx2x3x4x5x61110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10000001x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

00000011x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

00000101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

00001011x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

00010101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

00101011x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

01010111x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configuration

I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configurationI Additive feedback is many-to-one, instead of one-to-many

I The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

Fibonacci LFSRs

Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci

10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x

1110010

Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed

Same polynomial may be used

Also represents consecutive powers of x, but in a different basis

Produces an identical sequence in the last digit

Tony Grubman Cycles in de Bruijn graphs 13 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycle

I Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)

I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycle

I Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}Can be extended to all of dB(q, `)

I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)

I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)

I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1

I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registers

I Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary Existence LFSRs

de Bruijn sequences from LFSRs

In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)

All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}

Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1

Every primitive polynomial gives a different de Bruijn sequence

I There areϕ(q` − 1)

`q-ary de Bruijn sequences of order ` arising from

linear feedback shift registersI Most are “non-linear” feedback shift registers

Tony Grubman Cycles in de Bruijn graphs 14 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSR

I This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuit

I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)

I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuit

I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuit

I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuit

I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertex

I Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:

I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}

I Unique solution for each c: f(x) = cxk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)

I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)I Requires (q − 1)k ≤ q` − 1 for cycles to be disjoint

I This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Length k subsequences in de Bruijn sequences

Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge

Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial

This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c

xk−1

We have found q − 1 k-cycles in dB(q, `)I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed

E(q, k, `) ≥ q − 1 for k ≤ q` − 1

q − 1

Tony Grubman Cycles in de Bruijn graphs 15 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequence

I The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomial

I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequence

I The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomial

I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequence

I The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomial

I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomial

I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomial

I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into C

I dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cycles

I E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for others

I For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomial

I Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Optimality for k = q`−1

Consider the case when k = q`−1

I q` − k states of the LFSR are covered by the q − 1 k-cycles

Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C

Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q

C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤

k−1q−1

I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm

Tony Grubman Cycles in de Bruijn graphs 16 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Multiplying cycles

Theorem

Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then

E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.

Preserves optimality w.r.t. upper bound E ≤ q`

k

I If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)

When k1 and k2 are coprime, not much is gained

Largest increase in E when k1 = k2

I Easy to get large E when q is divisible by a high power

Tony Grubman Cycles in de Bruijn graphs 17 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Multiplying cycles

Theorem

Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then

E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.

Preserves optimality w.r.t. upper bound E ≤ q`

k

I If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)

When k1 and k2 are coprime, not much is gained

Largest increase in E when k1 = k2

I Easy to get large E when q is divisible by a high power

Tony Grubman Cycles in de Bruijn graphs 17 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Multiplying cycles

Theorem

Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then

E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.

Preserves optimality w.r.t. upper bound E ≤ q`

kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)

When k1 and k2 are coprime, not much is gained

Largest increase in E when k1 = k2

I Easy to get large E when q is divisible by a high power

Tony Grubman Cycles in de Bruijn graphs 17 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Multiplying cycles

Theorem

Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then

E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.

Preserves optimality w.r.t. upper bound E ≤ q`

kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)

When k1 and k2 are coprime, not much is gained

Largest increase in E when k1 = k2

I Easy to get large E when q is divisible by a high power

Tony Grubman Cycles in de Bruijn graphs 17 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Multiplying cycles

Theorem

Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then

E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.

Preserves optimality w.r.t. upper bound E ≤ q`

kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)

When k1 and k2 are coprime, not much is gained

Largest increase in E when k1 = k2

I Easy to get large E when q is divisible by a high power

Tony Grubman Cycles in de Bruijn graphs 17 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Multiplying cycles

Theorem

Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then

E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.

Preserves optimality w.r.t. upper bound E ≤ q`

kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)

When k1 and k2 are coprime, not much is gained

Largest increase in E when k1 = k2I Easy to get large E when q is divisible by a high power

Tony Grubman Cycles in de Bruijn graphs 17 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Construction for k1 = k2

Tony Grubman Cycles in de Bruijn graphs 18 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Proof of correctness (sketch)

Consider any sequence of ` colour pairs in resulting eBugs

I This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings

Sequence corresponds to a particular pair of eBugs in a particularorientation

I Resulting eBugs can still be uniquely identified and oriented

Theorem easily extends to k1 6= k2 case

Tony Grubman Cycles in de Bruijn graphs 19 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Proof of correctness (sketch)

Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequence

I These had unique positions in original colourings

Sequence corresponds to a particular pair of eBugs in a particularorientation

I Resulting eBugs can still be uniquely identified and oriented

Theorem easily extends to k1 6= k2 case

Tony Grubman Cycles in de Bruijn graphs 19 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Proof of correctness (sketch)

Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings

Sequence corresponds to a particular pair of eBugs in a particularorientation

I Resulting eBugs can still be uniquely identified and oriented

Theorem easily extends to k1 6= k2 case

Tony Grubman Cycles in de Bruijn graphs 19 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Proof of correctness (sketch)

Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings

Sequence corresponds to a particular pair of eBugs in a particularorientation

I Resulting eBugs can still be uniquely identified and oriented

Theorem easily extends to k1 6= k2 case

Tony Grubman Cycles in de Bruijn graphs 19 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Proof of correctness (sketch)

Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings

Sequence corresponds to a particular pair of eBugs in a particularorientation

I Resulting eBugs can still be uniquely identified and oriented

Theorem easily extends to k1 6= k2 case

Tony Grubman Cycles in de Bruijn graphs 19 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Proof of correctness (sketch)

Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings

Sequence corresponds to a particular pair of eBugs in a particularorientation

I Resulting eBugs can still be uniquely identified and oriented

Theorem easily extends to k1 6= k2 case

Tony Grubman Cycles in de Bruijn graphs 19 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graph

I The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graph

I Two necklaces of length ` are mergable if they share a subword oflength `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graph

I The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graph

I Two necklaces of length ` are mergable if they share a subword oflength `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graph

I The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graph

I Two necklaces of length ` are mergable if they share a subword oflength `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graph

I Two necklaces of length ` are mergable if they share a subword oflength `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graph

I Two necklaces of length ` are mergable if they share a subword oflength `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graphI Two necklaces of length ` are mergable if they share a subword of

length `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graphI Two necklaces of length ` are mergable if they share a subword of

length `− 1

Construct a graph N(q, `) of necklaces of length ` over q letters

I Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Necklaces

Definition

A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.

Example

001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102

Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace

Cycles can be concatenated in the previous de Bruijn graphI Two necklaces of length ` are mergable if they share a subword of

length `− 1

Construct a graph N(q, `) of necklaces of length ` over q lettersI Edge between two necklaces if they are mergable

Tony Grubman Cycles in de Bruijn graphs 20 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)

I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size k

I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cycles

I The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size k

I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycle

I The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size k

I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size k

I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size k

I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cycles

I Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `

I Moreau’s necklace counting function: M(q,m) = 1m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1

m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1

m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each m

I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1

m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected pieces

I For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1

m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklaces

I Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1

m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same length

I Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Merging necklaces

Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes

Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes

N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1

m

∑d|m

µ(d)qm/d

If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 21 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}

I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}

I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}

I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace n

I There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and n

I Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0

I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0I N0 is connected

I By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1

I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces

Partitioning N(q, `)

Example (q = 2)

As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).

Let n0 ∈ N0 be the all zeroes necklace

Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0

By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected

Each component gives a cycle of length 2`−1 in dB(q, `)

Similar methods give a partition for general q whenever gcd(q, `) = 1I E(q, q`−1, `) = q

Tony Grubman Cycles in de Bruijn graphs 22 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)

I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)

I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1

I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available colours

I Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)

I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1

I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)

I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1

I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)

I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1

I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1

I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1

I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequences

I One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles exists

I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprime

I Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime power

I Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugs

I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugsI Must have the same ` value

I Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugsI Must have the same ` valueI Resulting eBugs have q1q2 possible colours

I Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugsI Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)

I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs

Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles

de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful

In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties

Two eBug colourings can be multiplied to give many eBugsI Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs

Tony Grubman Cycles in de Bruijn graphs 23 / 24

Introduction de Bruijn sequences Results Summary

Summary

Minimum k for which E(q, k, `) = q`

kguaranteed

` q = 2 q = 3 q = 4 q = 6 q = 12

1 1 1 1 1 12 4 3 4 12 123 4 27 4 108 1084 16 27 16 432 4325 16 81 16 1296 12966 64 729 64 46656 466567 64 729 64 46656 46656

Tony Grubman Cycles in de Bruijn graphs 24 / 24