Cycle Decompositions of de Bruijn Graphs for Robot
Transcript of Cycle Decompositions of de Bruijn Graphs for Robot
![Page 1: Cycle Decompositions of de Bruijn Graphs for Robot](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/3.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/4.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/5.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/6.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/8.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/9.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/10.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/11.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/12.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/13.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/14.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/15.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/16.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/18.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/19.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/20.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/21.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/22.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/23.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/24.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/25.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/26.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/27.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/28.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/29.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/30.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/31.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/32.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/33.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/34.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/35.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/36.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/37.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/38.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/39.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/40.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/41.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/42.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/43.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/44.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/45.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/46.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/47.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/48.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/49.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/50.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/51.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/52.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/53.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/54.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/55.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/56.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/57.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/58.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/59.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/60.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/61.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/62.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/63.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/64.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/65.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/66.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/67.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/68.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/69.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/70.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/71.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/72.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/73.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/74.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/75.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/76.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/77.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/78.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/79.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/80.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/81.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/82.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/83.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/84.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/85.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/86.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/87.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/88.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/89.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/90.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/91.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/92.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/93.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/94.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/95.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/96.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/97.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/98.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/99.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/100.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/101.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/102.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/103.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/104.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/105.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/106.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/107.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/108.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/109.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/110.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/111.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/112.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/113.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/114.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/115.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/116.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/117.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/118.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/119.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/120.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/121.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/122.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/123.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/124.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/125.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/126.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/127.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/128.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/129.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/130.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/131.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/132.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/133.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/134.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/135.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/136.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/137.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/138.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/139.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/140.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/141.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/142.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/143.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/144.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/145.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/146.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/147.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/148.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/149.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/150.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/151.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/152.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/153.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/154.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/155.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/156.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/157.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/158.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/159.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/160.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/161.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/162.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/163.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/164.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/165.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/166.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/167.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/168.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/169.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/170.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/171.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/172.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/173.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/174.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/175.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/176.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/177.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/178.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/179.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/180.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/181.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/182.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/183.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/184.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/185.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/186.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/187.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/188.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/189.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/190.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/191.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/192.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/193.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/194.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/195.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/196.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/197.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/198.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/199.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/200.jpg)
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](https://reader030.fdocuments.in/reader030/viewer/2022020706/61fc85f38d33c02b785e2a17/html5/thumbnails/201.jpg)
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