A New Path to Create Solutions for Quantum Annealing Problems

Quantum computing has already become a technology to be used by large companies in finance, distribution, health care, chemistry, etc. Among the different approaches, quantum annealing is one of the most promising in the short term. However, software development platforms do not offer user-friendly interfaces for the definition of annealing problems. In this paper we present a solution to this problem: QPath’s Annealer Compositor that facilitates the definition and execution of annealing algorithms in either quantum annealing or digital annealing computers. An example based on a nurse work schedule is used for illustrating this special interface.


Introduction
Quantum technology includes several research areas such as true random number generation, quantum information, atomic quantum clocks, quantum sensors, quantum simulators, quantum cryptography and security, quantum communication networks and quantum Internet, among others. All those topics, but quantum computing, have attracted a great deal of interest, since there are countless interesting applications in several knowledge and business areas [1]; e.g., economics and finance services, chemistry, medicine and health, supply chain and logistics, energy, and agriculture. The success of these applications of quantum technologies requires something that we take as implicit, high-quality software, so its implementation and exploitation depend on the professional development of quantum software. So, there is a need for methodologies that enable quantum software engineers to design and implement "killer" software applications, in which the computation speed afforded by quantum computers has a real-world impact [2].
Dozens of quantum programming languages have been proposed, most of them oriented to quantum circuits (like the "classical" assembler) [3], and several quantum software development environments [4]. As for the other major approach in the field of quantum computing, quantum annealing, there are hardly any proposals to help designers specify its applications. However, it is important to offer tools to specify and design quantum software applications [5], which is essential to achieve a real "Quantum Software Engineering" [6]. Especially in view of the serious problems of availability of personnel prepared to develop quantum software [7].
Much of the existing research in the field of quantum annealing has focused on the needs of the quantum physicist or the quantum information [8] but has not considered the needs of the quantum software developer. In this article, we introduce the annealing compositor module as an interesting proposal of the QuantumPath ® (QPath ® ) technology [9]. QPath ® is a quantum software development platform to support the design, implementation, and execution of quantum software applications.
The rest of the paper is organized as follows: Section 2 summarizes the most important concepts of quantum annealing; Section 3 provides an overview of the existing quantum annealing systems; Section 4 explains the new annealing definition interface of QPath ® , and Section 5 shows an example. Finally, Section 6 presents the conclusions and future work.

Quantum Annealing
Quantum technology is currently preferentially used to solve combinatorial optimization problems such as, for example, portfolio management, scheduling challenges, optimization, etc. These problems are usually formulated as QUBO (Quadratic Unconstrained Binary Optimization) problems [10], which allows them to be solved very efficiently. These types of models are used with digital annealing and quantum annealing. Digital or simulated annealing is a metaheuristic search algorithm for global optimization problems; the general objective of this type of algorithm is to find a good approximation to the (global) optimal value of a function in a large search space. The name of "annealing" is because its similarity with the annealing process of steel and ceramics, a technique that consists of heating and then slowly cooling the material to vary its physical properties. In the case of quantum annealing, quantum tunneling effect decreases the computational sampling time compared to the thermal fluctuation effect of simulated annealing.
One of the first proposal of quantum annealing was from Kadowaki and Nishimori in 1998 [11], where the authors "introduce quantum fluctuations into the simulated annealing process of optimization problems, aiming at faster con-Journal of Quantum Information Science vergence to the optimal state", they tested this idea in the transverse Ising model obeying the time-dependent Schrödinger equation.

Annealing Computers
Ising machine systems could be divided into quantum annealing (based on superconducting circuit, such as D-Wave systems) and digital annealing (based on digital circuits, such as Fujitsu Digital Annealer).
Fujitsu Digital Annealer [12] "solves large-scale complex combinatorial optimization problems in near real-time. Delivered as an end-to-end service, it can be deployed anywhere from cloud to on-premises". This type of systems allows to develop a "quantum-inspired" algorithm or solution; reducing the time required to solve combinatorial optimization problems. Fujitsu offers an end-to-end solution starting with their expert engineers understanding the business problem and formulating and converting these problems into QUBOs.
D-Wave Systems [13] represent the quantum approach, in which "a user maps It should be noted that, in addition to D-Wave and Fujitsu, the annealing approach increasingly highlights the proposals of IARPA [14], NEC [15] and Qilimanjaro [16].

A new Annealing Definition Interface
QPath ® , is a quantum software development and lifecycle application platform, based on a hybrid model for the construction of services that abstract quantum technology without having to worry directly about the manufacturers' platforms and their requirements. QPath ® rigorously applies the principles of quantum computing and programming, the good practices in Quantum Software Engineering and Programming [5] and, of course, the requirements defined by manufacturers for their ecosystems. So that QPath guaranties truly agnostic quantum software development, the compatibility with the ecosystems of different quantum providers, and full and ongoing interoperability with them.
QPath ® support quantum annealing algorithm design, deployment, and execution, providing a set of abstractions, tools, scalable executions, and unified results that simplifies the development stage with different supported platforms (see Figure 1). So, all this software technology is agnostic to a specific current and future quantum hardware.
Another of QPath ® 's basic principle is to facilitate the quantum algorithm Journal of Quantum Information Science design process by means of visual interfaces that guide the specialists (engineers, scientists…) from the creation of the quantum algorithm through its development, testing and implementation, to its deployment and reuse. Sometimes, especially in quantum annealing, these tasks are too arid or required a very specialized knowledge and experience. To facilitate the quantum designer task, QPath ® offers special quantum annealer interface, as show in Figure 2.

Example of Quantum Annealing Definition
We will illustrate quantum annealer compositor features, using the problem of work schedule of nurses in a hospital. It is a rank 2 optimization problem, in which the goal is to find an optimal work assignment for a group of nurses, under a set of constraints: -No nurse should work two consecutive days.
-There should be only one nurse working per shift.
-The nurses must work a similar number of shifts.  To implement the problem in QuantumPath, a new circuit of type "Quantu-mAnnealing" was created with the name "Nurses Calendar". We edit the circuit with the Annealer Composer, with which we shaped the problem by defining the elements shown in Figure 3.
The variable classes are defined as shown in Figure 4. Also, the three required rules are defined using the Quantum Annealer Compositor. Figure 5 shows for example how to define rule 2, that specifies that "there should be only one nurse working per shift" (Figure 6).
Once all the parameters, variables and rules have been defined, we proceed to     ); LAMBDA(Rule3, 0.3); Transpilation of the above metalanguage to Python, for execution on the D-Wave machine will generate the necessary artifacts, modules, and code to be executed into the final hardware. As an example, and using python to demonstrate what occurs, the code needed to implement the rules could be something like this: ...

Conclusions and Future Work
Quantum computing offers us the possibility of initiating a new software engineering golden age [17], to do so, it is necessary to devise techniques and tools that support the software engineer's task of defining quantum applications.
The agnostic quality of QPath ® makes it an accelerator of quantum software development because, through a hybrid model of building services that abstract quantum technology, allowing developers to be unconcerned about manufacturers' platforms and their necessary requirements. They can focus on the knowledge and leave the details to the QPath ® platform. In fact, thanks to its architecture, QPath ® can incorporate new target quantum computers and simulators and migrate transparently to the user all the code and applications developed.
In this way, to develop quality algorithms with QPath ® , it is not necessary to manually program any line of code, in any programming language. The system takes care of this, so the time of the construction phase is reduced so drastically that its weight in the project life cycle is minimal. As a result, significant savings are recorded in project development times, with a corresponding positive impact on productivity and in production and maintenance costs.
In the same way, these characteristics of QPath ® have a positive effect on the learning curve, with the corresponding positive effect on costs, eliminating the need to know the technological specificities of the different quantum providers.
As future work we are creating a set of Apps that support Software Engineering and Programming best practices adoption and allow to assure the quality of quantum development projects.