From Hyperlinear Machines to Symmetric Groups

Download Report

Transcript From Hyperlinear Machines to Symmetric Groups

Using Conjugate
Symmetries to Enhance
Simulation Performance
Advanced Digital Simulation
State Machine Simulation
100
101
001
000
110
010
111
011
State Machine with Output Values
0
0
1
0
0
1
0
1
Detecting Symmetry
100
101
101
110
111
000
001
010
011
001
000
110
010
100
111
011
F(a,b,c)=F(a,c,b)
Other Variable Pairs
100
110
010
110
111
011
101
001
000
001
000
100
101
010
111
011
Skew Symmetries
100
101
001
000
F(a,b,c)=F(a,c’,b)
110
010
111
011
Multiple Symmetries
000
100
101
110
111
000
001
010
011
100
001
010
101
110
011
111
Boolean Examples

abc’ + a’cd + a’bc + acd’ + ab’d + bc’d



Totally symmetric
Simulation machine has 5 states
ac’ + bc’ + bd’ + ab’d + a’cd’


Totally non-symmetric
Simulation machine has 16 states
Mathematical Background



Symmetry is defined in terms of Permutations
Given a base set X containing n elements, a
permutation is a 1-to-1 function from X to X.
Examples:
11
22
11
23
1 2
2 1
1 2
23
1 3
2 1
1 3
22
33
32
33
3 1
32
3 1
The Symmetric Group



The set of all permutations of a base set X of
size n is denoted Sn.
Because the elements of Sn are functions, they
can be combined using composition.
Sn is a group under the composition operation.


Closed, associative, with identity and inverses
Sn is called the symmetric group on n
elements.
Mathematical Connections



The connection
between symmetric
functions and
permutations is
intuitively obvious:
We use permutations to
rearrange the variables
of a function.
A three-input function
(for example) is
symmetric if:
f ( a , b, c )  f ( a , c , b ) 
f (b, a, c)  f (b, c, a) 
f ( c , a , b )  f ( c , b, a )
Vectors, Not Variables


Alternatively, suppose f operates on n-element
Boolean vectors.
A function is symmetric if we can rearrange
the input vectors in any fashion without
changing the function. A three-input function f
is symmetric if:
f (0, 0,1)  f (0,1, 0)  f (1, 0, 0) and
f (1,1, 0)  f (1, 0,1)  f (0,1,1)
Permuting Vectors

It is tempting to write “A function is symmetric if
f ( p(v))  f (v)
for all permutations p and vectors v.

BUT…

Permutations act on INTEGERS, not on Boolean
Vectors!
From Integers to Vectors



To make the mathematical connection we
must map each permutation to a function that
permutes the elements of a vector.
Permutations don’t operate on Boolean
vectors, but linear transformations do.
To be able to use linear transformations, we
must treat our Boolean vectors as elements of
a vector space over some field F.
The Field GF(2)



Consider the integers mod 2.
This set contains two elements.
The set is a field with AND taking the place of
multiplication and XOR taking the place of addition.




Addition is commutative, and associative with an identity
and inverses.
Multiplication is commutative and associative with
identity and inverses for all elements except zero.
Multiplication distributes over addition.
This field is called GF(2).
The General Linear Group


A linear transformation T is called nonsingular if it has an inverse T-1.
The General Linear Group of a vector space
V is the set of all non-singular linear
transformations from V to itself.
Group Representations





A mapping H from one group G1 to another
G2 is a homomorphism if H(ab)=H(a)H(b).
If H is one-to-one, it is called an isomorphism.
A homomorphism R from a group G into the
general linear group of a vector space V is
called a representation of G.
If the homomorphism R is an isomorphism, it
is called a faithful representation.
When there is no possibility of confusion, we
use to R denote the image of G under R.
A Representation of S3

The following is a mapping from S3 to the
general linear group of GF(2)3.
1 0 0 
0 1 0 


0 0 1 
identity

1 0 0   0 1 0   0 1 0   0 0 1   0 0 1 
 0 0 1  1 0 0   0 0 1  1 0 0   0 1 0 






0 1 0 0 0 1  1 0 0 0 1 0 1 0 0
(2,3)
(1, 2)
(1, 2,3)
(1,3, 2) (1,3)
These transformations rearrange the elements
of Boolean vectors. The representation is
faithful.
Representations




We are interested only in faithful
representations of Sn in the general linear
group of dimension n over GF(2).
The standard is a faithful representation
that rearranges the elements of a vector.
The standard representation is intuitively
obvious. No fancy math is required.
The standard representation isn’t the only
representation.
Conjugate representations





Let R be the standard representation of Sn in
the general linear group over GF(2)n.
Denote this general linear group as GLn(2).
Let g be an element of GLn(2).
A conjugate representation is the group
gRg-1={gxg-1|xR}.
In general, R gRg-1.
Symmetry: An Extended View




Let f be an n-input Boolean function, and let R
be the standard representation of Sn in GLn(2).
We say f is symmetric if f(T(v))=f(v) for all
TR.
Let gGLn(2). We say f is symmetric with
respect to g if f(T(v))=f(v) for every TgRg-1.
Symmetry with respect to g can be used to
simplify state machines, just as ordinary
symmetry can.
Remember This Expression?

ac’ + bc’ + bd’ + ab’d + a’cd’



Totally non-symmetric
Simulation machine has 16 states
However, this expression is symmetric with
respect to the following linear transformation:
 1 1 0 0


 0 1 1 0
0 0 1 1


0 0 0 1
Detection of Symmetry: Step 1







Two variables at a time
Eliminate variables by symbolic evaluation
F(a,b,c,d) = ac’ + bc’ + bd’ + ab’d + a’cd’
F(0,b,c,d) = 0c’ + bc’ + bd’ + 0b’d + 1cd’
F(1,b,c,d) = 1c’ + bc’ + bd’ + 1b’d + 0cd’
F(0,b,c,d) = bc’ + bd’ + cd’
F(1,b,c,d) = bc’ + bd’ + b’d
Detection of Symmetry: Step 2






F(0,b,c,d) = bc’ + bd’ + cd’
F(1,b,c,d) = bc’ + bd’ + b’d
F(0,0,c,d) = 0c’ + 0d’ + cd’ = cd’
F(0,1,c,d) = 1c’ + 1d’ + cd’ = c’ + d’
F(1,0,c,d) = 0c’ + 0d’ + 1d = d
F(1,1,c,d) = 1c’ + 1d’ + 0d = c’ + d’
Detection of Symmetry: Step 3
00
01
cd'
c'+d'
d
c'+d'
10
11
Test Condition 1
00
01
10
11
A and B symmetric
Test Condition 2
00
01
10
11
A and B skew-symmetric
Test Condition 3
00
01
10
11
A conditionally inverts B
Test Condition 4
00
01
10
11
B conditionally inverts A
The Symmetry Algorithm 1

Given a function, construct the conjugate symmetry
matrix.
1 1 x x


x
1
x
x


 x x 1 x


 x x x 1
A conditionally
inverts B
The Symmetry Algorithm 2
1 x x x


1
1
x
x


 x x 1 x


 x x x 1
B conditionally
inverts A
Input State Machines
A
B
C
The Conjugacy Matrix
A
B
C
Conjugate Symmetries




We have expanded the concept of symmetry from a
single representation to a large collection of
representations.
In GL3(2) there are 28 conjugates of the standard
representation
In GL4(2) there are 420 conjugates of the standard
representation.
Each conjugate represents a whole new type of
symmetry.
Generalized Symmetries




There are faithful representations of Sn that
are not conjugate to the standard
representation. (for n>3)
State-Machine simplification is possible (I
think), but result may not be linear.
There are nine conjugacy classes in GL4(2).
We don’t know much about them
Other Stuff

We’ve looked at non-singular transformations,
what about singular ones?





Causes a reduction in input variables: go from a,
b, c, d to a+b, a+c, a+d, for example.
Otherwise, appears to be the same
What about multiple output functions?
What about GF(2n)?
What about eigenvalues?