A model of computer memory Ben Fairbairn Birkbeck, University of - - PowerPoint PPT Presentation

a model of computer memory
SMART_READER_LITE
LIVE PREVIEW

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-1
SLIDE 1

A model of computer memory

Ben Fairbairn Birkbeck, University of London Groups St Andrews, August 2013

slide-2
SLIDE 2

Joint work with Peter Cameron and Max Gadouleau

slide-3
SLIDE 3

An application of group theory to genetics

Ben Fairbairn Birkbeck, University of London Groups St Andrews, August 2013

slide-4
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
SLIDE 5

Swapping two variables: undergraduate method

x y t action 1 2

slide-6
SLIDE 6

Swapping two variables: undergraduate method

x y t action 1 2

  • 1

2 1 x ← t

slide-7
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
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
SLIDE 9

Swapping two variables: the “XOR” trick

x y action 1 2

slide-10
SLIDE 10

Swapping two variables: the “XOR” trick

x y action 1 2

  • 3

2 x + y ← x

slide-11
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
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
SLIDE 13

Main definitions (Gadouleau & Riis)

slide-14
SLIDE 14

Main definitions (Gadouleau & Riis)

◮ Let A = {0, . . . , q − 1} be a set and let n be a positive integer.

slide-15
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
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
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
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
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
SLIDE 20

An example

If A = {0, 1} (so q = 2) and n = 4 then An consists of. . .

slide-21
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
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
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
SLIDE 24

Questions

Note that each of the Coxeter generators are instructions.

slide-25
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 42

Further results

slide-43
SLIDE 43

Further results

◮ Every element of Sym(An) is a word of instructions of length

at most 2n − 1

slide-44
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
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
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
SLIDE 47

Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .

slide-48
SLIDE 48

Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .

◮ Can all instructions be incorporated into a minimal generating

set?

slide-49
SLIDE 49

Questions, open problems, conjectures, jokes, songs, limericks, cake recipes, . . .

◮ Can all instructions be incorporated into a minimal generating

set? NO!

slide-50
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
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
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
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
SLIDE 54

. . . stories, anecdotes, baking tips, poetry, . . .

slide-55
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
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
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
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
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
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
SLIDE 61

Cheers for listening!