Implementing NChooseK on IBM Q Quantum Computer Systems

  title={Implementing NChooseK on IBM Q Quantum Computer Systems},
  author={Harsh Khetawat and Ashlesha Atrey and George Li and Frank Mueller and Scott Pakin},
This work contributes a generalized model for quantum computation called NChooseK. NChooseK is based on a single parametrized primitive suitable to express a variety of problems that cannot be solved efficiently using classical computers but may admit an efficient quantum solution. We implement a code generator that, given arbitrary parameters for N and K, generates code suitable for execution on IBM Q quantum hardware. We assess the performance of the code generator, limitations in the size of… 


Toward an architecture for quantum programming
A template high level quantum language is presented which complements a generic general purpose classical language with a set of quantum primitives, and easily lends itself to automatic, hardware independent, circuit simplification.
Open Quantum Assembly Language
OpenQASM represents universal physical circuits over the CNOT plus SU(2) basis with straight-line code that includes measurement, reset, fast feedback, and gate subroutines that is used to implement experiments with low depth quantum circuits.
Learning the quantum algorithm for state overlap
This work finds algorithms that have shorter depths than the Swap Test, including one that has constant depth (independent of problem size) and applies this approach to the hardware-specific connectivity and gate alphabets used by Rigetti's and IBM's quantum computers.
Algorithms for quantum computation: discrete logarithms and factoring
  • P. Shor
  • Computer Science
    Proceedings 35th Annual Symposium on Foundations of Computer Science
  • 1994
Las Vegas algorithms for finding discrete logarithms and factoring integers on a quantum computer that take a number of steps which is polynomial in the input size, e.g., the number of digits of the integer to be factored are given.
A Procedural Formalism for Quantum Computing
QCL (Quantum Computation Language) is a hight level, architecture independent programming language for quantum computers, with a syntax derived from classical procedural languages like C or Pascal, which allows for the complete implementation and simulation of quantum algorithms in one consistent formalism.
Conventions for quantum pseudocode
A few conventions for thinking about and writing quantum pseudocode are proposed. The conventions can be used for presenting any quantum algorithm down to the lowest level and are consistent with a
Using Reed-Muller Expansions in the Synthesis and Optimization of Boolean Quantum Circuits
The chapter shows that there is a direct correspondence between Boolean quantum operations and the classical Reed-Muller expansions, which makes it possible for the problem of synthesis and optimization of Boolean quantum circuits to be tackled within the domain of Reed-muller logic under manufacturing constraints.
On the CNOT-cost of TOFFOLI gates
It is proved that the n-qubit analogue of the TOFFOLI requires at least 2n CNOT gates, and a complete classification of three-qu bit diagonaloperators by their CNOT-cost, which holds even if ancilla qubits are available.
A fast quantum mechanical algorithm for database search
In early 1994, it was demonstrated that a quantum mechanical computer could efficiently solve a well-known problem for which there was no known efficient algorithm using classical computers, i.e. testing whether or not a given integer, N, is prime, in a time which is a finite power of o (logN) .
Quantum programming languages: survey and bibliography
  • S. Gay
  • Computer Science
    Mathematical Structures in Computer Science
  • 2006
The study of quantum Programming languages is justified, the basics of quantum computing are presented, the literature in quantum programming languages is surveyed, and directions for future research are indicated.