Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Introduction de Bruijn sequences Results Summary
Cycle Decompositions of de Bruijn Graphsfor Robot Identification and Tracking
Tony Grubman
Joint Supervisors: Y. Ahmet Sekercioglu David R. Wood
Department of Electrical and Computer Systems Engineering
School of Mathematical Sciences
September 23, 2013
Tony Grubman Cycles in de Bruijn graphs 1 / 24
Introduction de Bruijn sequences Results Summary
Outline
1 IntroductionMotivationDemonstrationde Bruijn graphs
2 de Bruijn sequencesExistenceConstruction: Linear feedback shift registers
3 ResultsSplitting linear feedback shift register sequencesProduct colouringCombining necklaces
Tony Grubman Cycles in de Bruijn graphs 2 / 24
Introduction de Bruijn sequences Results Summary
Outline
1 IntroductionMotivationDemonstrationde Bruijn graphs
2 de Bruijn sequencesExistenceConstruction: Linear feedback shift registers
3 ResultsSplitting linear feedback shift register sequencesProduct colouringCombining necklaces
Tony Grubman Cycles in de Bruijn graphs 2 / 24
Introduction de Bruijn sequences Results Summary
Outline
1 IntroductionMotivationDemonstrationde Bruijn graphs
2 de Bruijn sequencesExistenceConstruction: Linear feedback shift registers
3 ResultsSplitting linear feedback shift register sequencesProduct colouringCombining necklaces
Tony Grubman Cycles in de Bruijn graphs 2 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platform
I ‘Swarm’ of up to 20 robots
Mobile
I Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)
I Can display a sequence of colours aroundits perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
Mobile
I Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)
I Can display a sequence of colours aroundits perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
Mobile
I Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)
I Can display a sequence of colours aroundits perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
MobileI Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)
I Can display a sequence of colours aroundits perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
MobileI Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)
I Can display a sequence of colours aroundits perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
MobileI Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around
its perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
MobileI Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around
its perimeter
Expandable
I Vision capabilities can be provided with acamera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
MobileI Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around
its perimeter
ExpandableI Vision capabilities can be provided with a
camera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
eBugs — colourful robots
Wireless robot network research platformI ‘Swarm’ of up to 20 robots
MobileI Precision controlled stepper motors
16 multicolour LEDs (red, green and blue)I Can display a sequence of colours around
its perimeter
ExpandableI Vision capabilities can be provided with a
camera
Problem
Can a sequence of colours be assigned to the LEDs of each eBug such thatany observer (camera) can identify the eBug and its orientation?
Tony Grubman Cycles in de Bruijn graphs 3 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Example (4 eBugs, 8 LEDs, 2 colours)
Tony Grubman Cycles in de Bruijn graphs 4 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.
The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋
I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋
I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋
I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋I Each of the q` possible sequences cannot appear more than once
I Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`k
Computation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small cases
Main problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Preliminary bounds
Definition (eBug number)
Suppose every eBug has k LEDs, each of which can be illuminated in oneof q colours, and that a camera can reliably detect ` adjacent LEDs. Anassignment of colours to the LEDs of all eBugs is valid if the camera candistinguish each eBug in each of the k orientations.The eBug number E(q, k, `) is the maximum number of eBugs for whichthere exists a valid assignment of colours.
Upper bound: E(q, k, `) ≤⌊q`
k
⌋I Each of the q` possible sequences cannot appear more than onceI Each eBug will account for k of the sequences
Initial lower bound: Lovasz local lemma gives E ≥ q`
8`kComputation shows that upper bound is achieved in small casesMain problem — when is the upper bound achievable?
Tony Grubman Cycles in de Bruijn graphs 5 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Demonstration
Tony Grubman Cycles in de Bruijn graphs 6 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
What is a de Bruijn graph?
Definition
The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`
q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.
Vertices are words of length ` over an alphabet of size q
Edge from u to v if shifting u left and appending any letter gives v
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Tony Grubman Cycles in de Bruijn graphs 7 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
What is a de Bruijn graph?
Definition
The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`
q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.
Vertices are words of length ` over an alphabet of size q
Edge from u to v if shifting u left and appending any letter gives v
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Tony Grubman Cycles in de Bruijn graphs 7 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
What is a de Bruijn graph?
Definition
The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`
q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.
Vertices are words of length ` over an alphabet of size q
Edge from u to v if shifting u left and appending any letter gives v
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Tony Grubman Cycles in de Bruijn graphs 7 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
What is a de Bruijn graph?
Definition
The `-th order q-ary de Bruijn graph dB(q, `) is the digraph (V,E), whereV = Z`
q and E = {(a0a1 . . . a`−1, a1a2 . . . a`) | ai ∈ Zq}.
Vertices are words of length ` over an alphabet of size q
Edge from u to v if shifting u left and appending any letter gives v
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Tony Grubman Cycles in de Bruijn graphs 7 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` colours
I This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` colours
I This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` colours
I This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` coloursI This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` coloursI This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` coloursI This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` coloursI This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
de Bruijn graphs and eBug numbers
Example (dB(2, 3))
010
100
000
001
111
110
101
011
Every vertex is a sequence of ` coloursI This represents the camera’s view
Rotating the eBug corresponds to following an edge
A cycle of length k represents the whole eBug
E(q, k, `) is the maximum number of disjoint k-cyclesin dB(q, `)
Tony Grubman Cycles in de Bruijn graphs 8 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq
Example (q = 2)
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq
Example (q = 2)
10
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
10
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
10
10
01
00 11
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
10
10
01
00 11
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
11
10
00
01
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
11
10
00
01
000 111
001 011
110100
010 101
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
11
10
00
01
000 111
001 011
110100
010 101
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
010
100
000
001
111
110
101
011
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
010
100
000
001
111
110
101
011
0000 1111
1100
0011
0101
1010
01101001
01001000
0001 0010
11101101
1011 0111
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 2)
1001
0100
0010
1101
0110
1011
0000 1111
1100
0011
1010
0101
1000
0001 0111
1110
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 3)
1
0
2
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 3)
1
0
2
1002
21
0120
12
11
00
22
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Motivation Demonstration de Bruijn graphs
Construction via line digraphs
Alternate construction
dB(q, 1) =−→Kq; dB(q, `+ 1) = L(dB(q, `))
Example (q = 3)
1002
21
11
00
22
0120
12
Tony Grubman Cycles in de Bruijn graphs 9 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree q
I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree q
I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree q
I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree q
I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree q
I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree q
I dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree qI dB(q, `− 1) is Eulerian
I dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn graphs are Hamiltonian
Theorem
If a digraph G is Eulerian, then the line digraph L(G) is Hamiltonian.
An Eulerian circuit in G is equivalent to a Hamiltonian cycle in L(G)
Corollary
Every de Bruijn graph has a Hamiltonian cycle.
Proof
Can assume ` ≥ 2 as dB(q, 1) =−→Kq is Hamiltonian
Every vertex in dB(q, `− 1) has in-degree q and out-degree qI dB(q, `− 1) is EulerianI dB(q, `) is Hamiltonian
Tony Grubman Cycles in de Bruijn graphs 10 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Definition
A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).
Theorem
The number of Eulerian circuits in an Eulerian digraph G is
τ(G)∏
v∈V (G)
(d+(v)− 1)!
d+(v) is the out-degree of vertex v
τ(G) is the number of spanning arborescences rooted at some vertex
I Does not depend on choice of root vertex
Corollary
There are exactly(q!)q
`−1
q`q-ary de Bruijn sequences of order `.
Tony Grubman Cycles in de Bruijn graphs 11 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Definition
A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).
Theorem
The number of Eulerian circuits in an Eulerian digraph G is
τ(G)∏
v∈V (G)
(d+(v)− 1)!
d+(v) is the out-degree of vertex v
τ(G) is the number of spanning arborescences rooted at some vertex
I Does not depend on choice of root vertex
Corollary
There are exactly(q!)q
`−1
q`q-ary de Bruijn sequences of order `.
Tony Grubman Cycles in de Bruijn graphs 11 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Definition
A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).
Theorem
The number of Eulerian circuits in an Eulerian digraph G is
τ(G)∏
v∈V (G)
(d+(v)− 1)!
d+(v) is the out-degree of vertex v
τ(G) is the number of spanning arborescences rooted at some vertex
I Does not depend on choice of root vertex
Corollary
There are exactly(q!)q
`−1
q`q-ary de Bruijn sequences of order `.
Tony Grubman Cycles in de Bruijn graphs 11 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Definition
A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).
Theorem
The number of Eulerian circuits in an Eulerian digraph G is
τ(G)∏
v∈V (G)
(d+(v)− 1)!
d+(v) is the out-degree of vertex v
τ(G) is the number of spanning arborescences rooted at some vertex
I Does not depend on choice of root vertex
Corollary
There are exactly(q!)q
`−1
q`q-ary de Bruijn sequences of order `.
Tony Grubman Cycles in de Bruijn graphs 11 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Definition
A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).
Theorem
The number of Eulerian circuits in an Eulerian digraph G is
τ(G)∏
v∈V (G)
(d+(v)− 1)!
d+(v) is the out-degree of vertex v
τ(G) is the number of spanning arborescences rooted at some vertexI Does not depend on choice of root vertex
Corollary
There are exactly(q!)q
`−1
q`q-ary de Bruijn sequences of order `.
Tony Grubman Cycles in de Bruijn graphs 11 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Definition
A q-ary de Bruijn sequence of order ` is a Hamiltonian cycle in dB(q, `).
Theorem
The number of Eulerian circuits in an Eulerian digraph G is
τ(G)∏
v∈V (G)
(d+(v)− 1)!
d+(v) is the out-degree of vertex v
τ(G) is the number of spanning arborescences rooted at some vertexI Does not depend on choice of root vertex
Corollary
There are exactly(q!)q
`−1
q`q-ary de Bruijn sequences of order `.
Tony Grubman Cycles in de Bruijn graphs 11 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)
I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)
I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1000000
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0100000
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0010000
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0001000
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0000100
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0000010
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0000001
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
1110010
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0111001
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0111001
1xx2x3x4x5x6
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Galois LFSRs
Let q be a prime power, and consider the Galois field GF(q)
Choose a degree ` primitive polynomial p(x) over GF(q)I The quotient F = GF(q)[x]/〈p(x)〉 is generated by x
Repeatedly multiplying by x gives every non-zero element of F
Easily implemented as a digital logic circuit
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1)
0111001
1xx2x3x4x5x61110010
Tony Grubman Cycles in de Bruijn graphs 12 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Galois
1000000
1xx2x3x4x5x61110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10000001x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
00000011x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
00000101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
00001011x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
00010101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
00101011x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
01010111x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configuration
I Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configurationI Additive feedback is many-to-one, instead of one-to-many
I The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
Fibonacci LFSRs
Example (q = 2, p(x) = x7 + x5 + x2 + x+ 1) — Fibonacci
10101101x6 + x4 + xx5 + x3x4 + x2x3 + xx2x
1110010
Different logic configurationI Additive feedback is many-to-one, instead of one-to-manyI The shift direction is reversed
Same polynomial may be used
Also represents consecutive powers of x, but in a different basis
Produces an identical sequence in the last digit
Tony Grubman Cycles in de Bruijn graphs 13 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycle
I Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)
I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycle
I Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}Can be extended to all of dB(q, `)
I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)
I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)
I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1
I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registers
I Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary Existence LFSRs
de Bruijn sequences from LFSRs
In the Fibonacci configuration, state transitions correspond to edgesin dB(q, `)
All non-zero states are traversed in a single cycleI Gives a Hamiltonian cycle in dB(q, `) \ {00 . . . 0}
Can be extended to all of dB(q, `)I Insert 00 . . . 0 before 00 . . . 1I Previous edge c0 . . . 0→ 00 . . . 1 becomes two edgesc0 . . . 0→ 00 . . . 0→ 00 . . . 1
Every primitive polynomial gives a different de Bruijn sequence
I There areϕ(q` − 1)
`q-ary de Bruijn sequences of order ` arising from
linear feedback shift registersI Most are “non-linear” feedback shift registers
Tony Grubman Cycles in de Bruijn graphs 14 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSR
I This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuit
I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)
I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuit
I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuit
I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuit
I After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertex
I Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:
I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}
I Unique solution for each c: f(x) = cxk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)
I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)I Requires (q − 1)k ≤ q` − 1 for cycles to be disjoint
I This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Length k subsequences in de Bruijn sequences
Consider a de Bruijn sequence in dB(q, `) constructed from a LFSRI This corresponds to an Eulerian circuit in dB(q, `− 1)I State polynomial of LFSR represents an edge
Suppose we want to find a k-subcircuit in this Eulerian circuitI After k iterations of the LFSR, we should be at the same vertexI Equivalent to changing the constant term in state polynomial
This can be expressed as an equation in the quotient field:I xkf(x) = f(x) + c for some c ∈ GF(q) \ {0}I Unique solution for each c: f(x) = c
xk−1
We have found q − 1 k-cycles in dB(q, `)I Requires (q − 1)k ≤ q` − 1 for cycles to be disjointI This is sufficient because cycles are evenly distributed
E(q, k, `) ≥ q − 1 for k ≤ q` − 1
q − 1
Tony Grubman Cycles in de Bruijn graphs 15 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequence
I The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomial
I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequence
I The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomial
I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequence
I The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomial
I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomial
I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomial
I The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into C
I dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cycles
I E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for others
I For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomial
I Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Optimality for k = q`−1
Consider the case when k = q`−1
I q` − k states of the LFSR are covered by the q − 1 k-cycles
Take these cycles out of the LFSR sequenceI The remaining k − 1 states form a cycle C
Suppose one of the states in C is a constant polynomialI The zero polynomial can be inserted into CI dB(q, `) contains q disjoint k-cyclesI E(q, q`−1, `) = q
C contains a constant iff − logx(xk − 1) mod q`−1q−1 ≤
k−1q−1
I This may be true for some primitive polynomials and false for othersI For a given q and `, we only need one polynomialI Depends on the distribution of the discrete logarithm
Tony Grubman Cycles in de Bruijn graphs 16 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Multiplying cycles
Theorem
Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then
E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.
Preserves optimality w.r.t. upper bound E ≤ q`
k
I If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)
When k1 and k2 are coprime, not much is gained
Largest increase in E when k1 = k2
I Easy to get large E when q is divisible by a high power
Tony Grubman Cycles in de Bruijn graphs 17 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Multiplying cycles
Theorem
Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then
E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.
Preserves optimality w.r.t. upper bound E ≤ q`
k
I If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)
When k1 and k2 are coprime, not much is gained
Largest increase in E when k1 = k2
I Easy to get large E when q is divisible by a high power
Tony Grubman Cycles in de Bruijn graphs 17 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Multiplying cycles
Theorem
Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then
E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.
Preserves optimality w.r.t. upper bound E ≤ q`
kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)
When k1 and k2 are coprime, not much is gained
Largest increase in E when k1 = k2
I Easy to get large E when q is divisible by a high power
Tony Grubman Cycles in de Bruijn graphs 17 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Multiplying cycles
Theorem
Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then
E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.
Preserves optimality w.r.t. upper bound E ≤ q`
kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)
When k1 and k2 are coprime, not much is gained
Largest increase in E when k1 = k2
I Easy to get large E when q is divisible by a high power
Tony Grubman Cycles in de Bruijn graphs 17 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Multiplying cycles
Theorem
Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then
E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.
Preserves optimality w.r.t. upper bound E ≤ q`
kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)
When k1 and k2 are coprime, not much is gained
Largest increase in E when k1 = k2
I Easy to get large E when q is divisible by a high power
Tony Grubman Cycles in de Bruijn graphs 17 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Multiplying cycles
Theorem
Fix a value of ` and set E1 = E(q1, k1, `) and E2 = E(q2, k2, `). Then
E(q1q2, lcm(k1, k2), `) ≥ gcd(k1, k2) E1 E2.
Preserves optimality w.r.t. upper bound E ≤ q`
kI If E1 and E2 are optimal, then so is E(q1q2, lcm(k1, k2), `)
When k1 and k2 are coprime, not much is gained
Largest increase in E when k1 = k2I Easy to get large E when q is divisible by a high power
Tony Grubman Cycles in de Bruijn graphs 17 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Construction for k1 = k2
Tony Grubman Cycles in de Bruijn graphs 18 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Proof of correctness (sketch)
Consider any sequence of ` colour pairs in resulting eBugs
I This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings
Sequence corresponds to a particular pair of eBugs in a particularorientation
I Resulting eBugs can still be uniquely identified and oriented
Theorem easily extends to k1 6= k2 case
Tony Grubman Cycles in de Bruijn graphs 19 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Proof of correctness (sketch)
Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequence
I These had unique positions in original colourings
Sequence corresponds to a particular pair of eBugs in a particularorientation
I Resulting eBugs can still be uniquely identified and oriented
Theorem easily extends to k1 6= k2 case
Tony Grubman Cycles in de Bruijn graphs 19 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Proof of correctness (sketch)
Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings
Sequence corresponds to a particular pair of eBugs in a particularorientation
I Resulting eBugs can still be uniquely identified and oriented
Theorem easily extends to k1 6= k2 case
Tony Grubman Cycles in de Bruijn graphs 19 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Proof of correctness (sketch)
Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings
Sequence corresponds to a particular pair of eBugs in a particularorientation
I Resulting eBugs can still be uniquely identified and oriented
Theorem easily extends to k1 6= k2 case
Tony Grubman Cycles in de Bruijn graphs 19 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Proof of correctness (sketch)
Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings
Sequence corresponds to a particular pair of eBugs in a particularorientation
I Resulting eBugs can still be uniquely identified and oriented
Theorem easily extends to k1 6= k2 case
Tony Grubman Cycles in de Bruijn graphs 19 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Proof of correctness (sketch)
Consider any sequence of ` colour pairs in resulting eBugsI This gives a red/blue sequence and a yellow/cyan sequenceI These had unique positions in original colourings
Sequence corresponds to a particular pair of eBugs in a particularorientation
I Resulting eBugs can still be uniquely identified and oriented
Theorem easily extends to k1 6= k2 case
Tony Grubman Cycles in de Bruijn graphs 19 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graph
I The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graph
I Two necklaces of length ` are mergable if they share a subword oflength `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graph
I The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graph
I Two necklaces of length ` are mergable if they share a subword oflength `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graph
I The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graph
I Two necklaces of length ` are mergable if they share a subword oflength `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graph
I Two necklaces of length ` are mergable if they share a subword oflength `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graph
I Two necklaces of length ` are mergable if they share a subword oflength `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graphI Two necklaces of length ` are mergable if they share a subword of
length `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graphI Two necklaces of length ` are mergable if they share a subword of
length `− 1
Construct a graph N(q, `) of necklaces of length ` over q letters
I Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Necklaces
Definition
A necklace is an equivalence class of words under cyclic rotation. Thelength of a necklace is the length of any word in the class, while the size ofa necklace is the number of words in the class.
Example
001021 ≡ 010210 ≡ 102100 ≡ 021001 ≡ 210010 ≡ 100102
Every necklace gives a cycle in a de Bruijn graphI The length of the cycle is the size of the necklace
Cycles can be concatenated in the previous de Bruijn graphI Two necklaces of length ` are mergable if they share a subword of
length `− 1
Construct a graph N(q, `) of necklaces of length ` over q lettersI Edge between two necklaces if they are mergable
Tony Grubman Cycles in de Bruijn graphs 20 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)
I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size k
I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cycles
I The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size k
I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycle
I The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size k
I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size k
I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size k
I Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cycles
I Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `
I Moreau’s necklace counting function: M(q,m) = 1m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1
m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1
m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each m
I Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1
m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected pieces
I For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1
m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklaces
I Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1
m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same length
I Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Merging necklaces
Consider a connected subgraph of N(q, `)I Edges can be contracted by merging the appropriate cyclesI The whole subgraph will produce one long cycleI The length of the cycle is the sum of the necklace sizes
Consider a partition of N(q, `) into connected pieces of total size kI Gives a partition of dB(q, `) into k-cyclesI Difficult to find because N(q, `) has necklaces of different sizes
N(q, `) contains necklaces of each size m that divides `I Moreau’s necklace counting function: M(q,m) = 1
m
∑d|m
µ(d)qm/d
If q and ` are coprime, M(q,m) is divisible by q for each mI Potential to partition N(q, `) into q connected piecesI For each size m, every piece has same number of size m necklacesI Resulting cycles all have the same lengthI Will give E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 21 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}
I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}
I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}
I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace n
I There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and n
I Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0
I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0I N0 is connected
I By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1
I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary LFSR splits Product colouring Combining necklaces
Partitioning N(q, `)
Example (q = 2)
As ` must be odd, each necklace contains a majority of some letter (0 or1). Let N0 (N1) be the set of necklaces with more 0s (1s).
Let n0 ∈ N0 be the all zeroes necklace
Pick a necklace n in N0 \ {n0}I Change the first 1 in n to a 0, and call this necklace nI There is an edge in N(q, `) between n and nI Note that n ∈ N0
By induction, there is a path in N0 from n to n0I N0 is connectedI By symmetry, N1 is connected
Each component gives a cycle of length 2`−1 in dB(q, `)
Similar methods give a partition for general q whenever gcd(q, `) = 1I E(q, q`−1, `) = q
Tony Grubman Cycles in de Bruijn graphs 22 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)
I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)
I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1
I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available colours
I Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)
I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1
I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)
I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1
I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)
I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1
I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1
I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1
I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequences
I One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles exists
I Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprime
I Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime power
I Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugs
I Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugsI Must have the same ` value
I Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugsI Must have the same ` valueI Resulting eBugs have q1q2 possible colours
I Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugsI Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)
I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Overall goal: investigate behaviour of eBug number E(q, k, `)I Each eBug has k LEDs with q available coloursI Camera can see ` consecutive LEDs
Equivalent to finding k-cycles in the de Bruijn graph dB(q, `)I E(q, k, `) maximised when dB(q, `) is partitioned into k-cycles
de Bruijn graphs are Hamiltonian, so E(q, q`, `) = 1I Called de Bruijn sequencesI One big eBug is not very useful
In some cases, partition into q q`−1-cycles existsI Guaranteed when q and ` are coprimeI Likely when q is a prime powerI Requires primitive polynomial with certain properties
Two eBug colourings can be multiplied to give many eBugsI Must have the same ` valueI Resulting eBugs have q1q2 possible coloursI Resulting cycle length is lcm(k1, k2)I Each pair of eBugs gives gcd(k1, k2) new eBugs
Tony Grubman Cycles in de Bruijn graphs 23 / 24
Introduction de Bruijn sequences Results Summary
Summary
Minimum k for which E(q, k, `) = q`
kguaranteed
` q = 2 q = 3 q = 4 q = 6 q = 12
1 1 1 1 1 12 4 3 4 12 123 4 27 4 108 1084 16 27 16 432 4325 16 81 16 1296 12966 64 729 64 46656 466567 64 729 64 46656 46656
Tony Grubman Cycles in de Bruijn graphs 24 / 24