Quick Quantum Circuit Simulation
DOI:
https://doi.org/10.30564/jcsr.v3i4.3567Abstract
Quick Quantum Circuit Simulation (QQCS) is a software system for computing the result of a quantum circuit using a notation that derives directly from the circuit, expressed in a single input line. Quantum circuits begin with an initial quantum state of one or more qubits, which are the quantum analog to classical bits. The initial state is modified by a sequence of quantum gates, quantum machine language instructions, to get the final state. Measurements are made of the final state and displayed as a classical binary result. Measurements are postponed to the end of the circuit because a quantum state collapses when measured and produces probabilistic results, a consequence of quantum uncertainty. A circuit may be run many times on a quantum computer to refine the probabilistic result. Mathematically, quantum states are 2n -dimensional vectors over the complex number field, where n is the number of qubits. A gate is a 2n ×2n unitary matrix of complex values. Matrix multiplication models the application of a gate to a quantum state. QQCS is a mathematical rendering of each step of a quantum algorithm represented as a circuit, and as such, can present a trace of the quantum state of the circuit after each gate, compute gate equivalents for each circuit step, and perform measurements at any point in the circuit without state collapse. Output displays are in vector coefficients or Dirac bra-ket notation. It is an easy-to-use educational tool for students new to quantum computing.
Keywords:
Quantum; Computing; Circuit; Simulation; Education; SoftwareReferences
[1] A. Cross, L. Bishop, J. Smolin and J. and Gambetta, “Open Quantum Assembly Language,” 2017. [Online]. Available: https://arxiv.org/pdf/1707.03429.pdf
[2] IBM, “IBM Quantum Experience,” 2019.
[3] M. Mykhailova and K. M. Svore, “Teaching Quantum Computing through a Practical Software-driven Approach: Experience Report,” in SIGCSE ‘20: Proceedings of the 51st ACM Technical Symposium on Computer Science Education, 2020.
[4] B. Heim, M. Soeken, S. Marshall, C. Granade, M. Roetteler, A. Geller, M. Troyer and K. Svore, “Quantum Programming Languages,” Nat Rev Phys 2, pp. 709-722, 2020.
[5] QISKit, “The QISKit SDK for quantum software development,” 2019. [Online]. Available: https://github.com/QISKit
[6] QuTIP, “Quantum Toolbox In Python,” 2019. [Online]. Available: http://qutip.org/
[7] Microsoft, “The Q# User Guide,” 2020. [Online]. Available: https://docs.microsoft.com/en-us/azure/quantum/user-guide/
[8] D. S. Steiger, T. Häner and M. Troyer, “ProjectQ: An Open Source Software Framework for Quantum Computing,” 2018. [Online]. Available: https://arxiv.org/abs/1612.08091
[9] Toqito, “toqito - a Python library for studying various objects in quantum information: states, channels, and measurements,” 2021. [Online]. Available: https://github.com/vprusso/toqito
[10] QuNetSim, “QuNetSim -a quantum network simulation framework,” 2021. [Online]. Available: https://github.com/tqsd/QuNetSim
[11] Interlin-q, “Interlin-q - a simulation platform for distributed quantum algorithms,” 2021. [Online]. Available: https://github.com/Interlin-q/Interlin-q
[12] Cirq, “Cirq - a Python library for writing, manipulating, and optimizing quantum circuits and running them against quantum computers and simulators,” 2021. [Online]. Available: https://github.com/quantumlib/cirq
[13] QRAND, “QRAND - a smart quantum random number generator for arbitrary probability distributions,” 2021. [Online]. Available: https://github.com/pedrorrivero/qrand
[14] Qrack, “Qrack - a GPU-accelerated HPC quantum computer simulator framework,” 2021. [Online]. Available: https://github.com/vm6502q/qrack
[15] Pulser, “Pulser - a Python library for programming neutral-atom quantum devices at the pulse level,” 2021. [Online]. Available: https://github.com/
[16] QCOR, “QCOR - a quantum-retargetable compiler platform providing language extensions for both C++ and Python that allows programmers to express quantum code as stand-alone kernel functions,” 2021. [Online]. Available: https://github.com/ornl-qci/qcor
[17] XACC, “XACC - a service-oriented, system-level software infrastructure in C++ promoting an extensible API for the typical quantum-classical programming, compilation, and execution workflow,” 2021. [Online]. Available: https://github.com/eclipse/xacc
[18] Yao, “Yao - a framework that aims to empower quantum information research with software tools in the Julia programming language,” 2021. [Online]. Available: https://github.com/QuantumBFS/Yao.jl
[19] Quantify, “Quantify - a Python based data acquisition platform focused on Quantum Computing and solid-state physics experiments,” 2021. [Online]. Available: https://gitlab.com/quantify-os
[20] M. A. Nielsen and I. L. and Chuang, Quantum Computation and Quantum Information 10th Anniversary Ed, New York: Cambridge University Press, 2010.
[21] E. Rieffel and W. Polak, Quantum Computing, A Gentle Introduction, Cambridge: MIT Press, 2011.
[22] R. S. Sutor, Dancing With Qubits, Birmingham: Packt Publishing, 2019.
[23] C. C. Moran, Mastering Quantum Computing with IBM QX, Birmingham: Packt Publishing, 2019.
[24] J. Abhijith and e. al, “Quantum Algorithm Implementations for Beginners,” 2020. [Online]. Available: https://arxiv.org/pdf/1804.03719.pdf
[25] QPIC, “QPIC (2018) Creating quantum circuit diagrams in TikZ,” 2018. [Online]. Available: https://github.com/qpic/qpic
Downloads
How to Cite
Issue
Article Type
License
Copyright © 2021 Author(s)
This is an open access article under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) License.