Quantum-mechanical phenomena are playing an increasing role in information processing, as transistor sizes approach the nanometer level, and quantum circuits and data encoding methods appear in the securest forms of communication. Simulating such phenomena efficiently is exceedingly difficult because of the vast size of the quantum state space involved. A major complication is caused by errors (noise) due to unwanted interactions between the quantum states and the environment. Consequently, simulating quantum circuits and their associated errors using the density matrix representation is potentially significant in many applications, but is well beyond the computational abilities of most classical simulation techniques in both time and memory resources. The size of a density matrix grows exponentially with the number of qubits simulated, rendering array-based simulation techniques that explicitly store the density matrix intractable. In this work, we propose a new technique aimed at efficiently simulating quantum circuits that are subject to errors. In particular, we describe new graph-based algorithms implemented in the simulator QuIDDPro/D. While previously reported graph-based simulators operate in terms of the state-vector representation, these new algorithms use the density matrix representation. To gauge the improvements offered by QuIDDPro/D, we compare its simulation performance with an optimized array-based simulator called QCSim. Empirical results, generated by both simulators on a set of quantum circuit benchmarks involving error correction, reversible logic, communication, and quantum search, show that the graph-based approach far outperforms the array-based approach.
An important result from the mid
nineties shows that any unitary
evolution may be realized as a sequence
of controlled-not and one-qubit gates.
This work surveys especially efficient
circuits in this library, in the special
case of evolutions on two-quantum bits.
In particular, we show that to construct
an arbitrary two-qubit state from
|00>, one CNOT gate suffices.
To simulate an arbitrary two-qubit operator up to relative phases,
two CNOTs suffice. To simulate an
arbitrary two-qubit operator up to
global phase, three CNOTs
suffice. In each case, we construct
an explicit circuit and prove optimality
in the generic case. We also contribute
a procedure to determine the minimal
number of CNOT gates necessary to simulate a given two-qubit operator up
to global phase. We use this procedure
to discuss timing a given Hamiltonian
to simulate the CNOT and to determine
an optimal circuit for the two-qubit Quantum Fourier Transform.
Our constructive proofs amount to
circuit synthesis algorithms and have
been coded in C++.