### Algorithms for matrix groups

Eamonn O’Brien

University of Auckland

December 2010

### Overview

G = hX i ≤ GL(d , R) where R is a ring; usually finite field GF(q)

Goal: efficient algorithms, for their study, which are both theoretically and practically effective.

### Overview

G = hX i ≤ GL(d , R) where R is a ring; usually finite field GF(q) Goal: efficient algorithms, for their study, which are both

theoretically and practically effective.

### Why do we care?

Modular representation theory: Dickson (1910s), applications to number theory, algebraic groups etc.

Sporadic simple groups: constructed as irreducible representations over small fields.

Benson et al. (1982): J_{4}≤ GL(112, 2), order 10^{20}.

Invariant theory: irreducible representations, Kronecker products, tensor-induced representations.

Energy levels of systems of identical particles: irreducible representations of classical groups

### Why do we care?

Modular representation theory: Dickson (1910s), applications to number theory, algebraic groups etc.

Sporadic simple groups: constructed as irreducible representations over small fields.

Benson et al. (1982): J_{4}≤ GL(112, 2), order 10^{20}.

Invariant theory: irreducible representations, Kronecker products, tensor-induced representations.

Energy levels of systems of identical particles: irreducible representations of classical groups

### Why do we care?

Modular representation theory: Dickson (1910s), applications to number theory, algebraic groups etc.

Sporadic simple groups: constructed as irreducible representations over small fields.

Benson et al. (1982): J_{4}≤ GL(112, 2), order 10^{20}.

Invariant theory: irreducible representations, Kronecker products, tensor-induced representations.

Energy levels of systems of identical particles: irreducible representations of classical groups

### Why do we care?

Sporadic simple groups: constructed as irreducible representations over small fields.

Benson et al. (1982): J_{4} ≤ GL(112, 2), order 10^{20}.

Invariant theory: irreducible representations, Kronecker products, tensor-induced representations.

Energy levels of systems of identical particles: irreducible representations of classical groups

### Why do we care?

Sporadic simple groups: constructed as irreducible representations over small fields.

Benson et al. (1982): J_{4} ≤ GL(112, 2), order 10^{20}.

Invariant theory: irreducible representations, Kronecker products, tensor-induced representations.

Energy levels of systems of identical particles: irreducible representations of classical groups

### Why do we care?

Sporadic simple groups: constructed as irreducible representations over small fields.

Benson et al. (1982): J_{4} ≤ GL(112, 2), order 10^{20}.

Invariant theory: irreducible representations, Kronecker products, tensor-induced representations.

Energy levels of systems of identical particles: irreducible representations of classical groups

### Cost of matrix multiplication

Two d × d matrices A and B

Cost of A × B using conventional algorithm is O(d^{3}).

Strassen: O(d^{log}^{2}^{(7)})

Coppersmith & Winograd (1990): O(d^{2.37})

Where do we notice improvements? Perhaps for d ≥ 100.

### Cost of matrix multiplication

Two d × d matrices A and B

Cost of A × B using conventional algorithm is O(d^{3}).

Strassen: O(d^{log}^{2}^{(7)})

Coppersmith & Winograd (1990): O(d^{2.37})

Where do we notice improvements? Perhaps for d ≥ 100.

### Cost of matrix multiplication

Two d × d matrices A and B

Cost of A × B using conventional algorithm is O(d^{3}).

Strassen: O(d^{log}^{2}^{(7)})

Coppersmith & Winograd (1990): O(d^{2.37})

Where do we notice improvements? Perhaps for d ≥ 100.

### Cost of matrix multiplication

Two d × d matrices A and B

Cost of A × B using conventional algorithm is O(d^{3}).

Strassen: O(d^{log}^{2}^{(7)})

Coppersmith & Winograd (1990): O(d^{2.37})
Where do we notice improvements?

Perhaps for d ≥ 100.

### Cost of matrix multiplication

Two d × d matrices A and B

Cost of A × B using conventional algorithm is O(d^{3}).

Strassen: O(d^{log}^{2}^{(7)})

Coppersmith & Winograd (1990): O(d^{2.37})

Where do we notice improvements? Perhaps for d ≥ 100.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.
GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search. Even for . . . 1 × 1 matrices over GF(q): membership related to

Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.
No polynomial-time algorithm known.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.

GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search. Even for . . . 1 × 1 matrices over GF(q): membership related to

Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.
No polynomial-time algorithm known.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.

GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search. Even for . . . 1 × 1 matrices over GF(q): membership related to

Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.
No polynomial-time algorithm known.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.

GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search.

Even for . . . 1 × 1 matrices over GF(q): membership related to

Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.
No polynomial-time algorithm known.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.

GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search.

Even for . . . 1 × 1 matrices over GF(q):

membership related to

Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.
No polynomial-time algorithm known.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.

GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search.

Even for . . . 1 × 1 matrices over GF(q):

membership related to Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.

No polynomial-time algorithm known.

### Membership

Given G ≤ GL(d , Z), and x ∈ GL(d, Z): is x ∈ G ?

Mihailova (1958): membership problem is undecidable for d ≥ 4.

GF(q) : |GL(d , q)| = O(q^{d}^{2})

Membership decidable from exhaustive search.

Even for . . . 1 × 1 matrices over GF(q):

membership related to Discrete log problem

F = GF(q), ω ∈ F primitive.

Given α ∈ F , determine k so that α = ω^{k}.

### Challenge Problem I: Order of a matrix

Let g ∈ GL(d , q).

Find n ≥ 1 such that g^{n}= 1.

GL(d , q) has elements of order q^{d}− 1 (Singer cycles)

To find |g |: probably requires factorisation of numbers of form
q^{i}− 1, a hard problem.

Babai & Beals (1999): Theorem

If the set of primes dividing a multiplicative upper-bound B for |g | is known, then the precise value of |g | can be determined in polynomial time.

### Challenge Problem I: Order of a matrix

Let g ∈ GL(d , q).

Find n ≥ 1 such that g^{n}= 1.

GL(d , q) has elements of order q^{d}− 1 (Singer cycles)

To find |g |: probably requires factorisation of numbers of form
q^{i}− 1, a hard problem.

Babai & Beals (1999): Theorem

If the set of primes dividing a multiplicative upper-bound B for |g | is known, then the precise value of |g | can be determined in polynomial time.

### Challenge Problem I: Order of a matrix

Let g ∈ GL(d , q).

Find n ≥ 1 such that g^{n}= 1.

GL(d , q) has elements of order q^{d}− 1 (Singer cycles)

To find |g |: probably requires factorisation of numbers of form
q^{i}− 1, a hard problem.

Babai & Beals (1999): Theorem

If the set of primes dividing a multiplicative upper-bound B for |g | is known, then the precise value of |g | can be determined in polynomial time.

### Challenge Problem I: Order of a matrix

Let g ∈ GL(d , q).

Find n ≥ 1 such that g^{n}= 1.

GL(d , q) has elements of order q^{d}− 1 (Singer cycles)

To find |g |: probably requires factorisation of numbers of form
q^{i}− 1, a hard problem.

Babai & Beals (1999):

Theorem

If the set of primes dividing a multiplicative upper-bound B for |g | is known, then the precise value of |g | can be determined in

Celler & Leedham-Green (1995): compute order in time
O(d^{3}log q) subject to factorisation of q^{i} − 1 for 1 ≤ i ≤ d .

• Compute a “good” multiplicative upper bound E for |g |. Determine and factorise minimal polynomial for g as

m(x ) =

t

Y

i =1

f_{i}(x )^{m}^{i}

where deg(f_{i}) = d_{i} and β = dlog_{p}max m_{i}e.
E = lcm(q^{d}^{i} − 1) × p^{β}

|g | divides E .

Celler & Leedham-Green (1995): compute order in time
O(d^{3}log q) subject to factorisation of q^{i} − 1 for 1 ≤ i ≤ d .

• Compute a “good” multiplicative upper bound E for |g |.

Determine and factorise minimal polynomial for g as

m(x ) =

t

Y

i =1

f_{i}(x )^{m}^{i}

where deg(f_{i}) = d_{i} and β = dlog_{p}max m_{i}e.
E = lcm(q^{d}^{i} − 1) × p^{β}

|g | divides E .

Celler & Leedham-Green (1995): compute order in time
O(d^{3}log q) subject to factorisation of q^{i} − 1 for 1 ≤ i ≤ d .

• Compute a “good” multiplicative upper bound E for |g |.

Determine and factorise minimal polynomial for g as

m(x ) =

t

Y

i =1

f_{i}(x )^{m}^{i}

where deg(f_{i}) = d_{i} and β = dlog_{p}max m_{i}e.

E = lcm(q^{d}^{i} − 1) × p^{β}

|g | divides E .

^{3}log q) subject to factorisation of q^{i} − 1 for 1 ≤ i ≤ d .

• Compute a “good” multiplicative upper bound E for |g |.

Determine and factorise minimal polynomial for g as

m(x ) =

t

Y

i =1

f_{i}(x )^{m}^{i}

where deg(f_{i}) = d_{i} and β = dlog_{p}max m_{i}e.

E = lcm(q^{d}^{i} − 1) × p^{β}

|g | divides E .

^{3}log q) subject to factorisation of q^{i} − 1 for 1 ≤ i ≤ d .

• Compute a “good” multiplicative upper bound E for |g |.

Determine and factorise minimal polynomial for g as

m(x ) =

t

Y

i =1

f_{i}(x )^{m}^{i}

where deg(f_{i}) = d_{i} and β = dlog_{p}max m_{i}e.

E = lcm(q^{d}^{i} − 1) × p^{β}

|g | divides E .

### How can we use E ?

If E =Qt

i =1p_{i}^{α}^{i} then we can determine |g | in O(log t log n)
multiplications.

If t = 1, then compute g^{p}^{j}^{1} for j = 1, 2, . . . , α1.

Otherwise write E = uv where u, v are coprime and have
approximately same number of distinct prime factors.
Now g^{u} has order k say, dividing v ;

and g^{k} has order ` say, dividing u.
The order of g is k`.

### How can we use E ?

If E =Qt

i =1p_{i}^{α}^{i} then we can determine |g | in O(log t log n)
multiplications.

If t = 1, then compute g^{p}^{j}^{1} for j = 1, 2, . . . , α1.

Otherwise write E = uv where u, v are coprime and have
approximately same number of distinct prime factors.
Now g^{u} has order k say, dividing v ;

and g^{k} has order ` say, dividing u.
The order of g is k`.

### How can we use E ?

If E =Qt

i =1p_{i}^{α}^{i} then we can determine |g | in O(log t log n)
multiplications.

If t = 1, then compute g^{p}^{j}^{1} for j = 1, 2, . . . , α1.

Otherwise write E = uv where u, v are coprime and have approximately same number of distinct prime factors.

Now g^{u} has order k say, dividing v ;
and g^{k} has order ` say, dividing u.
The order of g is k`.

### How can we use E ?

If E =Qt

i =1p_{i}^{α}^{i} then we can determine |g | in O(log t log n)
multiplications.

If t = 1, then compute g^{p}^{j}^{1} for j = 1, 2, . . . , α1.

Otherwise write E = uv where u, v are coprime and have approximately same number of distinct prime factors.

Now g^{u} has order k say, dividing v ;

and g^{k} has order ` say, dividing u.
The order of g is k`.

### How can we use E ?

If E =Qt

i =1p_{i}^{α}^{i} then we can determine |g | in O(log t log n)
multiplications.

If t = 1, then compute g^{p}^{j}^{1} for j = 1, 2, . . . , α1.

Otherwise write E = uv where u, v are coprime and have approximately same number of distinct prime factors.

Now g^{u} has order k say, dividing v ;
and g^{k} has order ` say, dividing u.

The order of g is k`.

### How can we use E ?

If E =Qt

i =1p_{i}^{α}^{i} then we can determine |g | in O(log t log n)
multiplications.

If t = 1, then compute g^{p}^{j}^{1} for j = 1, 2, . . . , α1.

Now g^{u} has order k say, dividing v ;
and g^{k} has order ` say, dividing u.

The order of g is k`.

So cost is O(d^{3}log q log t) field operations if we can factorise E .

If we don’t complete the factorisation, then obtain pseudo-order [order × some large primes] of g suffices for most theoretical and practical purposes.

Implementations in both GAP and Magma use databases of
factorisations of numbers of the form q^{i}− 1, prepared as part of
the Cunningham Project.

So cost is O(d^{3}log q log t) field operations if we can factorise E .
If we don’t complete the factorisation, then obtain pseudo-order
[order × some large primes] of g

suffices for most theoretical and practical purposes.

Implementations in both GAP and Magma use databases of
factorisations of numbers of the form q^{i}− 1, prepared as part of
the Cunningham Project.

So cost is O(d^{3}log q log t) field operations if we can factorise E .
If we don’t complete the factorisation, then obtain pseudo-order
[order × some large primes] of g suffices for most theoretical and
practical purposes.

Implementations in both GAP and Magma use databases of
factorisations of numbers of the form q^{i}− 1, prepared as part of
the Cunningham Project.

So cost is O(d^{3}log q log t) field operations if we can factorise E .
If we don’t complete the factorisation, then obtain pseudo-order
[order × some large primes] of g suffices for most theoretical and
practical purposes.

^{i}− 1, prepared as part of
the Cunningham Project.

### Variation on this theme

Task: Determine if g has even order.

If we just know E , then we can learn in polynomial time the exact power of 2 (or of any specified prime) which divides |g |.

By repeated division by 2, we write E = 2^{m}b where b is odd.
Now we compute h = g^{b}, and determine (by powering) its order
which divides 2^{m}.

### Variation on this theme

Task: Determine if g has even order.

If we just know E , then we can learn in polynomial time the exact power of 2 (or of any specified prime) which divides |g |.

By repeated division by 2, we write E = 2^{m}b where b is odd.
Now we compute h = g^{b}, and determine (by powering) its order
which divides 2^{m}.

### Variation on this theme

Task: Determine if g has even order.

If we just know E , then we can learn in polynomial time the exact power of 2 (or of any specified prime) which divides |g |.

By repeated division by 2, we write E = 2^{m}b where b is odd.

Now we compute h = g^{b}, and determine (by powering) its order
which divides 2^{m}.

### Variation on this theme

Task: Determine if g has even order.

By repeated division by 2, we write E = 2^{m}b where b is odd.

Now we compute h = g^{b}, and determine (by powering) its order
which divides 2^{m}.

### Randomness

|GL(d , q)| = O(q^{d}^{2})

Many algorithms are randomised: use random search in G to find elements having prescribed property P.

Example

Characteristic polynomial having factor of degree > d /2.

Order divisible by prescribed prime.

Common feature: algorithms depend on detailed analysis of proportion of elements of finite simple groups satisfying P.

### Randomness

|GL(d , q)| = O(q^{d}^{2})

Many algorithms are randomised: use random search in G to find elements having prescribed property P.

Example

Characteristic polynomial having factor of degree > d /2.

Order divisible by prescribed prime.

Common feature: algorithms depend on detailed analysis of proportion of elements of finite simple groups satisfying P.

### Randomness

|GL(d , q)| = O(q^{d}^{2})

Many algorithms are randomised: use random search in G to find elements having prescribed property P.

Example

Characteristic polynomial having factor of degree > d /2.

Order divisible by prescribed prime.

Common feature: algorithms depend on detailed analysis of proportion of elements of finite simple groups satisfying P.

Assume we determine a lower bound, say 1/k, for proportion of elements in G satisfying Property P.

To find element satisfying P by random search with a probability
of failure less than given ∈ (0, 1): choose a sample of uniformly
distributed random elements in G of size at least d− log_{e}()ek.

Assume we determine a lower bound, say 1/k, for proportion of elements in G satisfying Property P.

To find element satisfying P by random search with a probability
of failure less than given ∈ (0, 1): choose a sample of uniformly
distributed random elements in G of size at least d− log_{e}()ek.

### Challenge Problem II: Generate random elements

Babai (1991): Vertex-transitive graph approach

Independent nearly uniformly random distributed elements of finite
group G = hX i can be found after a preprocessing stage consisting
of O(log^{5}|G |) group operations.

Preprocessing proceeds in O(log |G |) phases.

In each phase, random walk of random length between 1 and
O((log |G |)^{4}) performed on Cayley graph of G .

Element found when walk finished is added to generators of G . Walk is repeated O(log |G |) times.

### Challenge Problem II: Generate random elements

Babai (1991): Vertex-transitive graph approach

Independent nearly uniformly random distributed elements of finite
group G = hX i can be found after a preprocessing stage consisting
of O(log^{5}|G |) group operations.

Preprocessing proceeds in O(log |G |) phases.

In each phase, random walk of random length between 1 and
O((log |G |)^{4}) performed on Cayley graph of G .

Element found when walk finished is added to generators of G . Walk is repeated O(log |G |) times.

### Challenge Problem II: Generate random elements

Babai (1991): Vertex-transitive graph approach

Independent nearly uniformly random distributed elements of finite
group G = hX i can be found after a preprocessing stage consisting
of O(log^{5}|G |) group operations.

Preprocessing proceeds in O(log |G |) phases.

In each phase, random walk of random length between 1 and
O((log |G |)^{4}) performed on Cayley graph of G .

Element found when walk finished is added to generators of G . Walk is repeated O(log |G |) times.

### Challenge Problem II: Generate random elements

Babai (1991): Vertex-transitive graph approach

^{5}|G |) group operations.

Preprocessing proceeds in O(log |G |) phases.

^{4}) performed on Cayley graph of G .

Element found when walk finished is added to generators of G . Walk is repeated O(log |G |) times.

### Challenge Problem II: Generate random elements

Babai (1991): Vertex-transitive graph approach

^{5}|G |) group operations.

Preprocessing proceeds in O(log |G |) phases.

^{4}) performed on Cayley graph of G .

Element found when walk finished is added to generators of G .

Walk is repeated O(log |G |) times.

### Challenge Problem II: Generate random elements

Babai (1991): Vertex-transitive graph approach

^{5}|G |) group operations.

Preprocessing proceeds in O(log |G |) phases.

^{4}) performed on Cayley graph of G .

Element found when walk finished is added to generators of G .

Final list S of O(log |G |) elements input to construction phase.

Random element is random subproduct of S :
g_{1}^{}^{1}. . . g_{m}^{}^{m}

where S = {g_{1}, . . . , g_{m}} and _{i} ∈ {0, 1} (chosen independently).
For G ≤ GL(d , q), log |G | < d^{2}log q.

Initialisation phase O(d^{10}log^{5}q).
Cost per random element is O(log |G |).

Final list S of O(log |G |) elements input to construction phase.

Random element is random subproduct of S :
g_{1}^{}^{1}. . . g_{m}^{}^{m}

where S = {g_{1}, . . . , g_{m}} and _{i} ∈ {0, 1} (chosen independently).

For G ≤ GL(d , q), log |G | < d^{2}log q.
Initialisation phase O(d^{10}log^{5}q).
Cost per random element is O(log |G |).

Final list S of O(log |G |) elements input to construction phase.

Random element is random subproduct of S :
g_{1}^{}^{1}. . . g_{m}^{}^{m}

where S = {g_{1}, . . . , g_{m}} and _{i} ∈ {0, 1} (chosen independently).

For G ≤ GL(d , q), log |G | < d^{2}log q.

Initialisation phase O(d^{10}log^{5}q).
Cost per random element is O(log |G |).

Final list S of O(log |G |) elements input to construction phase.

Random element is random subproduct of S :
g_{1}^{}^{1}. . . g_{m}^{}^{m}

where S = {g_{1}, . . . , g_{m}} and _{i} ∈ {0, 1} (chosen independently).

For G ≤ GL(d , q), log |G | < d^{2}log q.

Initialisation phase O(d^{10}log^{5}q).

Cost per random element is O(log |G |).

Final list S of O(log |G |) elements input to construction phase.

Random element is random subproduct of S :
g_{1}^{}^{1}. . . g_{m}^{}^{m}

where S = {g_{1}, . . . , g_{m}} and _{i} ∈ {0, 1} (chosen independently).

For G ≤ GL(d , q), log |G | < d^{2}log q.

Initialisation phase O(d^{10}log^{5}q).

Cost per random element is O(log |G |).

### CLMNO (1995): Product replacement algorithm

Input: ordered list of generators [g_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .
Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

Input: ordered list of generators [g_{1}, . . . , g_{m}] for G .

Accumulator: r initialised to be identity of G . Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

Input: ordered list of generators [g_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .

Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

Input: ordered list of generators [g_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .
Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

Input: ordered list of generators [g_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .
Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .
Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .
Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

### CLMNO (1995): Product replacement algorithm

_{1}, . . . , g_{m}] for G .
Accumulator: r initialised to be identity of G .
Basic step:

Select at random i , j where 1 ≤ i , j ≤ m.

Replace g_{i} by either g_{i}g_{j} or g_{j}g_{i}.

Multiply r by g_{i}.

Basic step repeated a number, say t, of times.

Now to obtain random element: execute basic operation once, and return r as random element.

Cost: after initialisation, two matrix multiplications.

Markov chain: a discrete random process with a finite number of states and it satisfies the property that the next state depends only on the current state.

Aperiodic: all states occur with equal probability. Theorem

Let T be set of all m-tuples of generators of G . Then the

algorithm constructs a Markov chain over state space T , and if m is at least twice the size of a minimal generating set of generators for G , this Markov chain is connected and aperiodic.

The random walk approaches a limiting distribution at exponential
rate O((1 − δ)^{t}) where t is number of steps taken.

Cost: after initialisation, two matrix multiplications.

Markov chain: a discrete random process with a finite number of states and it satisfies the property that the next state depends only on the current state.

Aperiodic: all states occur with equal probability. Theorem

Let T be set of all m-tuples of generators of G . Then the

algorithm constructs a Markov chain over state space T , and if m is at least twice the size of a minimal generating set of generators for G , this Markov chain is connected and aperiodic.

The random walk approaches a limiting distribution at exponential
rate O((1 − δ)^{t}) where t is number of steps taken.

Cost: after initialisation, two matrix multiplications.

Markov chain: a discrete random process with a finite number of states and it satisfies the property that the next state depends only on the current state.

Aperiodic: all states occur with equal probability.

Theorem

Let T be set of all m-tuples of generators of G . Then the

algorithm constructs a Markov chain over state space T , and if m is at least twice the size of a minimal generating set of generators for G , this Markov chain is connected and aperiodic.

The random walk approaches a limiting distribution at exponential
rate O((1 − δ)^{t}) where t is number of steps taken.

Cost: after initialisation, two matrix multiplications.

Aperiodic: all states occur with equal probability.

Theorem

Let T be set of all m-tuples of generators of G . Then the

^{t}) where t is number of steps taken.

Cost: after initialisation, two matrix multiplications.

Aperiodic: all states occur with equal probability.

Theorem

Let T be set of all m-tuples of generators of G . Then the

The random walk approaches a limiting distribution at exponential

### Mixing time

What can we say about the “mixing time”, t?

Variety of statistical tests applied to test outcome of algorithm. Practical: excellent.

Diaconis & Saloff-Coste (1997, 1998):

t = O(δ^{2}(G , S ) · m), where δ(G , S ) is the maximal diameter
for the Cayley graph of G wrt generating set S .

Comparison of two Markov chains on different but related state spaces and combinatorics of random paths.

Pak (2001): Mixing time is polynomial. Multi-commodity flow technique.

Lubotzky & Pak (2002):

Does the group of automorphisms of a free group of rank > 3 have Kazhdan’s property (T)? If so, then “graph of states” is well-behaved, giving excellent mixing time.

### Mixing time

What can we say about the “mixing time”, t?

Variety of statistical tests applied to test outcome of algorithm.

Practical: excellent.

Diaconis & Saloff-Coste (1997, 1998):

t = O(δ^{2}(G , S ) · m), where δ(G , S ) is the maximal diameter
for the Cayley graph of G wrt generating set S .

Comparison of two Markov chains on different but related state spaces and combinatorics of random paths.

Pak (2001): Mixing time is polynomial. Multi-commodity flow technique.

Lubotzky & Pak (2002):

Does the group of automorphisms of a free group of rank > 3 have Kazhdan’s property (T)? If so, then “graph of states” is well-behaved, giving excellent mixing time.

### Mixing time

What can we say about the “mixing time”, t?

Variety of statistical tests applied to test outcome of algorithm.

Practical: excellent.

Diaconis & Saloff-Coste (1997, 1998):

t = O(δ^{2}(G , S ) · m), where δ(G , S ) is the maximal diameter
for the Cayley graph of G wrt generating set S .

Comparison of two Markov chains on different but related state spaces and combinatorics of random paths.

Pak (2001): Mixing time is polynomial. Multi-commodity flow technique.

Lubotzky & Pak (2002):

Does the group of automorphisms of a free group of rank > 3 have Kazhdan’s property (T)? If so, then “graph of states” is well-behaved, giving excellent mixing time.

### Mixing time

What can we say about the “mixing time”, t?

Variety of statistical tests applied to test outcome of algorithm.

Practical: excellent.

Diaconis & Saloff-Coste (1997, 1998):

^{2}(G , S ) · m), where δ(G , S ) is the maximal diameter
for the Cayley graph of G wrt generating set S .

Pak (2001): Mixing time is polynomial. Multi-commodity flow technique.

Lubotzky & Pak (2002):

### Mixing time

What can we say about the “mixing time”, t?

Variety of statistical tests applied to test outcome of algorithm.

Practical: excellent.

Diaconis & Saloff-Coste (1997, 1998):

^{2}(G , S ) · m), where δ(G , S ) is the maximal diameter
for the Cayley graph of G wrt generating set S .

Pak (2001): Mixing time is polynomial. Multi-commodity flow technique.

Lubotzky & Pak (2002):

Does the group of automorphisms of a free group of rank > 3

### Permutation groups

Sims (1970, 1971): base and strong generating set (BSGS).

G acts faithfully on Ω = {1, . . . , n}

G_{} = {g ∈ G | ^{g} = }.

Base: sequence of points B = [1, 2, . . . , _{k}] where G1,2,...,k = 1.
This determines chain of stabilisers

G = G^{(0)} ≥ G^{(1)}≥ · · · ≥ G^{(k−1)}≥ G^{(k)} = 1,
where G^{(i )}= G_{}_{1}_{,}_{2}_{,...,}_{i}.

S strong generating set: G^{(i )}=S ∩ G^{(i )}
Example

G = h(1, 5, 2, 6), (1, 2)(3, 4)(5, 6)i B = [1, 3]

G > G_{1} > G_{1,3} = 1

S = {(1, 5, 2, 6), (1, 2)(3, 4)(5, 6), (3, 4)}

### Permutation groups

Sims (1970, 1971): base and strong generating set (BSGS).

G acts faithfully on Ω = {1, . . . , n}

G_{} = {g ∈ G | ^{g} = }.

Base: sequence of points B = [1, 2, . . . , _{k}] where G1,2,...,_{k} = 1.

This determines chain of stabilisers

G = G^{(0)} ≥ G^{(1)}≥ · · · ≥ G^{(k−1)}≥ G^{(k)} = 1,
where G^{(i )}= G_{}_{1}_{,}_{2}_{,...,}_{i}.

S strong generating set: G^{(i )}=S ∩ G^{(i )}
Example

G = h(1, 5, 2, 6), (1, 2)(3, 4)(5, 6)i B = [1, 3]

G > G_{1} > G_{1,3} = 1

S = {(1, 5, 2, 6), (1, 2)(3, 4)(5, 6), (3, 4)}

### Permutation groups

Sims (1970, 1971): base and strong generating set (BSGS).

G acts faithfully on Ω = {1, . . . , n}

G_{} = {g ∈ G | ^{g} = }.

Base: sequence of points B = [1, 2, . . . , _{k}] where G1,2,...,_{k} = 1.

This determines chain of stabilisers

G = G^{(0)} ≥ G^{(1)}≥ · · · ≥ G^{(k−1)} ≥ G^{(k)} = 1,
where G^{(i )}= G_{}_{1}_{,}_{2}_{,...,}_{i}.

S strong generating set: G^{(i )} =S ∩ G^{(i )}
Example

G = h(1, 5, 2, 6), (1, 2)(3, 4)(5, 6)i

Central task: construct basic orbits – orbit B_{i} of the base point

i +1 under G^{(i )}.

|G^{(i )}: G^{(i +1)}| = #B_{i}

Schreier’s Lemma gives generating set for each G^{(i )}.
Base image B^{g} = [^{g}_{1}, . . . ^{g}_{k}] uniquely determines g :

if B^{g} = B^{h} then B^{gh}^{−1} = B, so gh^{−1} = 1. Hence g can be
represented as |B|-tuple.

Variations underpin both theoretical and practical approaches to permutation group algorithms.

Central task: construct basic orbits – orbit B_{i} of the base point

i +1 under G^{(i )}.

|G^{(i )}: G^{(i +1)}| = #B_{i}

Schreier’s Lemma gives generating set for each G^{(i )}.
Base image B^{g} = [^{g}_{1}, . . . ^{g}_{k}] uniquely determines g :

if B^{g} = B^{h} then B^{gh}^{−1} = B, so gh^{−1} = 1. Hence g can be
represented as |B|-tuple.

Variations underpin both theoretical and practical approaches to permutation group algorithms.

Central task: construct basic orbits – orbit B_{i} of the base point

i +1 under G^{(i )}.

|G^{(i )}: G^{(i +1)}| = #B_{i}

Schreier’s Lemma gives generating set for each G^{(i )}.

Base image B^{g} = [^{g}_{1}, . . . ^{g}_{k}] uniquely determines g :

if B^{g} = B^{h} then B^{gh}^{−1} = B, so gh^{−1} = 1. Hence g can be
represented as |B|-tuple.

Variations underpin both theoretical and practical approaches to permutation group algorithms.

Central task: construct basic orbits – orbit B_{i} of the base point

i +1 under G^{(i )}.

|G^{(i )}: G^{(i +1)}| = #B_{i}

Schreier’s Lemma gives generating set for each G^{(i )}.
Base image B^{g} = [^{g}_{1}, . . . ^{g}_{k}] uniquely determines g :

if B^{g} = B^{h} then B^{gh}^{−1} = B, so gh^{−1} = 1. Hence g can be
represented as |B|-tuple.

Variations underpin both theoretical and practical approaches to permutation group algorithms.

Central task: construct basic orbits – orbit B_{i} of the base point

i +1 under G^{(i )}.

|G^{(i )}: G^{(i +1)}| = #B_{i}

^{(i )}.
Base image B^{g} = [^{g}_{1}, . . . ^{g}_{k}] uniquely determines g :

if B^{g} = B^{h} then B^{gh}^{−1} = B, so gh^{−1} = 1. Hence g can be
represented as |B|-tuple.

Variations underpin both theoretical and practical approaches to permutation group algorithms.

Central task: construct basic orbits – orbit B_{i} of the base point

i +1 under G^{(i )}.

|G^{(i )}: G^{(i +1)}| = #B_{i}

^{(i )}.
Base image B^{g} = [^{g}_{1}, . . . ^{g}_{k}] uniquely determines g :

if B^{g} = B^{h} then B^{gh}^{−1} = B, so gh^{−1} = 1. Hence g can be
represented as |B|-tuple.

Variations underpin both theoretical and practical approaches to permutation group algorithms.

### Schreier-Sims for matrix groups

G acts faithfully on V = F^{d}: v · g , for v ∈ V

Compute BSGS for G , viewed as permutation group on the vectors. Base points: standard basis vectors for V .

Central problem: basic orbits B_{i} large. Usually |B_{1}| is |G |.
Butler (1979): action of G on one-dimensional subspaces of V .
Murray & O’Brien (1995): heuristic algorithm to select base points.
Neunh¨offer et al. (2000s): use “helper subgroups” to construct
large orbits

### Schreier-Sims for matrix groups

G acts faithfully on V = F^{d}: v · g , for v ∈ V

Compute BSGS for G , viewed as permutation group on the vectors.

Base points: standard basis vectors for V .

Central problem: basic orbits B_{i} large. Usually |B_{1}| is |G |.
Butler (1979): action of G on one-dimensional subspaces of V .
Murray & O’Brien (1995): heuristic algorithm to select base points.
Neunh¨offer et al. (2000s): use “helper subgroups” to construct
large orbits

### Schreier-Sims for matrix groups

G acts faithfully on V = F^{d}: v · g , for v ∈ V

Compute BSGS for G , viewed as permutation group on the vectors.

Base points: standard basis vectors for V .

Central problem: basic orbits B_{i} large. Usually |B_{1}| is |G |.

Butler (1979): action of G on one-dimensional subspaces of V . Murray & O’Brien (1995): heuristic algorithm to select base points. Neunh¨offer et al. (2000s): use “helper subgroups” to construct large orbits

### Schreier-Sims for matrix groups

G acts faithfully on V = F^{d}: v · g , for v ∈ V

Compute BSGS for G , viewed as permutation group on the vectors.

Base points: standard basis vectors for V .

Central problem: basic orbits B_{i} large. Usually |B_{1}| is |G |.

Butler (1979): action of G on one-dimensional subspaces of V .

Murray & O’Brien (1995): heuristic algorithm to select base points. Neunh¨offer et al. (2000s): use “helper subgroups” to construct large orbits

### Schreier-Sims for matrix groups

G acts faithfully on V = F^{d}: v · g , for v ∈ V

Compute BSGS for G , viewed as permutation group on the vectors.

Base points: standard basis vectors for V .

Central problem: basic orbits B_{i} large. Usually |B_{1}| is |G |.

Butler (1979): action of G on one-dimensional subspaces of V . Murray & O’Brien (1995): heuristic algorithm to select base points.

Neunh¨offer et al. (2000s): use “helper subgroups” to construct large orbits

### Schreier-Sims for matrix groups

G acts faithfully on V = F^{d}: v · g , for v ∈ V

Compute BSGS for G , viewed as permutation group on the vectors.

Base points: standard basis vectors for V .

Central problem: basic orbits B_{i} large. Usually |B_{1}| is |G |.

Butler (1979): action of G on one-dimensional subspaces of V . Murray & O’Brien (1995): heuristic algorithm to select base points.

Neunh¨offer et al. (2000s): use “helper subgroups” to construct large orbits

Critical for success: index of one stabiliser in its predecessor.

|S_{n}: Sn−1| = n

“Optimal” subgroup chain for GL(d , q)?

GL(d , q) ≥ q^{d −1}.GL(d − 1, q) ≥ GL(d − 1, q) ≥ . . .
Leading index: q^{d}− 1.

Example

Largest maximal subgroup 2^{11}: M_{24}≤ J_{4} index 173 067 389.

Critical for success: index of one stabiliser in its predecessor.

|S_{n}: Sn−1| = n

“Optimal” subgroup chain for GL(d , q)?

GL(d , q) ≥ q^{d −1}.GL(d − 1, q) ≥ GL(d − 1, q) ≥ . . .
Leading index: q^{d}− 1.

Example

Largest maximal subgroup 2^{11}: M_{24}≤ J_{4} index 173 067 389.

Critical for success: index of one stabiliser in its predecessor.

|S_{n}: Sn−1| = n

“Optimal” subgroup chain for GL(d , q)?

GL(d , q) ≥ q^{d −1}.GL(d − 1, q) ≥ GL(d − 1, q) ≥ . . .
Leading index: q^{d}− 1.

Example

Largest maximal subgroup 2^{11}: M_{24}≤ J_{4} index 173 067 389.

Critical for success: index of one stabiliser in its predecessor.

|S_{n}: Sn−1| = n

“Optimal” subgroup chain for GL(d , q)?

GL(d , q) ≥ q^{d −1}.GL(d − 1, q) ≥ GL(d − 1, q) ≥ . . .
Leading index: q^{d}− 1.

Example

Largest maximal subgroup 2^{11}: M_{24}≤ J_{4} index 173 067 389.

### Geometry following Aschbacher

Aschbacher (1984)

G maximal subgroup of GL(d , q), let V be underlying vector space

G preserves somenatural linear structure associated with the action of G on V , and has normal subgroup related to this structure,

or G is almost simple modulo scalars: T ≤ G /Z ≤ Aut(T ) where T is simple.

### Geometry following Aschbacher

Aschbacher (1984)

G maximal subgroup of GL(d , q), let V be underlying vector space

G preserves somenatural linear structure associated with the action of G on V , and has normal subgroup related to this structure,

or G is almost simple modulo scalars: T ≤ G /Z ≤ Aut(T ) where T is simple.

### Geometry following Aschbacher

Aschbacher (1984)

G maximal subgroup of GL(d , q), let V be underlying vector space

G preserves somenatural linear structure associated with the action of G on V , and has normal subgroup related to this structure,

or G is almost simple modulo scalars: T ≤ G /Z ≤ Aut(T ) where T is simple.

### Basic strategy

1 Determine (at least one of) its Aschbacher categories.

2 If N C G exists, recognise N and G /N recursively, ultimately obtaining a composition series for the group.

7 categories giving normal subgroup Example

G acts imprimitively on V , preserving r blocks, so V = ⊕^{r}_{i =1}Vi.
Then φ : G → S_{r} where r |d and N = ker φ.

CompositionTree: exploits geometry to produce composition series for G , factors are leaves of tree.

### Basic strategy

1 Determine (at least one of) its Aschbacher categories.

2 If N C G exists, recognise N and G /N recursively, ultimately obtaining a composition series for the group.

7 categories giving normal subgroup

Example

G acts imprimitively on V , preserving r blocks, so V = ⊕^{r}_{i =1}Vi.
Then φ : G → S_{r} where r |d and N = ker φ.

CompositionTree: exploits geometry to produce composition series for G , factors are leaves of tree.

### Basic strategy

1 Determine (at least one of) its Aschbacher categories.

2 If N C G exists, recognise N and G /N recursively, ultimately obtaining a composition series for the group.

7 categories giving normal subgroup Example

G acts imprimitively on V , preserving r blocks, so V = ⊕^{r}_{i =1}Vi.

Then φ : G → S_{r} where r |d and N = ker φ.

CompositionTree: exploits geometry to produce composition series for G , factors are leaves of tree.

### Basic strategy

1 Determine (at least one of) its Aschbacher categories.

7 categories giving normal subgroup Example

G acts imprimitively on V , preserving r blocks, so V = ⊕^{r}_{i =1}Vi.
Then φ : G → S_{r} where r |d and N = ker φ.

CompositionTree: exploits geometry to produce composition series for G , factors are leaves of tree.

### Basic strategy

1 Determine (at least one of) its Aschbacher categories.

7 categories giving normal subgroup Example

^{r}_{i =1}Vi.
Then φ : G → S_{r} where r |d and N = ker φ.