One of the core objectives of the NEASQC project is to provide a selection of industry-grade open source NISQ programming libraries, with a view to facilitate code-reusability, and to provide newcomers to the quantum computing software community with well-documented and high-quality exemplary industrial cases.
As NEASQC just passed the halfway point, five open-source libraries have been released. More libraries will be released until the end of the project.
To ensure a high-quality standard in the various libraries and a relative homogeneity, the project gives basic coding guidelines and support tools to the different use cases.
The methodology adopted by the project is based on best practice and user experience. It aims to implement enough uniformity of the libraries to allow for interoperability between them. The methodology is as follows:
The Quantum Quantitative Finance Library (QQuantLib) assembles different quantum algorithms and techniques for use in the financial industry. It is available from the NEASQC GitHub: https://github.com/NEASQC/FinancialApplications
QQuantLib is organised in the following packages:
The Variational_Algorithms repository (https://github.com/NEASQC/Variationals_algorithms) collects Python scripts and Jupyter notebooks that allow the user to test different variational algorithms. It contains custom functions developed by NEASQC partners, such as Variational Hamiltonian Ansatz and PBO (Pre-Born-Oppenheimer) Hamiltonian.
Fault trees are a type of model which captures how small failures in probabilistic systems can propagate and ultimately lead to a critical system failure. An important component of fault tree analysis is finding small subsets of events which can cause a critical failure (often called “cut sets”). Finding these small cut sets is important because they often correspond to the most likely way a system will fail.
THE NEASQC team working on QPSA has developed an open source implementation (https://github.com/NEASQC/ft-2-quantum-sat) of a procedure which computes minimal cut sets from fault trees by translating the problem to a satisfiability (SAT) problem. This SAT formula can then either be solved with a classical SAT solver, or with a quantum algorithm: specifically, Grover’s algorithm for amplitude amplification. The solutions found by both methods are the same, but the quantum algorithm allows for a quadradic speedup in time complexity. Additionally, for quantum computers which have too few qubits to handle the entire problem instance, a divide and conquer approach can theoretically be used to split the problem up and obtain smaller quantum speedups.
As part of the use case dedicated to C02 recapture, NEASQC is making available code that allows for the calculation of the ground state energy of benzene under spatial de-formations by using a state-of-the-art quantum computing methodology – the variational quantum eigensolver (VQE). Two types of quantum computing ansatze are implemented (the hardware efficient one and the qUCC). The code supports noisy simulations and three types of spatial deformations of the benzene molecule. The code is available on Github : https://github.com/NEASQC/D4.2.
The objective of the QNLP use case in NEASQC is to investigate, develop and compare existing methods in classical NLP with a QNLP approach to encode and process sentences in a hybrid classical-quantum workflow.
The “QNLP alpha prototype” (https://github.com/NEASQC/WP6_QNLP/tree/v0.2-alpha-d0.9) is an incremental update to the pre-alpha prototype delivered previously (https://github.com/NEASQC/WP6_QNLP). The alpha prototype goes beyond the DisCoCat method used in the pre-alpha prototype to explore and implement an alternate method based on Dressed Quantum Circuits.