Nowadays, quantum computers are capturing the attention of researchers because of their potential capability to solve problems otherwise not solvable with classical computers. In parallel to the constant research aimed at solving problems related to the physical implementation of such computers, there is also another branch of research trying to develop quantum algorithms. Many of the existing algorithms today need to perform arithmetic operations. In this thesis, the development of a software library of quantum arithmetic circuits - capable of interfacing with the main languages related to the world of Quantum Computing, such as Qiskit, Cirq and T-ket - is presented. With the aim of implementing this software library, the basics of quantum computation were first studied and subsequently an extensive bibliographic research was carried out, aimed at identifying the best performing arithmetic circuits currently available. After determining the circuits to be implemented, the software development has begun using the Python language. During the development of the library, with the aim of making simpler future development, code's modularity - by organizing the general package in many subpackages - and readability - by respecting the guidelines proposed in the PEP8 style guide - were looked for. In addition to what has already been said, a detailed documentation has been produced using Sphinx. Once the development of the library was completed, the functionality of each circuit was tested with simulations on classical computers; moreover, some components were tested on real free-accessible quantum computers, in order to characterize their behavior. Even though the results obtained on real hardware proved that many of the circuits implemented in this library will be reliably executed by more sophisticated and performing quantum computers, this library can be currently employed in an effective way in the simulation of quantum circuits on classical computers.
Nowadays, quantum computers are capturing the attention of researchers because of their potential capability to solve problems otherwise not solvable with classical computers. In parallel to the constant research aimed at solving problems related to the physical implementation of such computers, there is also another branch of research trying to develop quantum algorithms. Many of the existing algorithms today need to perform arithmetic operations. In this thesis, the development of a software library of quantum arithmetic circuits - capable of interfacing with the main languages related to the world of Quantum Computing, such as Qiskit, Cirq and T-ket - is presented. With the aim of implementing this software library, the basics of quantum computation were first studied and subsequently an extensive bibliographic research was carried out, aimed at identifying the best performing arithmetic circuits currently available. After determining the circuits to be implemented, the software development has begun using the Python language. During the development of the library, with the aim of making simpler future development, code's modularity - by organizing the general package in many subpackages - and readability - by respecting the guidelines proposed in the PEP8 style guide - were looked for. In addition to what has already been said, a detailed documentation has been produced using Sphinx. Once the development of the library was completed, the functionality of each circuit was tested with simulations on classical computers; moreover, some components were tested on real free-accessible quantum computers, in order to characterize their behavior. Even though the results obtained on real hardware proved that many of the circuits implemented in this library will be reliably executed by more sophisticated and performing quantum computers, this library can be currently employed in an effective way in the simulation of quantum circuits on classical computers.
In recent decades, the field of quantum computing has experienced remarkable progress. This progress is marked by the superior performance of many quantum algorithms compared with their classical counterparts, with Shor's algorithm serving as a prominent illustration. Quantum arithmetic circuits, which are the fundamental building blocks in numerous quantum algorithms, have attracted much attention. Despite extensive exploration of various designs in the existing literature, researchers remain keen to develop novel designs and improve existing ones. In this review article, we aim to provide a systematically organized and easily comprehensible overview of the current state of the art in quantum arithmetic circuits. Specifically, this study covers fundamental operations such as addition, subtraction, multiplication, division and modular exponentiation. We delve into the detailed quantum implementations of these prominent designs and evaluate their efficiency considering various objectives. We also discuss potential applications of the presented arithmetic circuits and suggest future research directions.This article is part of the theme issue 'Emerging technologies for future secure computing platforms'.
Abstract Quantum computing is aimed to solve tasks, which are believed to be exponentially hard to existing computational devices and tools. A prominent example of such classically hard problems is simulating complex quantum many-body systems, in particular, for quantum chemistry. However, solving realistic quantum chemistry problems with quantum computers encounters various difficulties, which are related, first, to limited computational capabilities of existing quantum devices and, second, to the efficiency of algorithmic approaches. In the present work, we address the algorithmic side of quantum chemistry applications by introducing a Python 3 code library, whose primary objective is to speed up the development of variational quantum algorithms for electronic structure problems. We describe the various features and capabilities of this library, including its ease in constructing customized versions of variational quantum algorithms. We elucidate how the developed library allows one to design quantum circuits and enable for the efficient execution of quantum algorithms. Furthermore, the library facilitates the integration of classical and quantum algorithms for hybrid computations and helps to realize the cross-verification of data with traditional computational methods, thereby enhancing the overall reliability of quantum chemistry simulations.
Many quantum algorithms make use of oracles which evaluate classical functions on a superposition of inputs. In order to facilitate implementation, testing, and resource estimation of such algorithms, we present quantum circuits for evaluating functions that are often encountered in the quantum algorithm literature. This includes Gaussians, hyperbolic tangent, sine/cosine, inverse square root, arcsine, and exponentials. We use insights from classical high-performance computing in order to optimize our circuits and implement a quantum software stack module which allows to automatically generate circuits for evaluating piecewise smooth functions in the computational basis. Our circuits enable more detailed cost analyses of various quantum algorithms, allowing to identify concrete applications of future quantum computing devices. Furthermore, our resource estimates may guide future research aiming to reduce the costs or even the need for arithmetic in the computational basis altogether.
In recent decades, quantum computing has witnessed remarkable progress, achieved through various advancements across the technology stack, such as quantum error-correcting codes and quantum algorithms. It is noteworthy that several promising algorithms incorporate quantum arithmetic circuits as fundamental building blocks. However, the inherent properties of quantum circuits challenge the efficiency of quantum arithmetic circuits, prompting creative solutions. While several quantum arithmetic circuits have been proposed, there is still a substantial gap in quantum arithmetic circuits optimization. For example, methods for integrating classical techniques such as high radix strategy into quantum designs still remain underexplored, highlighting a significant space for further advancement. This thesis aims to improve the performance of quantum arithmetic designs by integrating classical arithmetic circuit design techniques. Specifically, this thesis contains the following research: (1) The utilization of classical higher radix strategy to enhance quantum addition, reducing overall cost by lowering T-depth and T-count. The proposed design outperforms existing quantum carry-lookahead adders. (2) The application of Ling structure, achieving a reduced Toffoli-depth of 4log(n/2). (3) The exploration of the Kogge-Stone architecture, resulting in the lowest Toffoli-depth of log(n) for quantum adders. (4) The development of an efficient modular addition framework using carry-save architecture, demonstrating a 33.3% improvement in Toffoli depth compared to existing designs. (5) The design of an optimized quantum non-restoring divider framework. (6) A comprehensive overview of current advancements in quantum arithmetic designs, offering insights into potential research directions. These proposed designs are mapped to real-world quantum hardware architectures, including Noisy Intermediate-Scale Quantum systems, to validate their functionality and evaluate efficiency. Their applications in quantum machine learning and cryptography further underscore the broader impact of these improvements. Overall, this thesis makes significant advancements in reducing quantum circuit depth and improving resource efficiency, contributing to the development of scalable and efficient large-scale quantum circuits. By adapting classical design strategies to quantum circuits, it not only enhances various quantum circuit designs but also fosters further exploration at the intersection of classical and quantum computing.
This paper explains the roadmap for running quantum circuit programs based on the Qiskit library in quantum simulators as well as real cloud-based IBM quantum computers. Qiskit is a free and open-source software development platform based on the Python programming language that is used in quantum programming. Qiskit acts as a link between quantum computing’s theoretical foundations and the practical aspects of programming and experimentation. It also allows users to experiment with and develop quantum algorithms, as well as simulate and execute them on simulators and real-world cloud-based quantum devices. It also simplifies the quantum programming process and allows a diverse range of people to participate in the exciting world of quantum computing. The paper, on the other hand, provides the mathematical foundation for analyzing quantum circuits and algorithms using linear algebra principles, as they provide the tools needed to describe and manipulate quantum states and operations. Furthermore, the paper shows quantum circuit design and implementation using real Qiskit codes.
Quantum computing has been considered as an emerging approach in addressing problems which are not easily solvable using classical computers. In parallel to the physical implementation of quantum processors, quantum algorithms have been actively developed for real-life applications to show quantum advantages, many of which benefit from quantum arithmetic algorithms and their efficient implementations. As one of the most important operations, quantum addition has been adopted in Shor's algorithm and quantum linear algebra algorithms. Although various least-significant digit-first quantum adders have been introduced in previous work, interest in investigating the efficient implementation of most-significant digit-first addition is growing. In this work, we propose a novel design method for most-significant digit-first addition with several quantum circuit optimisations to reduce the number of quantum bits (i.e. qubits), quantum gates, and circuit depth. An open-source library of different arithmetic operators based on our proposed method is presented, where all circuits are implemented on IBM Qiskit SDK. Extensive experiments demonstrate that our proposed design, together with the optimisation techniques, reduces T-depth by up-to 4.0×, T-count by 3.5×, and qubit consumption by 1.2×.