<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>QuantumPath´s Annealer Compositor</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jose Luis Hevia</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Guido Peterssen</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ezequiel Murina</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aurelio Martínez</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mario Piattini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Alarcos Research Group, University of Castilla-La Mancha, Paseo de la Universidad 4</institution>
          ,
          <addr-line>13071</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>aQuantum</institution>
          ,
          <addr-line>Calle Albasanz 16, 28037 Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>13</fpage>
      <lpage>19</lpage>
      <abstract>
        <p>Among the various challenges that quantum computing faces to become a widespread reality are, on the one hand, the need to research and apply the existing software engineering processes; and on the other hand, the shortage of specialized workforce. QPath® is a tool that solves these two challenges, in addition to presenting other advantages for the development of hybrid information systems. In this paper we present the Annealer Compositor that facilitates the definition and execution of annealing algorithms in either quantum annealing or digital annealing computers.</p>
      </abstract>
      <kwd-group>
        <kwd>1 Quantum computing</kwd>
        <kwd>Quantum toolkits</kwd>
        <kwd>QuantumPath</kwd>
        <kwd>Annealer Compositor</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Quantum mechanics, the basis of emerging quantum technologies, provides several features that
make us able to use the same nature to solve problems whose complexity makes it unworkable to try to
solve them with “classic” computers as we know them – even if they are supercomputers or connect in
very large networks that allow the parallel process at global levels. Thanks to the mathematical
principles that have emerged in the last century, we have a solid and consistent foundation that allows
us to bring quantum mechanics to information systems.</p>
      <p>In fact, we are already in the fourth era of software development [1], and we must prepare ourselves
to take full advantage of it. The “Talavera Manifesto” [2] urges to take care of producing quantum
software by applying knowledge and lessons learned from the software engineering field. This implies
to apply or adapt the existing software engineering processes, methods, techniques, practices, and
principles for the development of quantum software (or it may imply creating new ones) [3].</p>
      <p>Another challenge is the shortage of specialized workforce [4]. The situation is so worrying that this
is one of the most urgent problems to be solved in the countries that are leading the race in quantum
computing technology and that are betting on the quantum industry as a growth engine for their
economies. And they are trying, designing, and running large quantum literacy projects as part of huge
national quantum projects. to develop quantum software today there is not only the enormous difficulty
of having to do it with a new technological and programming paradigm. There is also a wide variety of
quantum programming languages, many programming development environments, a wide variety of
types of quantum simulators and hardware, and there is still no methodology for developing
highquality quantum software [5]. In this context, it is easy to understand the enormous difficulties to
overcome in the creation of “universal” competencies for the development of quantum software.</p>
      <p>This has been the two main challenges we faced when creating QPath® [6], as a Quantum Software
Development &amp; Application Lifecycle Platform. QPath® supports Software Engineering and
Programming best practices adoption, assuring the quality of quantum development projects; and it
proposes an environment that makes programmers independent of the specific details of each platform
and language, following the principle of “write once, run everywhere”. In this way, QPath® supports
the execution of quantum process units transparently from the environment in which they are executed.
Therefore, it masks the complexities of the different environments by supporting the necessary
transformations and automating the whole process through efficient tools.</p>
      <p>The rest of the paper is organized as follows: Section 2 summarizes the most important
characteristics of QPath®; Section 3 provides an overview of quantum annealing. 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.</p>
    </sec>
    <sec id="sec-2">
      <title>2. First level heading</title>
      <p>Bearing in mind in these two challenges and the requirements for Quantum Software Platforms [8],
we addressed the challenge of designing and developing QPath®. In fact, QPath®:
• Enables the quantum software life cycle and engineering.
• Enables the integration of quantum/classical information systems with its ecosystem of tools,
services and processes that makes it possible to execute quantum process units in a transparent
way with respect to the quantum environment in which they are executed.
• Supports multidisciplinary teams, allowing them to focus only on the functional knowledge
required for the quantum solution in any field of activity: Chemistry, Economy, Financial
Services, Energy, Agriculture, Medicine and Health, Privacy and Cryptography, Logistics,
Defense and National Security, etc.
• Provides an ecosystem of applications to develop quality quantum software applying Software</p>
      <p>Engineering principles.</p>
      <p>The objective of facilitating the development of commercial quantum software with QPath® has
also been applied to the design of graphical work interfaces, which allow:
• Visually design the quantum assets of the application and define the environment´s
requirements
• Choose the execution target of the preferred quantum computers, assisted by an AI support
system with fully automatic processes
• Simplify the creation of hybrid systems, integrating the quantum part with the classical one
through standard, clear and self-provisioned web services from the quantum application catalog
• Explore the results using a unified scheme, without worrying about the language of quantum
computers
• Manage all the processes and analyze all the stored telemetry
• Facilitate the use of the platform with a fully automatic process support system and a reduced
learning curve</p>
      <p>More information about QPath® [8] could be found in the demos available on the web:
https://www.aquantum.es/demo/.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Quantum annealing</title>
      <p>Since so many years ago, in glass industry, there is a process that consists in warming a glass and
then, a slow cooling driven by a time step protocol. Why we want to do that? Well, in the case of glass
pieces, a physical-chemistry property is modified: the material adopts a different molecular structure
that prevents spontaneous breakage. The technique is called annealing. In fact, a perturbation of a
system followed by a controlled trajectory to the equilibrium may allow to visit a new stable state that
could be more interesting for our purposes.</p>
      <p>Annealing technique was probably initially applied in material industry before the development of
a thermodynamic theory that explains the phenomena at a molecular level. Later, the improvement of
the annealing processes in industry was possible due a theory that explains which are and how to tune
the critical parameters involved.</p>
      <p>During the interaction between theory and practice, it is common that, in an abstraction stage to
develop a theory, a migration of concepts among different disciplines occurs. Returning to the example
presented above, annealing is a warming-cooling protocol applied in industries such as the glass
production, but also a computational technique applied in theoretical chemistry (simulated annealing),
as well as a process that takes place at a hardware level in quantum computing devices (quantum
annealing). Thus, the annealing considered here is a technique in the field of computing science inspired
by computational chemistry and, in the origin, by chemistry applied to the industry.</p>
      <p>Lots of computational problems can be tackled using an optimization approach. It includes the
definition of relevant variables that describes the properties of the problem we are interested in and
pair-wise interactions among these variables. In this context, energy is a real value mathematical
function of the variables defined and gives us the information about the intensity of the interactions.
We search the minimum values of energy sampling the variables.</p>
      <p>The annealing starts when we apply a perturbation to the system (a warming) that lets it to access to
a wider range of energetic states. Then, we apply a (slow) cooling protocol that allows the system
evolves forward to a more stable state, i.e., to a minimum of energy.</p>
      <p>The collection of the values given to the variables in each sampling step is called configuration.
Going from one configuration to other with less energy requires to jump an energetic barrier in most of
the cases. This demands more computing time. However, when we deal with a quantum system, a
phenomenon called quantum tunneling may occur. Quantum tunneling makes it possible to overcome
an energetic barrier without jumping it but “crossing trough the base”. Therefore, there is a less demand
of computing time.</p>
      <p>An annealer is a hardware device that carries out annealing; it can be a digital annealer, such as
Fujitsu Digital Annealer [9], or a quantum annealer such as D-Wave Systems [10]. The D-Wave
Systems company has released a commercial quantum annealer that is composed by many qubits
spatially ordered in a graph geometry and able to interact among them and with two external magnetic
fields. The exponential scalability in the number of (stable) qubits is one of the most interesting features
of this technology. In D-Wave hardware, qubits initialize in a quantum superposition state due to the
action a transversal magnetic field. The quantum annealing protocol starts when a longitudinal magnetic
field is slowly turned on while the transversal one is slowly turned off, as it is shown in figure 1. The
protocol ends when all the qubits collapse into bit states that encode one of the possible optimized
solutions for our computational problem. The Hamiltonian H (the energy of the system, i.e., the energy
of the set of qubits) includes the interaction with the transversal (red) and longitudinal (green) external
magnetic fields, as well as pair the-wise interaction between the qubits (purple).</p>
      <p>Quantum annealing in computing science promises to resolve NP-hard problems, among others, in
an easier way, along with the reduction of the computational resource requirements. The impact of
annealing technology will be big thought solutions to NP-hard problems are currently strongly
demanded in many industries.</p>
      <p>Focusing on software development, QUBO (Quadratic Unconstraint Binary Optimization) approach
is the logical-mathematical bridge that makes possible the coding of an NP-hard problem, among others,
into binary variables and its corresponding pair-wise interactions. The model of the system, i.e., the
definition of the variables and the interactions, becomes critical to get the information you need below
an error tolerance threshold.</p>
      <p>Pair-wise interactions are modeled as quadratic terms. That means products that include the variables
involved (“purple” term in Figure 1). The interaction of the qubits with the longitudinal external
magnetic field is represented as a linear term (“green” term in Figure 1). Both, quadratic and linear term
of the Hamiltonian constitute the called Ising model that is equivalent to a QUBO formulation. The
Ising Hamiltonian is what the programmer code according to the computational problem she/he wants
to resolve. Eventually, a constant energetic term appears. However, it just modifies the absolute value
of the total energy which is irrelevant in a minimization interpretation of the results. On the other hand,
the first term in the Hamiltonian of Figure 1 (“red” term) is not controlled by the programmer but by a
standalone process the annealer executes. In fact, the transversal term is the quantum part of the
Hamiltonian that favors the quantum tunneling effect.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Quantum annealer compositor</title>
      <p>Quantum coding can be a pain in your neck even for those with a scientific background. As was
mentioned above, DWave System company has released the first commercial quantum annealer
together with an SDK called Ocean. In the same way, Fujitsu has created a Digital Annealer using
concepts of Quantum Inspired technology. Anyway, programming an “annealer” basically consists in
coding an interaction matrix whose dimension scales with the number of variables defined to describe
our computational problem. Ocean and Fujitsu -as main examples- work with Python as a programming
language and have their own SDK to program their own machines.</p>
      <p>In this scenario, QPath® appears to make possible commercial quantum software development.
QPath® can help you in the design, deployment and execution of your quantum annealing algorithm,
providing a set of abstractions, tools, scalable executions, and unified results that simplifies the
development stage, being aware the underlying technological details. In fact, you can work with
different supported platforms, see Figure 2.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Example</title>
      <p>
        We will solve a typical optimization problem: the optimization of a package delivery. Suppose that
we have five boxes, each one with a specific weight (
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref4">1, 2, 3, 4, 4</xref>
        ) and a specific price (
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5">4, 1, 2, 3, 5</xref>
        ). We
need to obtain the best combination of weight price to fit a maximum weight about 6 kilograms. To
optimize the package delivery, we need to define one class call “box”, for this box we need to define
five instances each instance will have its own characteristics (the price and the weight) as input the
values. To solve the problem, we need to have two rules: the first rule is to determine that the weight
of the packages must be six kilograms, and the second rule is that we want to maximize the price.
      </p>
      <p>
        We need some mathematical expressions, the first quadratic expression in (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) can be developed as
the expression in (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ). The second rule must be developed using the linear term in (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) in order to do that
we will see how the quantum annealer can help us to do that.
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
      </p>
      <p>At the end, the background of this problem consists in the definition of the Hamiltonian that solves
the combinatorial problem and the QUBO generation.</p>
      <p>Using the quantum annealer compositor, we define a new class “box” with 5 instances and specific
properties (price and weight) with their corresponding values (see Figure 3).</p>
      <p>The next step is to create the rules. We must generate a formula that codifies the rule that we have 6
kilograms at maximum weight, using the “interaction” element (see Figure 4). Depending on the type
of the interaction (Linear or quadratic), the system will automatically determine how many elements
are needed to solve this part.</p>
      <p>In a similar way we define a new interaction for the quadratic term, and for the second rule. After
these definitions, we specify the quantum flow that combines the execution of the boxes annealing
process and compile our solution. QPath® transparently creates all the assets that are needed to the
execution. We chose in the runtime dashboard the specific quantum machine or simulator that acts as
an annealing solver.</p>
      <p>And in the QPath´s execution dashboard we can see the results of this example (see Figure 5).</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions and future work</title>
      <p>Thanks to recent advances in the application of scientific research in various fields of knowledge to
the development of quantum computing, we have stopped talking about quantum computing as
something of the future.</p>
      <p>QPath® is a platform that does not demand a workforce with “universal” competencies for the
development of quantum software because, simply, it provides the necessary tools for the development
team to focus on the development of the solution without having to worry about the specificities of
quantum platforms and their necessary requirements. This allows to accelerate the construction and
deployment of quantum applications, abstracting their technical complexities, since programmers can
focus on the domain of the problem or business model, needing only the functional knowledge required
for the solution. And they can do this in a totally visual environment, even in the case of annealing
problems. This will benefit specially novice developers taking their first practical steps in the activities
of the quantum software development cycle, from the creation of the quantum algorithm through its
development, testing and implementation, to its deployment and reuse. With these facilities for the rapid
adoption of quantum development, QPath® makes a very special contribution to the growing global
demand for quantum software developers in the emerging quantum industry.</p>
      <p>We believe that in this way QPath® can significantly contribute to the adoption of quantum
technologies and specifically enable companies to develop and deploy applications based on these
technologies, safeguarding their investments.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work is part of “QHealth: Quantum Pharmacogenomics Applied to Aging”, 2020 CDTI
Missions Programme (Center for the Development of Industrial Technology of the Ministry of Science
and Innovation of Spain) and FEDER. We would like to thank all the aQuantum members for their help
and support.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterssen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pérez-Castillo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Quantum</surname>
          </string-name>
          <article-title>Computing: A New Software Engineering Golden Age</article-title>
          .
          <source>ACM SIGSOFT Software Engineering Newsletter</source>
          <volume>45</volume>
          (
          <issue>3</issue>
          ),
          <year>June 2020</year>
          ,
          <fpage>12</fpage>
          -
          <lpage>14</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterssen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pérez-Castillo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hevia</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Murina</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , et al.
          <article-title>The Talavera Manifesto for Quantum Software Engineering and Programming</article-title>
          .
          <source>QANSWER 2020 QuANtum SoftWare Engineering &amp; pRogramming. Proceedings of the 1st International Workshop on the QuANtum SoftWare Engineering &amp; pRogramming</source>
          , Talavera de la Reina,
          <source>Spain, February 11-12</source>
          ,
          <year>2020</year>
          . http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>2561</volume>
          /paper0.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Serrano</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pérez-Castillo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterssen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Hevia</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          (
          <year>2021</year>
          ).
          <article-title>Towards a Quantum Software Engineering</article-title>
          . IT Professional, IEEE,
          <volume>23</volume>
          (
          <issue>1</issue>
          ),
          <fpage>62</fpage>
          -
          <lpage>66</lpage>
          ,
          <string-name>
            <surname>Jan</surname>
          </string-name>
          .-Feb.
          <year>2021</year>
          , doi: 10.1109/MITP.
          <year>2020</year>
          .
          <volume>3019522</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Peterssen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <article-title>Quantum Technology Impact: The Necessary Workforce for Developing Quantum Software</article-title>
          .
          <source>Proceedings of the 1st International Workshop on the QuANtum SoftWare Engineering &amp; pRogramming (QANSWER)</source>
          , Talavera de la Reina, Spain,
          <fpage>11</fpage>
          -
          <lpage>12</lpage>
          February
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Requirements for a Robust Quantum Software Development Environment</article-title>
          .
          <source>Cutter Business Technology Journal</source>
          <volume>34</volume>
          (
          <issue>4</issue>
          ),
          <year>2021</year>
          ,
          <fpage>12</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6] QuantumPath. https://www.quantumpath.
          <source>es/ Accessed 1st June</source>
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Hevia</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          (
          <year>2020</year>
          ).
          <article-title>Requirements for Quantum Software Platforms</article-title>
          .
          <source>Q-SET'20: 1st Quantum Software Engineering and Technology Workshop, October</source>
          <volume>13</volume>
          ,
          <year>2020</year>
          , Denver - Broomfield, Colorado, USA. CEDUR-Ws.org/Vol-
          <volume>2705</volume>
          /short3.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Peterssen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Hevia</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          <article-title>Introduction to quantum software development with QPath</article-title>
          . https://www.quantumpath.es/index.php/
          <year>2021</year>
          /01/13/introduction-to
          <article-title>-quantum-softwaredevelopment-with-qpath/</article-title>
          .
          <source>The QPath Blog</source>
          .
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Fujitsu</given-names>
            <surname>Digital</surname>
          </string-name>
          <article-title>Annealer</article-title>
          . https://www.fujitsu.com/global/services/business-services/digitalannealer/index.html Accessed 1st June 2021
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>D-Wave System</surname>
          </string-name>
          . https://www.dwavesys.com/ Accessed 1st June 2021
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>