Reversible Computation

advertisement
Reversible Computation
Computational Group Theory
and Circuit Synthesis
Reversible Functions are Permutations

A reversible function on n bits (which must
have n output bits) can be seen as a
permutation in SN , N=2n.
For example, the “controlled not” operation on 2 bits is either the permutation
(13) or (23) depending on which bit is the control. The “swap” operation on 2 bits
is the permutation (12).
Permutation Kronecker Products



The Kronecker Product of two permutations a,b is
defined as the permutation corresponding to the
Kronecker Product of the matrices of a and b.
Consider a 2 bit gate given by the permutation p in S4.
Now suppose one wants the permutation in S16 that it
would effect if placed on the 2nd and 3rd bits in a
reversible circuit of 4 bits.
To find it, one simply takes the Kronecker Product
i # p # i (where i is the identity in S2)
“wire permutations”


One may apply a gate on any combination
of wires.
In group theoretic terms, this is equivalent
to stating that one may “conjugate” a gate
by any permutation of wires.
Reversible Circuit Synthesis


Using permutation Kronecker products
and conjugation by wire permutations, one
may easily construct the set of group
elements corresponding to a given set of
gates
This allows the use of tools from
computational group theory algorithms for
reversible circuit synthesis
Some Immediate Observations



Taking the tensor product of a transposition with
the identity in S2 gives a permutation that is the
product of 2 disjoint transpositions.
Therefore, no set of gates which each operate
on only n-1 bits will suffice to synthesize every
reversible function on n bits
However, adding a “work bit” alleviates this
problem.
Download