SLIDE 1
A model of computer memory Ben Fairbairn Birkbeck, University of - - PowerPoint PPT Presentation
A model of computer memory Ben Fairbairn Birkbeck, University of - - PowerPoint PPT Presentation
A model of computer memory Ben Fairbairn Birkbeck, University of London Groups St Andrews, August 2013 Joint work with Peter Cameron and Max Gadouleau An application of group theory to genetics Ben Fairbairn Birkbeck, University of London
SLIDE 2
SLIDE 3
An application of group theory to genetics
Ben Fairbairn Birkbeck, University of London Groups St Andrews, August 2013
SLIDE 4
The basic problem
GAP, Version 4.6.4 of 04-May-2013 (free software, GPL) http://www.gap-system.org Architecture: i686-pc-cygwin-gcc-default32 Libs used: gmp, readline . . . Error, exceeded the permitted memory (‘-o’ command line option)
SLIDE 5
Swapping two variables: undergraduate method
x y t action 1 2
SLIDE 6
Swapping two variables: undergraduate method
x y t action 1 2
- 1
2 1 x ← t
SLIDE 7
Swapping two variables: undergraduate method
x y t action 1 2
- 1
2 1 x ← t 2 2 1 y ← x
SLIDE 8
Swapping two variables: undergraduate method
x y t action 1 2
- 1
2 1 x ← t 2 2 1 y ← x 2 1 1 t ← y
SLIDE 9
Swapping two variables: the “XOR” trick
x y action 1 2
SLIDE 10
Swapping two variables: the “XOR” trick
x y action 1 2
- 3
2 x + y ← x
SLIDE 11
Swapping two variables: the “XOR” trick
x y action 1 2
- 3
2 x + y ← x 3 1 x − y ← y
SLIDE 12
Swapping two variables: the “XOR” trick
x y action 1 2
- 3
2 x + y ← x 3 1 x − y ← y 2 1 x − y ← x
SLIDE 13
Main definitions (Gadouleau & Riis)
SLIDE 14
Main definitions (Gadouleau & Riis)
◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer.
SLIDE 15
Main definitions (Gadouleau & Riis)
◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer. ◮ A bijection f : An → An is an instruction if
SLIDE 16
Main definitions (Gadouleau & Riis)
◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer. ◮ A bijection f : An → An is an instruction if for
(x1, . . . , xn) ∈ An such that f : (x1, . . . , xn) → (y1, . . . , yn)
SLIDE 17
Main definitions (Gadouleau & Riis)
◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer. ◮ A bijection f : An → An is an instruction if for
(x1, . . . , xn) ∈ An such that f : (x1, . . . , xn) → (y1, . . . , yn) we have that xj = yj for all j = i for some 1 ≤ i ≤ j.
SLIDE 18
Main definitions (Gadouleau & Riis)
◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer. ◮ A bijection f : An → An is an instruction if for
(x1, . . . , xn) ∈ An such that f : (x1, . . . , xn) → (y1, . . . , yn) we have that xj = yj for all j = i for some 1 ≤ i ≤ j.
◮ We say that f updates the ith register.
SLIDE 19
Main definitions (Gadouleau & Riis)
◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer. ◮ A bijection f : An → An is an instruction if for
(x1, . . . , xn) ∈ An such that f : (x1, . . . , xn) → (y1, . . . , yn) we have that xj = yj for all j = i for some 1 ≤ i ≤ j.
◮ We say that f updates the ith register. ◮ We call elements of An states.
SLIDE 20
An example
If A = {0, 1} (so q = 2) and n = 4 then An consists of. . .
SLIDE 21
An example
If A = {0, 1} (so q = 2) and n = 4 then An consists of. . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
SLIDE 22
◮ S. Burckel “Closed Iterative Calculus” Theoretical Computer
Science, 158, 1996, 371–378
◮ S. Burckel, E. Gioan and E. Thom´
e “Mapping Computation with no memory”, in Proc. International Conference on Unconventional Computation, Ponta Delgada, Portugal, 2009, 85–97
◮ S. Burckel and M. Morillon “Three generators for minimal
writing-space computations” Theoretical Informatics and Applications, 34, 2000, 131–138
◮ M. Gadouleau and S. Riis “Graph-Theoretical Constructions
for Graph Entropy and Network Coding Based Communications” IEEE Transactions on Information Theory,
- Vol. 57, No. 10, 2011, 6703–6717
SLIDE 23
◮ J. Aracena, J. Demongeot and E. Goles “Positive and
Negative Circuits in Discrete Neural Networks” IEEE Transactions in Neural Networks, 15, 2004, 77–83
◮ J.-P. Comet, A. Richard, M. Noual, J. Aracena, L. Calzone, J.
Demongeot, M. Kaufman, A. Naldi, E.H. Snoussi and D. Thieffry “On circuit functionality in Boolean networks” Bulletin of Mathematical Biology, in press 2013
◮ S. Kauffman “Metabolic Stability and Epigenesis in Randomly
Connected Nets” Journal of Theoretical Biology, 22, 1969, 437–467
◮ ´
E Remy, P. Ruet and D. Thieffry “Graphic requirements for multistability and attractive cycles in a Boolean Dynamical Framework” Advances in Applied Mathematics, 41, 2008, 335–350
◮ R. Thomas “Boolean formalization of genetic control circuits”
Journal of Theoretical Biology, 42(3), 563–585, 1973
SLIDE 24
Questions
Note that each of the Coxeter generators are instructions.
SLIDE 25
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)?
SLIDE 26
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)? We need at least one for each register, so we should really ask. . .
SLIDE 27
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)? We need at least one for each register, so we should really ask. . .
◮ Can we generate Sym(An) with n instructions?
SLIDE 28
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)? We need at least one for each register, so we should really ask. . .
◮ Can we generate Sym(An) with n instructions? ◮ What about Alt(An)?
SLIDE 29
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)? We need at least one for each register, so we should really ask. . .
◮ Can we generate Sym(An) with n instructions? ◮ What about Alt(An)?
If q is a prime power then we can view An as a finite vector space and restrict our attention to instructions that are linear maps.
SLIDE 30
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)? We need at least one for each register, so we should really ask. . .
◮ Can we generate Sym(An) with n instructions? ◮ What about Alt(An)?
If q is a prime power then we can view An as a finite vector space and restrict our attention to instructions that are linear maps.
◮ Can we generate GLn(q) with n instructions?
SLIDE 31
Questions
Note that each of the Coxeter generators are instructions.
◮ Is this the smallest set of instructions we need to generate
Sym(An)? We need at least one for each register, so we should really ask. . .
◮ Can we generate Sym(An) with n instructions? ◮ What about Alt(An)?
If q is a prime power then we can view An as a finite vector space and restrict our attention to instructions that are linear maps.
◮ Can we generate GLn(q) with n instructions? ◮ What about SLn(q)?
SLIDE 32
Some results
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
SLIDE 33
Some results
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
Theorem (Cameron, F., Gadouleau, 201?)
Unless q = 2 and n = 2 or 3, the group Alt(An) can be generated by n instructions.
SLIDE 34
Some results
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
Theorem (Cameron, F., Gadouleau, 201?)
Unless q = 2 and n = 2 or 3, the group Alt(An) can be generated by n instructions.
Theorem (Cameron, F., Gadouleau, 201?)
dito GLn(q) and SLn(q).
SLIDE 35
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
SLIDE 36
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
It’s convenient to consider different cases separately:
SLIDE 37
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
It’s convenient to consider different cases separately:
◮ |A| = 2;
SLIDE 38
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
It’s convenient to consider different cases separately:
◮ |A| = 2; ◮ |A| > 2 and n is odd;
SLIDE 39
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
It’s convenient to consider different cases separately:
◮ |A| = 2; ◮ |A| > 2 and n is odd; ◮ |A| > 2 and n is even;
SLIDE 40
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
It’s convenient to consider different cases separately:
◮ |A| = 2; ◮ |A| > 2 and n is odd; ◮ |A| > 2 and n is even;
In each case we write down explicit permutations that generate a 2-transitive (and thus primitive) group
SLIDE 41
Sketch proof for Sym(An)
Theorem (Cameron, F., Gadouleau, 201?)
Unless n = q = 2, the group Sym(An) can be generated by n instructions.
“Proof”
It’s convenient to consider different cases separately:
◮ |A| = 2; ◮ |A| > 2 and n is odd; ◮ |A| > 2 and n is even;
In each case we write down explicit permutations that generate a 2-transitive (and thus primitive) group and apply Jordan’s Theorem (our permutations are chosen so that some power of one
- f them is a 3-cycle).
SLIDE 42
Further results
SLIDE 43
Further results
◮ Every element of Sym(An) is a word of instructions of length
at most 2n − 1
SLIDE 44
Further results
◮ Every element of Sym(An) is a word of instructions of length
at most 2n − 1 and we know the extreme case: maximal Hamming distance.
SLIDE 45
Further results
◮ Every element of Sym(An) is a word of instructions of length
at most 2n − 1 and we know the extreme case: maximal Hamming distance.
◮ Every element of GLn(q) is a word of instructions of length at
most ⌊3n/2⌋
SLIDE 46
Further results
◮ Every element of Sym(An) is a word of instructions of length
at most 2n − 1 and we know the extreme case: maximal Hamming distance.
◮ Every element of GLn(q) is a word of instructions of length at
most ⌊3n/2⌋ and we know the extreme case if q = 2 and n is even: derangement permutation matrices of order 2.
SLIDE 47
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
SLIDE 48
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
◮ Can all instructions be incorporated into a minimal generating
set?
SLIDE 49
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
◮ Can all instructions be incorporated into a minimal generating
set? NO!
SLIDE 50
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
◮ Can all instructions be incorporated into a minimal generating
set? NO! If we uniformly at random choose an instruction for each register, does the probability that we obtain a generating set for Sym(An) tend to 1 as |An| → ∞?
SLIDE 51
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
◮ Can all instructions be incorporated into a minimal generating
set? NO! If we uniformly at random choose an instruction for each register, does the probability that we obtain a generating set for Sym(An) tend to 1 as |An| → ∞?
◮ Given an instruction, how do we find instructions updating the
- ther registers that combined give us a minimal generating
set?
SLIDE 52
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
◮ Can all instructions be incorporated into a minimal generating
set? NO! If we uniformly at random choose an instruction for each register, does the probability that we obtain a generating set for Sym(An) tend to 1 as |An| → ∞?
◮ Given an instruction, how do we find instructions updating the
- ther registers that combined give us a minimal generating
set?
◮ Given a minimal generating set, how can we find a program
(list of instructions) that equal a given element of Sym(An)?
SLIDE 53
Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .
◮ Can all instructions be incorporated into a minimal generating
set? NO! If we uniformly at random choose an instruction for each register, does the probability that we obtain a generating set for Sym(An) tend to 1 as |An| → ∞?
◮ Given an instruction, how do we find instructions updating the
- ther registers that combined give us a minimal generating
set?
◮ Given a minimal generating set, how can we find a program
(list of instructions) that equal a given element of Sym(An)?
◮ All of the above with Sym(An) replaced by Alt(An), GLn(q),
SLn(q), etc?
SLIDE 54
. . . stories, anecdotes, baking tips, poetry, . . .
SLIDE 55
. . . stories, anecdotes, baking tips, poetry, . . .
◮ A permutation group is internally computable if it can be
generated by the instructions it contains.
SLIDE 56
. . . stories, anecdotes, baking tips, poetry, . . .
◮ A permutation group is internally computable if it can be
generated by the instructions it contains. Which groups are internally computable?
SLIDE 57
. . . stories, anecdotes, baking tips, poetry, . . .
◮ A permutation group is internally computable if it can be
generated by the instructions it contains. Which groups are internally computable? (All groups discussed so far are, various other matrix groups in their natural representations are not.)
SLIDE 58
. . . stories, anecdotes, baking tips, poetry, . . .
◮ A permutation group is internally computable if it can be
generated by the instructions it contains. Which groups are internally computable? (All groups discussed so far are, various other matrix groups in their natural representations are not.)
◮ An internally computable group H < G ≤ Sym(An) is fast in
G if the shortest program expressing a given element of H consists of instructions from H.
SLIDE 59
. . . stories, anecdotes, baking tips, poetry, . . .
◮ A permutation group is internally computable if it can be
generated by the instructions it contains. Which groups are internally computable? (All groups discussed so far are, various other matrix groups in their natural representations are not.)
◮ An internally computable group H < G ≤ Sym(An) is fast in
G if the shortest program expressing a given element of H consists of instructions from H. Which groups are fast?
SLIDE 60
. . . stories, anecdotes, baking tips, poetry, . . .
◮ A permutation group is internally computable if it can be
generated by the instructions it contains. Which groups are internally computable? (All groups discussed so far are, various other matrix groups in their natural representations are not.)
◮ An internally computable group H < G ≤ Sym(An) is fast in
G if the shortest program expressing a given element of H consists of instructions from H. Which groups are fast? (Any internally computable group is fast in itself, Alt(An) is not fast in Sym(An) (3-cycles) similarly SLn(q) is not fast in GLn(q).)
SLIDE 61