Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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: 11 22 11 23 1 2 2 1 1 2 23 1 3 2 1 1 3 22 33 32 33 3 1 32 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|xR}. 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 TR. Let gGLn(2). We say f is symmetric with respect to g if f(T(v))=f(v) for every TgRg-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?