Einführung in die numerische QuantenbibliothekIntroduction to the Quantum Numerics Library

Viele Quantenalgorithmen basieren auf Orakeln, die mathematische Funktionen anhand einer Überlagerung von Eingaben auswerten.Many quantum algorithms rely on oracles that evaluate mathematical functions on a superposition of inputs. Die Hauptkomponente des Shor-Algorithmus wertet beispielsweise $f(x) = a^x\operatorname{mod} N$ für ein festes $a$, den Faktor für $N$, sowie $x$ als ein ganzzahliges $2n$-Qubit in einer einheitlichen Überlagerung aller Zeichenfolgen mit $2n$ Bits aus.The main component of Shor's algorithm, for example, evaluates $f(x) = a^x\operatorname{mod} N$ for a fixed $a$, the number to factor $N$, and $x$ a $2n$-qubit integer in a uniform superposition over all $2n$-bit strings.

Soll der Shor-Algorithmus auf einem echten Quantencomputer ausgeführt werden, muss diese Funktion als Term der nativen Vorgänge des Zielcomputers geschrieben werden.To run Shor's algorithm on an actual quantum computer, this function has to be written in terms of the native operations of the target machine. Wird die binäre Darstellung von $x$ verwendet, bei der $x_i$ das $i$-te Bit beginnend mit dem unwichtigsten Bit angibt, kann $f(x)$ als $f(x) = a^{\sum_{i=0}^{2n-1} x_i 2^i} \operatorname{mod} N$ geschrieben werden.Using the binary representation of $x$ with $x_i$ denoting the $i$-th bit counting from the least-significant bit, $f(x)$ can be written as $f(x) = a^{\sum_{i=0}^{2n-1} x_i 2^i} \operatorname{mod} N$. Dies kann wiederum als Produkt (mod N) der Terme $a^{2^i x_i}=(a^{2^i})^{x_i}$ geschrieben werden.In turn, this can be written as a product (mod N) of terms $a^{2^i x_i}=(a^{2^i})^{x_i}$. Die Funktion $f(x)$ kann daher mit einer Sequenz von $2n$ (modularen) Multiplikationen mit $a^{2^i}$ implementiert werden, sofern $x_i$ ungleich 0 (null) ist.The function $f(x)$ can thus be implemented using a sequence of $2n$ (modular) multiplications by $a^{2^i}$ conditional on $x_i$ being nonzero. Die Konstanten $a^{2^i}$ können vor der Ausführung des Algorithmus vorab berechnet und um Modulo N reduziert werden.The constants $a^{2^i}$ can be precomputed and reduced modulo N before running the algorithm.

Diese Sequenz kontrollierter modularer Multiplikationen kann noch weiter vereinfacht werden: Jede Multiplikation kann mit einer Sequenz aus $n$ kontrollierten modularen Additionen ausgeführt werden, und jede modulare Addition kann aus einer regulären Addition und einem Vergleichsoperator gebildet werden.This sequence of controlled modular multiplications can be simplified further: Each multiplication can be performed using a sequence of $n$ controlled modular additions; and each modular addition can be built from a regular addition and a comparator.

Angesichts der Vielzahl an Schritten, die für die tatsächliche Implementierung erforderlich sind, wäre es äußerst hilfreich, diese Funktion schon gleich zu Beginn zur Verfügung zu haben.Given that so many steps are necessary to arrive at an actual implementation, it would be extremely helpful to have such functionality available from the start. Aus diesem Grund bietet das Quantum Development Kit Unterstützung für eine ganze Reihe numerischer Funktionen.This is why the Quantum Development Kit provides support for a wide range of numerics functionality.

FunktionalitätFunctionality

Neben der bisher erwähnten Ganzzahlarithmetik bietet die numerische Bibliothek Funktionen mitBesides the integer arithmetic mentioned thus far, the numerics library provides

  • ganzen Zahlen mit/ohne Vorzeichen (Multiplikation, Quadrierung, Division mit Rest, Inversion usw.) mit einer oder zwei ganzzahligen Quantenzahlen als Eingabe(Un)signed integer functionality (multiply, square, division with remainder, inversion, ...) with one or two quantum integer numbers as input
  • Festkommawerten (Addition, Subtraktion, Multiplikation, Quadrierung, 1/x, Polynomauswertung) mit einer oder zwei Festkomma-Quantenzahlen als EingabeFixed-point functionality (add / subtract, multiply, square, 1/x, polynomial evaluation) with one or two quantum fixed-point numbers as input

Erste SchritteGetting started

Informationen zu den ersten Schritten mit der numerischen Bibliothek finden Sie im Installationshandbuch sowie weitere Informationen unter Verwenden der numerischen Bibliothek.To get started with the Numerics Library, check out the installation guide and more information on using the Numerics Library.