Mathematics for large scale tensor computations
Transcript of Mathematics for large scale tensor computations
Mathematics for large scale
tensor computations
Jose M. Martın-Garcıa
Institut d’Astrophysique de Paris,
Laboratoire Universe et Theories
Meudon, October 2, 2009
What we consider
Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.
to several frames). Einstein convention for contractions.
Tb1b
1a
There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:
gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac
Tensors have symmetries. Most general expression we consider: an arbitrary polynomial
in any number of tensors, with homogeneous free indices.
· · · + FabcTbdT c
d − 7Feff Taduevd + · · ·
What we consider
Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.
to several frames). Einstein convention for contractions.
Tb1b
1a
There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:
gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac
Tensors have symmetries. Most general expression we consider: an arbitrary polynomial
in any number of tensors, with homogeneous free indices.
· · · + FabcTbdT c
d − 7Feff Taduevd + · · ·
What we consider
Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.
to several frames). Einstein convention for contractions.
Tb1b
1a
There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:
gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac
Tensors have symmetries. Most general expression we consider: an arbitrary polynomial
in any number of tensors, with homogeneous free indices.
· · · + FabcTbdT c
d − 7Feff Taduevd + · · ·
What we consider
Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.
to several frames). Einstein convention for contractions.
Tb1b
1a
There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:
gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac
Tensors have symmetries. Most general expression we consider: an arbitrary polynomial
in any number of tensors, with homogeneous free indices.
· · · + FabcTbdT c
d − 7Feff Taduevd + · · ·
What we consider
Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.
to several frames). Einstein convention for contractions.
Tb1b
1a
There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:
gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac
Tensors have symmetries. Most general expression we consider: an arbitrary polynomial
in any number of tensors, with homogeneous free indices.
· · · + FabcTbdT c
d − 7Feff Taduevd + · · ·
What we consider
Tensors in a single vector space V (general. to several spaces). Use indexed notations. Numeric component indices (general.
to several frames). Einstein convention for contractions.
Tb1b
1a
There is a single invertible metric gab, symmetric orantisymmetric (spinor calculus). Indices can always be raisedand lowered. Beware of non-compatible derivatives:
gab∂cvb 6= ∂cva, gab(∂v)bc = (∂v)ac
Tensors have symmetries. Most general expression we consider: an arbitrary polynomial
in any number of tensors, with homogeneous free indices.
· · · + FabcTbdT c
d − 7Feff Taduevd + · · ·
Tensor canonicalization
0. Key question in computer algebra:How do we know whether two tensor expressions are equal?Convert expressions into a canonical form and then compare.
1. Simplification:
F antisym(1↔2) (Fabcua + Fb
dcud)vb
1) Expand all parenthesis Fabcuavb + Fb
dcudvb
2) Rename dummies p, q, . . . Fpqcupvq + Fp
qcuqv
p
3) Canonicalize terms separately Fpqcupvq − Fpqcu
pvq
4) Add equal terms 0
⇒ Need only canonicalization of tensor monomials.
Tensor canonicalization
0. Key question in computer algebra:How do we know whether two tensor expressions are equal?Convert expressions into a canonical form and then compare.
1. Simplification:
F antisym(1↔2) (Fabcua + Fb
dcud)vb
1) Expand all parenthesis Fabcuavb + Fb
dcudvb
2) Rename dummies p, q, . . . Fpqcupvq + Fp
qcuqv
p
3) Canonicalize terms separately Fpqcupvq − Fpqcu
pvq
4) Add equal terms 0
⇒ Need only canonicalization of tensor monomials.
Tensor canonicalization
0. Key question in computer algebra:How do we know whether two tensor expressions are equal?Convert expressions into a canonical form and then compare.
1. Simplification:
F antisym(1↔2) (Fabcua + Fb
dcud)vb
1) Expand all parenthesis Fabcuavb + Fb
dcudvb
2) Rename dummies p, q, . . . Fpqcupvq + Fp
qcuqv
p
3) Canonicalize terms separately Fpqcupvq − Fpqcu
pvq
4) Add equal terms 0
⇒ Need only canonicalization of tensor monomials.
2. Simplification: Reorder tensors in a monomial using namesand ranks; form an equivalent tensor with inherited properties.
T adFabcTbe → FTTabc
adbe
antisym(1↔2), sym(4↔6,5↔7). Anticommuting objects?
⇒ Need only canonicalization of single tensors.
3. Tensor properties (“symmetries”):
Slot-syms: relations among slots, independently of indices.
Index-syms: relations among indices, independently of slots.
Contractions, metric and components
Dimension-dependent identities.
2. Simplification: Reorder tensors in a monomial using namesand ranks; form an equivalent tensor with inherited properties.
T adFabcTbe → FTTabc
adbe
antisym(1↔2), sym(4↔6,5↔7). Anticommuting objects?
⇒ Need only canonicalization of single tensors.
3. Tensor properties (“symmetries”):
Slot-syms: relations among slots, independently of indices.
Index-syms: relations among indices, independently of slots.
Contractions, metric and components
Dimension-dependent identities.
2. Simplification: Reorder tensors in a monomial using namesand ranks; form an equivalent tensor with inherited properties.
T adFabcTbe → FTTabc
adbe
antisym(1↔2), sym(4↔6,5↔7). Anticommuting objects?
⇒ Need only canonicalization of single tensors.
3. Tensor properties (“symmetries”):
Slot-syms: relations among slots, independently of indices.
Index-syms: relations among indices, independently of slots.
Contractions, metric and components
Dimension-dependent identities.
4. Two types of slot-symmetries:
Permutation (or monoterm) symmetries:
Rbacd = −Rabcd Rcdba = Rabcd
Need permutation group theory.
Multiterm symmetries:
Rabcd + Racdb + Radbc = 0
Need permutation group algebra.
5. Canonical ordering of indices:
First symbolic free indices, alphabetically.
Then symbolic dummy pairs, alphabetically. Up-indices first.
Then component indices, numerically. Up-indices first.
Example:
T a1db2b
1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]
Rough idea: Approach this “as much as possible”, unless 0.
4. Two types of slot-symmetries:
Permutation (or monoterm) symmetries:
Rbacd = −Rabcd Rcdba = Rabcd
Need permutation group theory.
Multiterm symmetries:
Rabcd + Racdb + Radbc = 0
Need permutation group algebra.
5. Canonical ordering of indices:
First symbolic free indices, alphabetically.
Then symbolic dummy pairs, alphabetically. Up-indices first.
Then component indices, numerically. Up-indices first.
Example:
T a1db2b
1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]
Rough idea: Approach this “as much as possible”, unless 0.
4. Two types of slot-symmetries:
Permutation (or monoterm) symmetries:
Rbacd = −Rabcd Rcdba = Rabcd
Need permutation group theory.
Multiterm symmetries:
Rabcd + Racdb + Radbc = 0
Need permutation group algebra.
5. Canonical ordering of indices:
First symbolic free indices, alphabetically.
Then symbolic dummy pairs, alphabetically. Up-indices first.
Then component indices, numerically. Up-indices first.
Example:
T a1db2b
1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]
Rough idea: Approach this “as much as possible”, unless 0.
4. Two types of slot-symmetries:
Permutation (or monoterm) symmetries:
Rbacd = −Rabcd Rcdba = Rabcd
Need permutation group theory.
Multiterm symmetries:
Rabcd + Racdb + Radbc = 0
Need permutation group algebra.
5. Canonical ordering of indices:
First symbolic free indices, alphabetically.
Then symbolic dummy pairs, alphabetically. Up-indices first.
Then component indices, numerically. Up-indices first.
Example:
T a1db2b
1ac3 → [c , d , a, a, b, b, 1, 1, 2, 3]
Rough idea: Approach this “as much as possible”, unless 0.
Permutation Symmetries
Permutation slot-symmetries
Riemann tensor Rabcd . Three equivalence classes:
Rabcd = −Rbacd = −Rabdc = Rbadc = Rcdab = −Rdcab = −Rcdba = Rdcba
Racbd = −Rcabd = −Racdb = Rcadb = Rbdac = −Rdbac = −Rbdca = Rdbca
Radbc = −Rdabc = −Radcb = Rdacb = Rbcad = −Rcbad = −Rbcda = Rcbda
Symmetry group S of order 8 of permutations of slots:
(1234),−(2134),−(1243), (2143), (3412),−(4312),−(3421), (4321)
and two left cosets gS , with g=(1324) or g=(1423).
Canonical representatives (choose a permutation ordering)
(1234), (1324), (1423)
Algorithm: given T with slot-symmetry S and a configurationg find the canonical representative of the left coset gS .
Permutation slot-symmetries
Riemann tensor Rabcd . Three equivalence classes:
Rabcd = −Rbacd = −Rabdc = Rbadc = Rcdab = −Rdcab = −Rcdba = Rdcba
Racbd = −Rcabd = −Racdb = Rcadb = Rbdac = −Rdbac = −Rbdca = Rdbca
Radbc = −Rdabc = −Radcb = Rdacb = Rbcad = −Rcbad = −Rbcda = Rcbda
Symmetry group S of order 8 of permutations of slots:
(1234),−(2134),−(1243), (2143), (3412),−(4312),−(3421), (4321)
and two left cosets gS , with g=(1324) or g=(1423).
Canonical representatives (choose a permutation ordering)
(1234), (1324), (1423)
Algorithm: given T with slot-symmetry S and a configurationg find the canonical representative of the left coset gS .
Permutation slot-symmetries
Riemann tensor Rabcd . Three equivalence classes:
Rabcd = −Rbacd = −Rabdc = Rbadc = Rcdab = −Rdcab = −Rcdba = Rdcba
Racbd = −Rcabd = −Racdb = Rcadb = Rbdac = −Rdbac = −Rbdca = Rdbca
Radbc = −Rdabc = −Radcb = Rdacb = Rbcad = −Rcbad = −Rbcda = Rcbda
Symmetry group S of order 8 of permutations of slots:
(1234),−(2134),−(1243), (2143), (3412),−(4312),−(3421), (4321)
and two left cosets gS , with g=(1324) or g=(1423).
Canonical representatives (choose a permutation ordering)
(1234), (1324), (1423)
Algorithm: given T with slot-symmetry S and a configurationg find the canonical representative of the left coset gS .
Index-symmetries
Tensor Tabcd with no slot-symmetries.
T aabb = Ta
abb = T a
abb = Ta
abb = T b
baa = Tb
baa = T b
baa = Tb
baa
New group D of permutations of indices (in canonical order).
We need (start from [a, a, b, b]):
Exchange dummies: (3412)
Swap metric (2134) and (1243). Add sign with spinors
Symmetry under exchange of repeated components
T111 → D = S3
These three groups do not intersect and always commute.
Index-symmetries
Tensor Tabcd with no slot-symmetries.
T aabb = Ta
abb = T a
abb = Ta
abb = T b
baa = Tb
baa = T b
baa = Tb
baa
New group D of permutations of indices (in canonical order).
We need (start from [a, a, b, b]):
Exchange dummies: (3412)
Swap metric (2134) and (1243). Add sign with spinors
Symmetry under exchange of repeated components
T111 → D = S3
These three groups do not intersect and always commute.
Both together
A tensor configuration Rabba will be given by g = (1342):
[a, a, b, b]g
−→ [a, b, b, a]
being equivalent to the double coset DgS :
[a, a, b, b]d
−→ [a, a, b, b]g
−→ [a, b, b, a]s
−→ −[a, b, a, b]
Algorithm: given T with slot-symmetry S and index-symmetryD, and a configuration g , find the representative of the doublecoset DgS . If there is p such that p,−p ∈ DgS , then rep=0.
Both together
A tensor configuration Rabba will be given by g = (1342):
[a, a, b, b]g
−→ [a, b, b, a]
being equivalent to the double coset DgS :
[a, a, b, b]d
−→ [a, a, b, b]g
−→ [a, b, b, a]s
−→ −[a, b, a, b]
Algorithm: given T with slot-symmetry S and index-symmetryD, and a configuration g , find the representative of the doublecoset DgS . If there is p such that p,−p ∈ DgS , then rep=0.
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff g
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff gR R Ta b c d
b ce f
f g
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff g
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff gR R Ta b c d
b ce f
f g
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff g
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff gR R Ta b c d
b ce f
f g
Example 1
R Riemann and T symmetric. Canonical index order:
[a, d , e, g , b, b, c , c , f , f ]
R R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff gR R Ta b c d
b ce f
f gR R Ta b c db c
e ff gR R Ta b c d
b ce f
f g
R R Tfb ce
gfa d
cb
Example 2
Antisymmetric tensor Fba = −Fab.
FabFbc symmetric
F abF
bc
n... F ha = 0 if number n of tensors is odd.
Timings (in seconds)
Example 2
Antisymmetric tensor Fba = −Fab.
FabFbc symmetric
F abF
bc
n... F ha = 0 if number n of tensors is odd.
Timings (in seconds)
n |D |, |S | MathTensor xAct
1 2 0 0
3 48 0.01 0.01
5 3840 0.02 0.03
7 645120 1.12 0.05
9 185794560 350 0.07
11 8.2 1010
107745 0.09
19 6.4 1022
? 0.28
29 4.7 1039
? 0.94
39 1.1 1058
? 2.7
49 3.4 1077
? 6.5
59 8.0 1097
? 13.7 10 20 30 40 500.001
0.01
0.1
1
10
100
1000
10000
100000
Second
Minute
Hour
Day
Example 3
Random Riemann scalar monomials. Example R7:
Rbjdk Rncel R
hgia Rk
gde R l
fjc Rmaf
h Rnm
ib
Takes 19596s in MathTensor, and 0.031s in xTensor.
++++++
++++++
+
+
++
+
+
+++
+
+
+++
+
+
+++
+
+
+
+
++
+
+
++
+
+
+
+++
++++
+
+
+
+
+
++
+
+
++
+
+++
++
oooooooo
ooooooooo
o
ooooooo
o
ooooooo
o
ooooooooooooo
o
ooo
o
oooooo
o
ooooooooo
oooooooo
ooooooo
o
oo
Second
Minute
0 10 20 30 40 50
0.001
0.01
0.1
1
10
100
1000
0.001
0.01
0.1
1
10
100
1000
number of Riemann tensors
timin
gsin
seco
nds
A million random Riemann scalar monomials R10.Timings histogram:
CPU 1.7 GHz
bin: 0.0001 s
Zero: 424108
Nonzero: 575892
0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.100
5000
10 000
15 000
timings in seconds
All but 7 below 1s, 6 in 1-2s, and 1 with 4.9s. Worst case:
Ra1b1a2b2
Ra2b2a3b3
· · ·Ranbna1b1
Working with permutation groups: strong generators
Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.
Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:
Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.
Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .
Base of G : B = [b1, . . . , bk ], none of the permutations of G
fixes all points of B. That is, Gb1...bk= id.
Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.
Working with permutation groups: strong generators
Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.
Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:
Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.
Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .
Base of G : B = [b1, . . . , bk ], none of the permutations of G
fixes all points of B. That is, Gb1...bk= id.
Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.
Working with permutation groups: strong generators
Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.
Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:
Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.
Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .
Base of G : B = [b1, . . . , bk ], none of the permutations of G
fixes all points of B. That is, Gb1...bk= id.
Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.
Working with permutation groups: strong generators
Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.
Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:
Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.
Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .
Base of G : B = [b1, . . . , bk ], none of the permutations of G
fixes all points of B. That is, Gb1...bk= id.
Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.
Working with permutation groups: strong generators
Describe a group G through generators.S = s1, . . . , sm generating set: G = 〈S〉.Example: Sn = 〈(2134 . . . n), (234 . . . n1)〉.Difficult to extract information from S . Direct algorithms areexponential in n.
Better idea: use strong generators (Sims 1960’s). Take agroup G acting on the points Ω = 1, . . . , n. We need threedefinitions:
Orbit pG of a point p: pg , g ∈ G. Ω partitioned intodisjoing orbits.
Stabilizer Gp of a point p: g ∈ G , pg = p subgroup of G .G partitioned into disjoint cosets of Gp .
Base of G : B = [b1, . . . , bk ], none of the permutations of G
fixes all points of B. That is, Gb1...bk= id.
Examples: for Sn we need n − 1 points in the base. For theslot-symmetries of Riemann [1, 3] is a base, but [1, 2] is not.
Key observation 1: bijection between the orbit pG and the setof cosets G/Gp. Proof:
1) g ∈ Gp ⇔ pg = p
2) h′ ∈ Gp · h ⇒ g ∈ Gp, h′ = g · h ⇒ ph′ = pg ·h = ph
3) ph = ph′ ⇒ p = ph′·h−1⇒ h′ · h−1 ∈ Gp, same coset
In particular|G | = |Gp| · |p
G |
Key observation 2: Base images identify permutations:
[bg1 , . . . , bg
k ] = [bg ′
1 , . . . , bg ′
k ] ⇔ g = g ′
Otherwise g ′g−1 would fix all points of B .
We want to work in the hierarchy of stabilizers
G > Gb1> Gb1b2
> · · · > Gb1...bk= id
Key observation 1: bijection between the orbit pG and the setof cosets G/Gp. Proof:
1) g ∈ Gp ⇔ pg = p
2) h′ ∈ Gp · h ⇒ g ∈ Gp, h′ = g · h ⇒ ph′ = pg ·h = ph
3) ph = ph′ ⇒ p = ph′·h−1⇒ h′ · h−1 ∈ Gp, same coset
In particular|G | = |Gp| · |p
G |
Key observation 2: Base images identify permutations:
[bg1 , . . . , bg
k ] = [bg ′
1 , . . . , bg ′
k ] ⇔ g = g ′
Otherwise g ′g−1 would fix all points of B .
We want to work in the hierarchy of stabilizers
G > Gb1> Gb1b2
> · · · > Gb1...bk= id
Do we already have generators for the stabilizers?In general, no. Example:
G = S3 = 〈(213), (231)〉 with base B = [1, 2]
G1 = 〈(132)〉
G12 = id
However,
G = S3 = 〈(213), (231)〉 with base B = [3, 2]
G3 = 〈(213)〉
G32 = id
Definition: S = s1, . . . , sm is a strong generating set of G
relative to the base B = [b1, . . . , bk ] if S contains generatingsets for all the stabilizers Gb1...bi
, i = 1, . . . , k.
Do we already have generators for the stabilizers?In general, no. Example:
G = S3 = 〈(213), (231)〉 with base B = [1, 2]
G1 = 〈(132)〉
G12 = id
However,
G = S3 = 〈(213), (231)〉 with base B = [3, 2]
G3 = 〈(213)〉
G32 = id
Definition: S = s1, . . . , sm is a strong generating set of G
relative to the base B = [b1, . . . , bk ] if S contains generatingsets for all the stabilizers Gb1...bi
, i = 1, . . . , k.
Do we already have generators for the stabilizers?In general, no. Example:
G = S3 = 〈(213), (231)〉 with base B = [1, 2]
G1 = 〈(132)〉
G12 = id
However,
G = S3 = 〈(213), (231)〉 with base B = [3, 2]
G3 = 〈(213)〉
G32 = id
Definition: S = s1, . . . , sm is a strong generating set of G
relative to the base B = [b1, . . . , bk ] if S contains generatingsets for all the stabilizers Gb1...bi
, i = 1, . . . , k.
The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.
Sims 1970: O(n6) Knuth 1991: O(n5) Today:
Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)
Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.
Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.
General strategy: backtrack search, usually quite fast, butexponential in the worst case.
The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.
Sims 1970: O(n6) Knuth 1991: O(n5) Today:
Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)
Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.
Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.
General strategy: backtrack search, usually quite fast, butexponential in the worst case.
The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.
Sims 1970: O(n6) Knuth 1991: O(n5) Today:
Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)
Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.
Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.
General strategy: backtrack search, usually quite fast, butexponential in the worst case.
The Schreier-Sims algorithm constructs a strong-generatingset from a generating set of G , for a freely specifiable base.
Sims 1970: O(n6) Knuth 1991: O(n5) Today:
Deterministic: O(n2 log3 |G |)Randomized: O(n log n log4 |G |)
Things which can be computed in polynomial time: Group order and membership. Coset enumeration and representatives.
Things which cannot be computed in polynomial time: Intersection of groups. Double coset enumeration and representatives.
General strategy: backtrack search, usually quite fast, butexponential in the worst case.
Back to tensors
Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.
Permutation groups can be efficiently manipulated usingstrong generating sets.
Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.
Portugal 2001: Tensorial case: general S but special D.
Implementations (both GPL free software):
Portugal 2003: Maple
JMM-G 2003: Mathematica and C (∼ 100 times faster)
Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).
Back to tensors
Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.
Permutation groups can be efficiently manipulated usingstrong generating sets.
Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.
Portugal 2001: Tensorial case: general S but special D.
Implementations (both GPL free software):
Portugal 2003: Maple
JMM-G 2003: Mathematica and C (∼ 100 times faster)
Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).
Back to tensors
Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.
Permutation groups can be efficiently manipulated usingstrong generating sets.
Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.
Portugal 2001: Tensorial case: general S but special D.
Implementations (both GPL free software):
Portugal 2003: Maple
JMM-G 2003: Mathematica and C (∼ 100 times faster)
Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).
Back to tensors
Canonicalization of tensor expressions with permutationsymmetries entails finding double coset representatives.
Permutation groups can be efficiently manipulated usingstrong generating sets.
Butler 1984: Use of backtrack search with SGS to find doublecoset representatives of any two subgroups.
Portugal 2001: Tensorial case: general S but special D.
Implementations (both GPL free software):
Portugal 2003: Maple
JMM-G 2003: Mathematica and C (∼ 100 times faster)
Solves the general case of permutation symmetries, withtimings of seconds up to 100 indices (minutes in worst cases).
Multiterm Symmetries
In particular,
where is the dimension of the vector space?
Sources of multiterm symmetries
Intrinsic cyclic symmetries:
Rabcd + Racdb + Radbc = 0
The Bianchi identity:
∇aRbcde + ∇bRcade + ∇cRabde = 0
The Ricci identity (more general concept of symmetry):
∇a∇bvc = ∇b∇av
c + Rabdcvd
Crystallographic symmetries
Dimensionally-dependent identities
The Cayley-Hamilton theorem
1. A square n × n matrix A satisfies its own characteristicequation:
p(x) := det(x I − A) = xn + c1xn−1 + · · · + cn−1x + cn
p(A) = 0
with
c1 = −tr(A) = −Aaa
c2 =1
2(tr(A)2 − tr(A2)) = A[a
aAb]
b
c3 = · · · = −A[aaA
bbA
c]c
The Cayley-Hamilton theorem is simply
A[a1a1A
a2a2 · · ·A
ananδ
a]b = 0
The Cayley-Hamilton theorem
1. A square n × n matrix A satisfies its own characteristicequation:
p(x) := det(x I − A) = xn + c1xn−1 + · · · + cn−1x + cn
p(A) = 0
with
c1 = −tr(A) = −Aaa
c2 =1
2(tr(A)2 − tr(A2)) = A[a
aAb]
b
c3 = · · · = −A[aaA
bbA
c]c
The Cayley-Hamilton theorem is simply
A[a1a1A
a2a2 · · ·A
ananδ
a]b = 0
2. This is a Lovelock-type (dimensionally-dependent) identity:
A[a1a2a3b1b2
Ba4a5b3· · ·Hanan+1]an+2
bm= 0
3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.
4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.
For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.
Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the
smaller monomials. Store all multiterm relations in a database.
Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.
2. This is a Lovelock-type (dimensionally-dependent) identity:
A[a1a2a3b1b2
Ba4a5b3· · ·Hanan+1]an+2
bm= 0
3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.
4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.
For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.
Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the
smaller monomials. Store all multiterm relations in a database.
Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.
2. This is a Lovelock-type (dimensionally-dependent) identity:
A[a1a2a3b1b2
Ba4a5b3· · ·Hanan+1]an+2
bm= 0
3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.
4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.
For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.
Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the
smaller monomials. Store all multiterm relations in a database.
Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.
2. This is a Lovelock-type (dimensionally-dependent) identity:
A[a1a2a3b1b2
Ba4a5b3· · ·Hanan+1]an+2
bm= 0
3. Gover 1997: Lovelock identities exhaust all dim-dep tensorrelations.
4. Obvious general algorithm (“brute force”): Take all possible canonical monomials appearing in a problem. Construct all possible linear multiterm relations among them.
For instance, in dim 4, antisymmetrize over all subsets of 5indices and perm-canonicalize again.
Introduce an order for those canonical monomials. Solve for the largest canonical monomials in terms of the
smaller monomials. Store all multiterm relations in a database.
Sounds crazy but works if perm-canonicalization is fastenough, and for moderate dimension.
Young tableaux
Schur-Weyl duality. Tensor transformation under M ∈ GL(n):
(MT )a1...ak= Ma1
bi · · ·Mak
bk Tb1...bk
Tensor transformation under p ∈ Sk :
(pT )a1...ak= Ta′1...a
′
k, a′j = ajp
Both
(pMT )a1...ak= Ma′1
bi · · ·Ma′k
bk Tb1...bk
= Ma′1
b′
i · · ·Ma′k
b′
k Tb′
1...b′
k
= Ma1bi · · ·Mak
bk (pT )b1...bk
= (MpT )a1...ak
Linear transformations and permutations commute on tensors!
That implies the existence of a common labelling of therepresentations of the groups GL(n) and Sk . The labels arethe integer partitions of k in at most n parts, representable asYoung diagrams of k boxes with at most n rows.Example: 12=4+3+3+2
This is a possible irreducible symmetry for a rank-12 tensor indimension 4 or larger. Other examples:
Lanczos Riemann ∇Riemann
That implies the existence of a common labelling of therepresentations of the groups GL(n) and Sk . The labels arethe integer partitions of k in at most n parts, representable asYoung diagrams of k boxes with at most n rows.Example: 12=4+3+3+2
This is a possible irreducible symmetry for a rank-12 tensor indimension 4 or larger. Other examples:
Lanczos Riemann ∇Riemann
Permutation symmetry in a tableau: columns are antisymmetries symmetry under exchange of columns of equal length
Dimensions of Sk representation: number of standardtableaux. Riemann:
a cb d
a bc d but not
a bd c
Dimensions of GL(n) representation: number of semistandardtableaux. Riemann in n = 4:
1 12 2
1 12 3
1 12 4
1 13 3
1 13 4
1 14 4
1 22 3
1 22 4
1 23 3
1 23 4
1 24 4
1 32 4
1 33 4
1 34 4
2 23 3
2 23 4
2 24 4
2 33 4
2 34 4
3 34 4 but not
1 24 3
Permutation symmetry in a tableau: columns are antisymmetries symmetry under exchange of columns of equal length
Dimensions of Sk representation: number of standardtableaux. Riemann:
a cb d
a bc d but not
a bd c
Dimensions of GL(n) representation: number of semistandardtableaux. Riemann in n = 4:
1 12 2
1 12 3
1 12 4
1 13 3
1 13 4
1 14 4
1 22 3
1 22 4
1 23 3
1 23 4
1 24 4
1 32 4
1 33 4
1 34 4
2 23 3
2 23 4
2 24 4
2 33 4
2 34 4
3 34 4 but not
1 24 3
Permutation symmetry in a tableau: columns are antisymmetries symmetry under exchange of columns of equal length
Dimensions of Sk representation: number of standardtableaux. Riemann:
a cb d
a bc d but not
a bd c
Dimensions of GL(n) representation: number of semistandardtableaux. Riemann in n = 4:
1 12 2
1 12 3
1 12 4
1 13 3
1 13 4
1 14 4
1 22 3
1 22 4
1 23 3
1 23 4
1 24 4
1 32 4
1 33 4
1 34 4
2 23 3
2 23 4
2 24 4
2 33 4
2 34 4
3 34 4 but not
1 24 3
Cyclic symmetry in a tableau: Garnir hooks. Riemann: twoequivalent Garnir hooks:
a cb d +
a bd c −
a bc d = 0
Symmetry of a tensor product: For different tensors, use the Littlewood-Richardson rule
× = + + +
For equal tensors, use plethysms
ˆ = + + +
Cyclic symmetry in a tableau: Garnir hooks. Riemann: twoequivalent Garnir hooks:
a cb d +
a bd c −
a bc d = 0
Symmetry of a tensor product: For different tensors, use the Littlewood-Richardson rule
× = + + +
For equal tensors, use plethysms
ˆ = + + +
Each standard tableau defines a projector. For Riemann:
12P = (1234) + (2134) − (3214) − (1432)
+(1243) − (4132) − (2314) − (3241)
−(1423) − (4123) + (4312) + (3421)
−(2341) + (2143) + (3412) + (4321)
with P2 = P . Using permutations symmetries we get
Rabcd = (PR)abcd =2
3Rabcd +
1
3Racbd −
1
3Radbc
Agacy 1998, Peeters 2005: replace Rabcd by this expression,and use only permutation symmetries then. That implementsall symmetries of Riemann!
Each standard tableau defines a projector. For Riemann:
12P = (1234) + (2134) − (3214) − (1432)
+(1243) − (4132) − (2314) − (3241)
−(1423) − (4123) + (4312) + (3421)
−(2341) + (2143) + (3412) + (4321)
with P2 = P . Using permutations symmetries we get
Rabcd = (PR)abcd =2
3Rabcd +
1
3Racbd −
1
3Radbc
Agacy 1998, Peeters 2005: replace Rabcd by this expression,and use only permutation symmetries then. That implementsall symmetries of Riemann!
Riemann invariants
History
Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .
Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.
Haskins 1902: 14 independent scalar invs in 4d.
Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).
Other invariants are (possibly nonpolynomial) functions of them.
Completeness: polynomic basis for all invariants. Relations?
Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)
Carminati-Lim 2007: graph-based construction of a-inv relations.
Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.
History
Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .
Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.
Haskins 1902: 14 independent scalar invs in 4d.
Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).
Other invariants are (possibly nonpolynomial) functions of them.
Completeness: polynomic basis for all invariants. Relations?
Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)
Carminati-Lim 2007: graph-based construction of a-inv relations.
Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.
History
Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .
Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.
Haskins 1902: 14 independent scalar invs in 4d.
Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).
Other invariants are (possibly nonpolynomial) functions of them.
Completeness: polynomic basis for all invariants. Relations?
Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)
Carminati-Lim 2007: graph-based construction of a-inv relations.
Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.
History
Algebraic inv RabcdRabef Rcdef , or differential inv Rab∇c∇dRacbd .
Used in the classification of spacetimes, GR Lagrangian expansions,QG renormalization, etc.
Haskins 1902: 14 independent scalar invs in 4d.
Narlikar and Karmarkar 1948: first list of 14 scalar invs:(R , R2, W 2, R3, W 3, R2W , W 4, R4, R2W 2,W 5, R2W 3, R4W , R4W 2, R4W 3).
Other invariants are (possibly nonpolynomial) functions of them.
Completeness: polynomic basis for all invariants. Relations?
Sneddon 1999: 38 a-invs (deg 11). Complete basis. (Rotorcalculus.)
Carminati-Lim 2007: graph-based construction of a-inv relations.
Fulling et al 1992: bases for d-invs up to 10 derivatives and R6.
Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs
Use monoterm symmetries: 16352 invariants
Use cyclic property: 1639 invariants
Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations
Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs
Use monoterm symmetries: 16352 invariants
Use cyclic property: 1639 invariants
Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations
Gauss elimination: Intermediate swell problem:
Original integers: |ci | ≤ 384 Final integers: |cf | ≤ 4978120 Largest intermediate integer:
Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs
Use monoterm symmetries: 16352 invariants
Use cyclic property: 1639 invariants
Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations
Gauss elimination: Intermediate swell problem:
Original integers: |ci | ≤ 384 Final integers: |cf | ≤ 4978120 Largest intermediate integer:
4128432088811462631210560847258796357727760565961955312109033719974522122912026393839047919079833136293326586851425207976783555836309071365640456573585413951344201540916373441818847340888359206516826545838550350981924166243854816386358011913196352080821446913112544207777945582431400973483457511551249427165040578011486377996431957110887574044723612095478539444181734311327487135158150147408144620915351339939806272116543186970020596936859101026073658967889992306803277195043926510784936890214764598221917466623055176060658271638645490139036389024466375930303586688550738508615214422459534528028026604339296211874545398934176513452668215589707310886321265833677782947671903197039133298738083435857983747685083659334680222681616686514058699829948476521738772411701178283002256312672449814493504188768078308059566617955048754211100127225300485494079978006577938025856377710049543176142178387315401497328
Required 8Gb RAM and 384-bytes integers (BigNum: GMP).
Riemann invariants up to degree 7 7 Riemann → 28 indices → 28! ≃ 3.0 · 1029 a-invs
Use monoterm symmetries: 16352 invariants
Use cyclic property: 1639 invariants
Antisymmetrise over sets of 5 indices in 4d: 4311 integer equations
Gauss elimination: Intermediate swell problem:
Original integers: |ci | ≤ 384 Final integers: |cf | ≤ 4978120 Largest intermediate integer:
4128432088811462631210560847258796357727760565961955312109033719974522122912026393839047919079833136293326586851425207976783555836309071365640456573585413951344201540916373441818847340888359206516826545838550350981924166243854816386358011913196352080821446913112544207777945582431400973483457511551249427165040578011486377996431957110887574044723612095478539444181734311327487135158150147408144620915351339939806272116543186970020596936859101026073658967889992306803277195043926510784936890214764598221917466623055176060658271638645490139036389024466375930303586688550738508615214422459534528028026604339296211874545398934176513452668215589707310886321265833677782947671903197039133298738083435857983747685083659334680222681616686514058699829948476521738772411701178283002256312672449814493504188768078308059566617955048754211100127225300485494079978006577938025856377710049543176142178387315401497328
Required 8Gb RAM and 384-bytes integers (BigNum: GMP).
We get the 27 invs of Sneddon’s basis up to degree 7 (6 dual), plus allpolynomial expression of any other invariant. Invar package: CPC 2007.
Database of 645 625 relations up to 12 metric derivatives. CPC 2008.
Results for algebraic Riemann invariants
Degree A A∗ B B∗ C C∗ D D∗
1 1 1 1 0 1 0 1 02 3 4 2 1 2 1 2 13 9 27 5 6 3 2 3 24 38 232 15 40 4 1 3 15 204 2582 54 330 5 2 3 26 1613 35090 270 3159 8 2 4 27 16532 558323 1639 – 7 (1) 3 (1)8 217395 – 13140 – (9) (1) (2) (1)9 3406747 – – – (11) (1) (3) (1)10 – – – – (9) (1) (1) (1)11 – – – – (9) (0) (1) (0)12 – – – – (9) (0) (0) (0)
A: Permutation symmetries, B: Cyclic symmetry,C: Dim-dep identities, D: Products of duals (∗).
Conclusions
1. We have a fast algorithm for canonicalization underpermutation symmetries, both of slot and index type. Basedon the use of strong generating sets.
2. It is possible to use brute force to implement multitermsymmetries, in particular Lovelock identities, for moderatecases. We have shown the example of Riemann invariants.
3. It is possible to use Young tableaux to work with irreduciblemultiterm symmetries. Algorithm not complete, though.