201
Introduction de Bruijn sequences Results Summary Cycle Decompositions of de Bruijn Graphs for Robot Identification and Tracking Tony Grubman Joint Supervisors: Y. Ahmet S ¸ekercio˘ glu 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

Cycle Decompositions of de Bruijn Graphs for Robot

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 2: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 3: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 4: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 5: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 6: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 7: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 8: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 9: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 10: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 11: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 12: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 13: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 14: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 15: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 16: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 17: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 18: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 19: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 20: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 21: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 22: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 23: Cycle Decompositions of de Bruijn Graphs for Robot

Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs

Demonstration

Tony Grubman Cycles in de Bruijn graphs 6 / 24

Page 24: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 25: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 26: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 27: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 28: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 29: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 30: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 31: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 32: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 33: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 34: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 35: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 36: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 37: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 38: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 39: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 40: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 41: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 42: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 43: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 44: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 45: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 46: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 47: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 48: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 49: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 50: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 51: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 52: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 53: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 54: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 55: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 56: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 57: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 58: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 59: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 60: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 61: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 62: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 63: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 64: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 65: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 66: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 67: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 68: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 69: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 70: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 71: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 72: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 73: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 74: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 75: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 76: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 77: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 78: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 79: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 80: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 81: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 82: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 83: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 84: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 85: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 86: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 87: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 88: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 89: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 90: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 91: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 92: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 93: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 94: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 95: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 96: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 97: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 98: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 99: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 100: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 101: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 102: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 103: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 104: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 105: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 106: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 107: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 108: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 109: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 110: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 111: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 112: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 113: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 114: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 115: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 116: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 117: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 118: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 119: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 120: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 121: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 122: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 123: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 124: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 125: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 126: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 127: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 128: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 129: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 130: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 131: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 132: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 133: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 134: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 135: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 136: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 137: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 138: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 139: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 140: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 141: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 142: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 143: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 144: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 145: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 146: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 147: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 148: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 149: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 150: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 151: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 152: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 153: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 154: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 155: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 156: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 157: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 158: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 159: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 160: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 161: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 162: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 163: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 164: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 165: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 166: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 167: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 168: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 169: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 170: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 171: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 172: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 173: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 174: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 175: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 176: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 177: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 178: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 179: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 180: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 181: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 182: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 183: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 184: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 185: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 186: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 187: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 188: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 189: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 190: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 191: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 192: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 193: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 194: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 195: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 196: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 197: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 198: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 199: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 200: Cycle Decompositions of de Bruijn Graphs for Robot

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

Page 201: Cycle Decompositions of de Bruijn Graphs for Robot

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