Vous êtes sur la page 1sur 8

A Transformation Based Algorithm for Ternary Reversible Logic

Synthesis using Universally Controlled Ternary Gates


Erik Curtis, Marek Perkowski+
Mentor Graphics Corp., Wilsonville, OR 97070, Erik_Curtis@mentor.com
+Department of Electrical Engineering, Portland State University,
Portland, Oregon, 97207-0751, mperkows@ee.pdx.edu

ABSTRACT
In this paper a synthesis algorithm for reversible
ternary logic cascades is presented. The algorithm can
find a solution for any reversible ternary function with n
inputs and n outputs utilizing ternary inverter gates and
the new (quantum realizable) UCTG gates which are a
powerful generalization of ternary Toffoli gates and
Generalized Ternary Gates [4]. The algorithm is an
extension of the algorithm presented by Dueck, Maslov,
and Miller in [3]. A unique feature of this algorithm is
that it utilizes no extra wires to generate the outputs. A
basic compaction algorithm is defined to improve the
results of the basic algorithm. This paper also provides
the groundwork for transforming any n*n Toffoli based
binary synthesis algorithm into a ternary synthesis
algorithm using the new UCTG gates.
1. INTRODUCTION
Binary reversible circuits are beneficial in many
ways. It was shown in [2] that it is only possible to
dissipate zero power using reversible logic. All
contemporary quantum computers use binary reversible
logic [6], thus development of CAD tools for such logic
will be a necessary part of making quantum computers
practical. Recently, practical ion trap multiple-valued
quantum gates have been shown to be experimentally
feasible [11] and various ternary quantum gates have been
experimentally built [19-22]. This stimulates the research
in ternary reversible logic [1, 4, 7, 10, 12, 14, 16, 17, 18]
with gates that are realizable in one of quantum
computing technologies, such as ion trap, optical, or
Nuclear Magnetic Resonance.
The presented algorithm is based on the
transformation-based algorithm of Dueck, Maslov, and
Miller [3], which first finds a solution and next improves
it by local equivalence-based transformations. We follow
this general approach. Their algorithm has been extended
here by converting the rules already present in their basic
algorithm to ternary rules; as well as adding additional
rules specific to the use of ternary logic.
The paper is organized as follows. The required
background and definitions are presented in section 2.
The basic algorithm and extensions are explained in
section 3. Section 3 also contains a basic explanation of
the algorithm. The compaction algorithm is described in
section 4. Some results are given in section 5. Finally, a
description of future work is in section 6 and the
conclusion in section 7.
2. BACKGROUND
Definition 1: An m-input, m-output totally specified
Ternary function f(X), X={x
0
, x
1
, , x
n
} where n =
3
m
-1 is reversible if it is a one-to-one mapping, i.e.
each output assignment is a mapping of a unique
input assignment.
A reversible ternary function can be written as a
vector of integers in the range 0 to 3
m
-1, where each input
and output vector is considered a base 3 integer value.
The input vector of the function is listed in numerical
order, so one can represent the function as a permutation,
with the output vector being just a permutation of the
input vector. In the example shown in Table 3, the output
vector is (5,6,1,7,2,3,8,0,4).

Definition 2: A generalized ternary inverter is a
gate with a single input and a single output. The
gate is always reversible. There are 6 generalized
inverters that implement all possible mappings of {0,
1, 2}
There are two possible mappings in binary logic
{0,1} and {1,0}, implemented by a wire and an inverter,
respectively. There are a total of six possible mappings
for a 1-qubit ternary function, with the special case of a
wire. Table 1 also shows the names chosen for each type
of inverter [4]. In [9] the concepts of the generalized
Feynman, Toffoli, Fredkin and Kerntopf gates (gates
controlled with arbitrary function of input variables) were
introduced for the first time. They we next generalized in
binary logic for multi-output control functions and more
bits in data-path (controlled) parts into what was next
called Perkowskis gate [5]. In ternary logic, a universal
set of two 1-qubit and two 2-qubit reversible gates has
In --- +1 +2 01 02 12
0 0 1 2 1 2 0
1 1 2 0 0 1 2
2 2 0 1 2 0 1
Table 1 Generalized Inverters
been created by De Vos et al. [10]. Other universal gates
were proposed for full quantum (not only for its
permutative subset that corresponds to multiple-valued
reversible logic) by Muthukrishnan and Stroud in [11].
Some subset of their gates specialized to ternary logic,
together with the De Vos gates were next generalized to
what was called the Generalized Ternary Gates [4]. These
gates have been shown to be reducible to sequences of
quantum realizable Muthukrishnan/Stroud gates [12].
Now, in an attempt to create powerful ternary gates we
further generalize the Generalized Ternary Gates and the
binary Perkowskis gates to Universally Controlled
Ternary Gates (UCTG).

Definition 3: The Universally Controlled Ternary
Gate (UCTG) is a n*n gate where the first n-1 wires
are unchanged and wire n is transformed by one of
the 6 generalized inverters based on an arbitrary
function f of wires 1, 2, , n-1.

The UCTG is a very powerful ternary
generalization of the n*n Toffoli gate in binary logic.
The n wire has a choice of three paths corresponding to
=0, =1, and =2. Observe that in GTG gates the
control was always a single wire, and now function is
generalized to any function (not required to be reversible)
of wires 1, 2, , n-1. This generalizes both Perkowskis
gates and GTGs. Observe that although UCTGs
generalize Toffoli gate to ternary logic, it is a much more
powerful generalization than in [4] where Galois addition
replaces EXOR and Galois multiplication replaces
Boolean AND in standard binary Toffoli gates. Now we
have arbitrary controlling function and one of 215
controlled (data path) functions, so the number of all
UCTGs is very high.
UCTGs can be extended to any radix, but in this
paper we are concerned only with ternary logic. Such
gates can be built from quantum realizable ternary gates,
as shown in [12]. We believe, as expanded in [7, 13], that
it is reasonable to synthesize quantum circuits from more
complex gates because of the synthesis efficiency, rather
than from the least granularity quantum operators. After
course-grain initial design, the circuit is next improved by
a sequence of template matching transformations [3, 14,
17]. However, further experimental results are needed and
comparisons among different methods [8, 12, 14, 15, 16,
17, 18] and the methods proposed here should be done to
understand the merits of each approach. It can be shown
that the gates discussed here are reducible to sequences of
quantum-realizable gates, so in the worst case (that they
are not directly realizable) they can be treated as macros
useful in the synthesis process that are next mapped to
quantum realizable gate sequences.
3. THE ALGORITHM
An intrinsic property of any reversible gate is
that a reversible gate composed with a reversible function
creates a reversible function. The goal of the synthesis
algorithm is to take a ternary reversible function and
apply a series of reversible gates from output, creating a
series of intermediate n-qubit functions until the output
function has been transformed into the input function by
creating a function which is an n-qubit identity. The
concepts of performing synthesis forward, backward,
bidirectionally and on inverse functions were first
formulated in [23]. The basic and the bidirectional
algorithm are ternary extensions to the algorithms
presented by Dueck, Maslov, and Miller in [3].
3.1 The Basic Algorithm
The basic algorithm is a greedy one-pass over
the entire function that transforms the output vector to the
input vector one bit at a time, until the identity function is
found. The algorithm consists of a special case loop for
vector 0 and a general case loop for all other vectors in
the function. See figure 1 for the listing of the pseudo-
code of the basic algorithm.
The special case loop for (0) is executed first.
In this case, there arent any control lines associated with
the transforms. If (0) =0, then vector 0 is in the correct
location and no transformation is needed; therefore, the
algorithm continues on to step 2. In the case where (0)
0, the algorithm then loops over every bit x in vector 0.
Wherever x is equal to 1, an uncontrolled transform +1
is applied to bit x in every vector. Wherever x is equal to
2, an uncontrolled transform +2 is applied to bit x in
every vector. At the end of step 1, (0) =0. At no time
should this vector change from 0 to another value, now
that this value has been locked in.
In the second step, the algorithm looks at every
value i, where 1 i 3
m
1, and every value j, where 0
j m in a nested loop. A ternary vector p is created
where p is the ternary representation of i. For each i and
j, if the bit, x, of the current function
+
(i,j) is not equal to
the expected bit p[j], then apply the proper transform to
all bits in position j, with respect to a set of control
vectors c1 and c2. The control vectors c1 and c2 are used
to keep the algorithm from transforming the previously
locked bits. The control vectors are created by putting
every bit equal to 2 in
+
(i) except bit
+
(i,j) into c2, and
every bit equal to 1 in
+
(i) except bit
+
(i,j) into c1.
Table 2 shows the logic table for transform selection.
0 1 2
0 NA 01 02
1 +1 NA 12
2 +2 12 NA
Expected p[j] Input
x
Table 2 : Transform Table
The transforms in the second step are not always
+1 and +2. The transforms +1 and +2 transform all
three variables; therefore, once a 0 bit has been locked in,
the other transforms (01, 02, and 12) must be used
instead. The rule is that a +1 or +2 transform can only
be used when the expected bit, p[j], equals 0. In the
pseudo-code, function find_transform implements the
function to create the proper transform based on the above
rule, the current bit, and the expected bit.
Figure 2 shows a ternary cascade synthesized by
the basic algorithm. In Table 3 we show steps of
transforming the output function (column 0) to the
identity function (column F). Its left-most columns are
input variables A and B. Observe that to help the reader,
the output of function is on the left and the inputs on the
right, so analyzing the algorithm steps the reader can go
from left to right in both Figure 2 and Table 3 (recall that
the gates are created from outputs to inputs). Step 1 in the
algorithm applies a +2 to wire B and then a +1 to wire
A. At this point, vector 0 is in the proper location, as is
shown in column 2 of Table 2. The next transform
happens at wire A of vector 01, where +1 is applied
when function in current wire B is 1. The transform is
still a +1 because the expected value at wire A is 0.
Next transform is when the current value of wire B is 2
(column 3). Columns 3 and 4 follow the same template as
the transform in column 2. Column 5 is a transform
where the expected value is 1, therefore according to
Table 3 the selected transform is 12. Column 5 shows
that the controlling wire is value 0, therefore the
transform is uncontrolled. The circuit found by the basic
algorithm from outputs to inputs is shown in figure 2.
The controlled transforms in this case are shown as
generalized inverters with control wires attached to them
and denoted by symbols of controlling values. A detailed
analysis of Figure 2 together with Table 2 should help the
reader not only to understand our algorithm but its
strengths and disadvantages and finally improvement
ideas. Section 4 presents how these controlled transforms
are converted into UCTGs.

Basic Algorithm
Step 1:
Let m =#of inputs
If (0) 0, then
For j in {0..m-1}{
if((0,j) =1 ) apply transform +1.
if((0,j) =2 ) apply transform +2.
}

Step 2:
Let
+
be the current function;
++
is next
function.
For i in {0..3
m
-1}{
let p be a ternary vector of i
For j in {0..m-1}{
if(
+
(i,j) !=p[j] ) {
let c2 be a list of all bits in p =2 except j
let c1 be a list of all bits in p =1 except j
t =find_transform(
+
(i,j), p[j])
Transform( j, t, c1, c2)
}
}
}
function Transform( position, transform, c1, c2)
{
for i in {0 .. 3
m
-1}{
if( meets_constraints( f
+
(i), c1, c2 ) ) {
f
++
( i, position) =apply( transform, f

+
(i,position) )
}
}
f
+
=f
++
}
A B
0 0 1 2 1 0 0 0 0 0 0 0 0 0 0 0
0 1 2 0 2 1 1 1 0 1 0 1 0 1 0 1
0 2 0 1 0 2 2 2 2 2 0 2 0 2 0 2
1 0 2 1 2 2 1 2 1 2 2 2 2 0 1 0
1 1 0 2 0 0 2 0 2 0 2 0 2 1 1 1
1 2 1 0 1 1 0 1 2 1 2 1 2 2 1 2
2 0 2 2 2 0 1 0 1 0 1 0 1 0 2 0
2 1 0 0 0 1 2 1 1 1 1 1 1 1 2 1
2 2 1 1 1 2 0 2 0 2 1 2 1 2 2 2
0 1 2 3 4 5 F
Figure 2 : Basic Algorithm
Table 3 : Input and intermediate functions for
Basic Algorithm execution
Data Flow
+2
0
+1 +1 +2
+2
1 2 3
4
12
5
1
2
2
B
A A
outputs
B
inputs
Figure 1 : Basic Algorithm Output
3.2 The Bidirectional Algorithm
Reversible functions can be transformed on both
inputs and outputs of the function, which means
reversible cascade can be build from outputs to inputs
(backward direction) or from inputs to outputs (forward
direction). The choice of which transform to apply is
determined on a vector basis and is kept the same through
all bits in that vector [15]. An input transform is used on a
vector if the number of bits needed to convert that vector
from the current input to the input value that is paired
with the output value we want in the current input is less
than the number of bits needed to convert the current
output vector to the current input vector. The
bidirectional algorithm produces the minimal number of
transforms in the current vector (local optimization); it
will not guarantee to produce the minimal number of
overall transforms.

4. COMPACTION
The result of the basic generation algorithm is a
list of transforms that may or may not have a list of
control lines associated with them (see Figure 2). This
translates into the gate shown in figure 3a, which is very
inefficient due to the fact that we are only using two of
the three available paths through the gate (the transformed
path, and one of the non-transformed path). The
uncontrolled transforms can be converted directly into
reversible ternary inverters which are already efficient. In
addition, for simplification, two subsequent inverters can
always be merged into a single inverter. Further, an
inverter can be merged into the three inverters on the
input of a UCTG. Therefore, our goal is to create as many
as possible UCTG gates with three transforming paths (as
shown in figure 3b). The optimization algorithm for
compaction is given in figure 4.
A way to improve the results is to combine two
controlled transforms into a single UCTG whenever
possible. This is possible when the two controlled
transforms are adjacent, transform the same wire, and
have only 3 possible paths through them. In general,
there are 4 possible paths through any controlled
transform where each transform can be either taken or not
taken. In certain cases 2 of the 4 possible paths are
identical and can be collapsed.
The first of the two cases is when the transforms
are compatible. Compatible transforms are transforms
that are the same or that combine to form a transform that
is one of the already seen transforms (the case of +1 and
+2 yields no transform, which is the case of neither
transform taken, therefore it meets this requirement).
Table 4 shows the compatibility table for the 5 inverter
types. In this case, the UCTG is formed by placing one of
the transforms on input 2 and the other transform or the
merged transform on input 1 while input 0 has no
transform.
The second case is when the control lines are
exclusive. Exclusive control lines mean that there can
never be the case that both transforms are taken; therefore
one of the four possible paths is removed. In this case,
the UCTG is formed by placing one of the transforms on
input 2, the second transform on input 1, and no transform
on input 0.
Uncontrolled transforms next to controlled
transforms on the same wire can be merged together. The
Compression Algorithm

Step 1: For every uncontrolled gate, find the closest
controlled gate on the same wire. Move the
uncontrolled gate next to the controlled gate. Every gate
that the uncontrolled gate passes over that contains a
control line attached to the same wire as the
uncontrolled gate, has that control transformed by the
uncontrolled gates transform, taking into account the
direction of movement of the uncontrolled gate.

Step 2: Find controlled gates that are on the same wire
and are next to each other. If the transforms of these
gates are compatible, then the gates can be merged by
merging the control lines and converting the transforms
into the new merged transforms.

Step 3: Find control gates that are on the same wire and
are next to each other. If the control lines of these gates
are exclusive, then the gates can be merged by setting
one control line set to be output 1 and the other control
line set to be output 2.

Step 4: Merge the uncontrolled gates. Find the
uncontrolled gates and merge them into the control gates
they are next to, if it is possible.
Figure 3 : Compression Algorithm
x
z
y
x
f
(a)
(b)
f
Figure 4 : UCTG realization of basic algorithm. (a)
gate with two controlled paths and simple control.
(b) equivalent gate with complex control and three
paths.
uncontrolled transform inverter is simply placed on all
inputs of the UCTG and merged with other inverters on
the same input. Unlike controlled transforms, the
uncontrolled transforms do not have to start out next to a
transform on the same wire. The uncontrolled transforms
can be pushed next to the nearest controlled transform on
the same wire. If the uncontrolled transform slides past
another transform with a control line on the same wire as
the uncontrolled transform, then the control line should be
modified according to the value of the uncontrolled
transform.
The final algorithm is shown in figure 4. The
example function shown in figure 2 can be compressed
into 2 transforms, as shown in figure 5. In general,
compression can work on any controlled gates, controlled
with arbitrary functions.
The improvements presented in this paper take
into account only single wires. Multiple wire
compactions would be yield a much better result, but are
more difficult to find algorithms for. In the case where a
controlled transform is bounded on both sides by
controlled transforms on other wires, no compaction is
done. In testing this yields a modest reduction in size,
with benefits remaining largely static as the wire count
increases.

5. RESULTS
There are no standardized benchmarks for
ternary functions, therefore we created our own
benchmark functions. These benchmark functions can be
found at the first authors website [8]. Table 5 shows the
results of synthesis of functions with 2, 3, 5, 6, and 7
variables [8]. The first circuit, bench2-1, is the same
circuit that is used in the explanation of the algorithm in
section 3. All bold fields in the table are the best raw
score, and all red fields are the best merged score for each
benchmark.
From the benchmark it is easy to tell that the
method of choosing the best transform does not always
generate the best results. Remember that the best
transform is only locally best for that particular vector,
not for the design overall. In the large benchmarks
(vector length 5, 6, and 7) the best transform method
produces the best results. In bench7-1, the reversible
method saves almost 1500 gates over the input or output
transform methods. For the smaller test cases, it is most
likely an artifact of the specific benchmark that defines
one method to be much better than the other one.
The merging algorithm doesnt compress the
results very well. This is most likely due to the restriction
that in order to merge, there must be two transforms on
the same line next to each other. This is not likely to
happen on larger and larger test cases because the vector
length increases. Note that for a function with only one
care output wire (where the other output wires are
chosen to satisfy the requirements of the reversibility, but
arent used internally), the results can be much better if
the dummy outputs have been chosen wisely.
More advanced merging algorithms that can
selectively slide controlled gates back and forth will be
able to shrink the transform results to a greater extent.
Such algorithms are feasible since they generalize to
ternary an approach found very useful for binary
reversible logic. They may be, however, more difficult to
apply.
The runtime of this algorithm has been not
shown, because the test program is not optimized for
speed, and it was run on a heavily loaded machine. In a
sample run, testcase bench5-3 took approximately 10s
wall clock, and testcase bench8-2 took approximately 1s
wall clock. Using a program tuned for speed should
decrease these numbers significantly; however the trend
upwards is a matter of the complexity of the benchmark.
The main loop must loop over m
4
(m
3
vectors, m bits per
vector) vectors for a function of length m. The merging
loop runs in linear time over the size of the raw transform
list, but the transform list grows at a greater than linear
rate versus m.

Figure 5 : Compressed result
Data Flow
+1
---
+2
12
02
01
f = 2.(A{1})
f = 2.(B{1}) + 1.(B{0})
B
A
--- +1 +2 01 02 12
--- yes yes yes yes yes yes
+1 yes yes yes NO NO NO
+2 yes yes yes NO NO NO
01 yes NO NO yes NO NO
02 yes NO NO NO yes NO
12 yes NO NO NO NO yes
Table 2 : Compatibility Chart



6. FUTURE WORK
There are several ideas for future work to
improve this algorithm. This is a work in progress.
6.1 Controlled Transform Sliding
In section 4, the idea was introduced of shuffling
the order of uncontrolled transforms in order to allow
them to be compressed. This can be applied on a limited
scale to controlled transforms as well. A controlled
transform cannot be shuffled past another transform that
has a control attached to the same wire as the transform in
question. In large wire counts, there is a good possibility
that only a subset of the entire wire set is used for
controlling any transform. If two transforms on the same
wire can be brought together given this constraint, then
more of the controlled transforms could be merged. This
improvement would be greatly enhanced by an algorithm
that could minimize the number of selected control lines
(see section 6.3).
6.2 Direction Selection
The bidirectional algorithm was discussed in
section 3.2. The direction was chosen to minimize the
number of transforms per vector. It is easy to observe in
the benchmarks that this doesnt always provide an
optimal solution. An alternative solution is to try out both
the forward and reverse transform for every bit that needs
to be transformed and determine which transform yields
the smaller complexity. Complexity in this case is
defined similar to Dueck, Maslov, and Millers definition
in [3], where it is used to determine the best combination
of control lines. Complexity is the sum total of all bits

that are not equal to their expected bit in the current
function. Choosing the transform that minimizes the
complexity should require a smaller total number of
transforms. This is not an absolute minimization
criterion, since subsequent transforms may increase the
complexity further and it may yield a poorer compression
results. Additional heuristics should be also developed
and tested.
6.3 Control Line Selection
The concept of Control Line Selection is an
improvement to the algorithm described by Dueck,
Maslov, and Miller in [3]. In their algorithm, the idea is
to pick the allowed subset of control lines that maximally
reduce the complexity of the circuit. This doesnt
necessarily yield the smallest number of control lines, but
instead attempts to minimize the number of Toffoli gates
needed, similar to the reasoning in section 6.2.
We predict that choosing the minimum number
of control lines is even more important for the presented
algorithm. A smaller number of control lines will yield a
smaller control function to implement. A smaller subset
also can yield a greater chance of being able to merge
controlled gates if the improvement in section 6.1 has also
been implemented.
The control line selection problem is not as
simple as in [3] due to the fact that there are a set of
control lines that must be 1 and a set that must be 2. In
this case we may be able to generalize a control line to a
generalized dont care (i.e. 0 or 1, 1 or 2, 0 or 2), but not
remove it completely. The benefits to generalizing the
control lines havent been fully investigated, so it is not
sure what combination would yield the best results. The
exciting part of this optimization is that the chances to
improve the compression through the combination of this
and the method from section 6.1 increase with the size of
Raw Merged Raw Merged Raw Merged
bench2-1 2 9 4 10 7 9 8
bench3-1 3 43 36 46 40 41 35
bench3-2 3 48 42 42 35 43 37
bench3-3 3 44 36 50 45 41 36
bench5-1 5 741 724 727 719 627 602
bench5-2 5 774 761 719 701 634 616
bench5-3 5 740 718 753 739 618 599
bench6-1 6 2787 2768 2700 2684 2296 2269
bench7-1 7 9664 9638 9652 9629 8193 8153
Best Transforms Output Transforms #of
Vars
Test
Name
Input Transforms
Table 3 : Benchmark Results
the vector, unlike the current compression algorithm
which seems to be fairly linear with respect to the
transform size.
6.4 Transform Selection
The algorithm currently always chooses a +1 or
+2 when the expected bit value is zero. This is not
always the best transform selection. In some cases it may
be better to apply a transform that only operates on two of
the values (01, 02, or 12). Similar to section 6.2,
choosing the transform that yields the smallest complexity
is a good optimization. This optimization may backfire
given that the +1 and +2 transforms are more
compatible (see Table 4), and cause the results to be
worse after compression.

7. CONCLUSION
New reversible gates and cascades motivated by
their realizability in ion trap technology [11] have been
proposed and respective algorithm designed. The new
algorithm to synthesize ternary logic into reversible
ternary gates has been presented. This algorithm can
solve a ternary function of arbitrary size as long as the
function itself is a reversible function.
In contrast to the algorithm from [12] this
algorithm cannot transform a non-reversible function to a
reversible one during the synthesis, but its asset is that in
contrast to the algorithm from [12], it does not require any
additional wires (called also ancillae bits). The presented
algorithm can be used to solve a non-reversible function
by adding dummy lines to the input and output to make
the entire function reversible. The algorithm can be used
to create good solutions for these problems if proper
assignments are made to the dummy lines, however
finding the proper assignment is not a trivial exercise.
The future work outlined above should improve
the final results of the algorithm. It is difficult to guess
their benefits without implementing the circuits, but a
cursory look at the combination of control line selection
(for minimum control lines) and controlled transform
sliding has the potential to save hundreds of gates on the
larger benchmarks. Improved control line selection also
should save many gates in the creation of the controlling
function. The comparison of the final version of this
algorithm and other ternary reversible algorithms from the
literature [4, 12, 14] should use realistic cost functions
(fitness functions) that would take into account the
numbers of electromagnetic pulses or other quantum
technology-specific parameters.




Acknowledgments

The authors are grateful to the anonymous reviewers for
their very useful comments and suggestions for further
research.


References


1. A. Al-Rabadi, L. Casperson, M. Perkowski and
X. Song, ``Multiple-Valued Quantum Logic,'',
Proc. ULSI 2002, Boston, May 15, 2002.
2. C. Bennett, Logic Reversibility of
Computation, IBM J. Res. Dev. 17:525-532,
1973.
3. G. Dueck, D. Maslov, and D. M. Miller, A
Transformation Based Algorithm for Reversible
Logic Synthesis, Proc. DAC. 2003 Anaheim,
CA, pp. 318-323
4. M. H. A. Khan, M. Perkowski and P. Kerntopf,
``Multi-Output Galois Field Sum of Products
Synthesis with New Quantum Cascades,''
Proceedings of 33rd International Symposium on
Multiple-Valued Logic, 16-19 May 2003, Meiji
University, Tokyo, J apan, pp. 146-153.
5. M. Lukac, M. Pivtoraiko, A. Mishchenko, and
M. Perkowski, Automated Synthesis of
Generalized Reversible Cascades using Genetic
Algorithms, Proceedings of Symposium on
Boolean Problems, Freiberg, Germany, pp. 33
45, September 2002.
6. M. Nielsen and I. Chuang, Quantum
Computation and Quantum Information,
Cambridge University Press, 2000.
7. M. Perkowski, A. Al-Rabadi, P. Kerntopf,
Multiple-Valued Quantum Logic Synthesis,
Proc. Conference on New Directions in VLSI
Design, Sendai, J apan, , pp. 41 - 47, December
2002.
8. A PERL program implementing the algorithm
described in this paper is available at the first
authors website:
http://mysite.verizon.net/Erik.Curtis/ternary. In
addition, the sample functions and results files
are also available for download at the same site.
9. A. Khlopotine, M. Perkowski, P. Kerntopf,
Reversible Logic Synthesis by Iterative
Compositions, Proc. IWLS 2002, pp. 261 266.
10. A. De Vos, B. Raa, and L. Storme, Generating
the group of reversible logic gates, Journal of
Physics A: Mathematical and General, Vol. 35,
2002, pp. 7063-7078.
11. A. Muthukrishnan, and C. R. Stroud, J r.,
Multivalued logic gates for quantum
computation, Physical Review A, Vol. 62, No.
5, Nov. 2000, 052309/1-8.
12. N. Denler, B. Yen, M. Perkowski, and P.
Kerntopf, Minimization of Arbitrary Functions
in a New Type of Reversible Cascade built from
Quantum- Realizable Generalized Multi-Valued
Gates , Proc. IWLS, 2004.
13. M. Perkowski, M. Lukac, M. Pivtoraiko, P.
Kerntopf, M. Folgheraiter, D. Lee, H. Kim, H.
Kim, W. Hwangboo, J .-W. Kim, and Y.W. Choi,
A Hierarchical Approach to Computer Aided
Design of Quantum Circuits, Proceedings of 6
th

International Symposium on Representations and
Methodology of Future Computing Technology,
March 2003, Trier, Germany, pp. 201 209.
14. M. H.A. Khan, M. Perkowski, Genetic
Algorithm Based Synthesis of Multi-Output
Ternary Functions Using Quantum Cascade of
Generalized Ternary Gates, Proc. Congress on
Evolutionary Computation, 2004.
15. M. Perkowski, A. Al-Rabadi, P. Kerntopf, A.
Buller, M. Chrzanowska-J eske, A. Mishchenko,
M. Md. Mozammel Azad Khan, A. Coppola, S.
Yanushkevich, V. Shmerko, and L. J ozwiak, ``A
General Decomposition for Reversible Logic''.
Proc. RM'2001, August 2001.
16. B. Yen, N. Denler, M. Perkowski, Synthesis of
Ternary Logic Using Generalized Ternary Gate
Cascades in a Filtering Model Approach, Proc.
ULSI 2004.
17. M. H.A. Khan, M. Perkowski, and G.
Greenwood, Memetic Algorithms Based
Synthesis of Multi-Output Ternary Functions
Using Quantum Cascade of Generalized Ternary
Gates, in preparation.
18. M.H.A. Khan, M.A. Perkowski, M.R. Khan, and
P. Kerntopf, Ternary GFSOP Minimization
using Kronecker Decision Diagrams and Their
Synthesis with Quantum Cascades, accepted to
Journal of Multiple-Valued Logic and Soft
Computing: Special Issue to Recognize T.
Higuchis Contribution to Multiple-Valued VLSI
Computing.
19. J . Dabouli, X. Wang and B.C. Sanders,
Quantum gates on hybrid qudits, Journal of
Physics A, Math. Gen. 36, (2003), pp. 2525-
2436.
20. A. V. Burlakov, M. V. Chekhova, O. V.
Karabutova, D. N. Klyshko, and S. P. Kulik,
Polarization state of a biphoton: quantum
ternary logic. arXiv:quant-ph/9907099 v1 30
J ul 1999
21. A. Gilchrist, G.J . Milburn, W.J. Munro, and K.
Nemoto, Generating optical nonlinearity using
trapped atoms, Hewlett-Packard. 2003.
22. Yu.I. Bogdanov, S.P. Kulik, M.K.Tey, Oh Choo
Hiap, and A.A. Zhukov, Statistical
Reconstruction of Qutrits, Proc. 2nd Asia-
Pacific Workshop on Quantum Information
Science, Singapore, National University of
Singapore, 15-19 December 2003.
23. M. Perkowski, A. Al-Rabadi, P. Kerntopf, A.
Buller, M. Chrzanowska-J eske, A. Mishchenko,
M. Md. Mozammel Azad Khan, A. Coppola, S.
Yanushkevich, V. Shmerko, and L. J ozwiak, ``A
General Decomposition for Reversible Logic''.
Proc. RM'2001, August 2001.

Vous aimerez peut-être aussi