DE112017007826T5 - Simulieren von Quantenschaltungen - Google Patents

Simulieren von Quantenschaltungen Download PDF

Info

Publication number
DE112017007826T5
DE112017007826T5 DE112017007826.1T DE112017007826T DE112017007826T5 DE 112017007826 T5 DE112017007826 T5 DE 112017007826T5 DE 112017007826 T DE112017007826 T DE 112017007826T DE 112017007826 T5 DE112017007826 T5 DE 112017007826T5
Authority
DE
Germany
Prior art keywords
quantum
subcircuits
subcircuit
gates
gate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017007826.1T
Other languages
English (en)
Inventor
Edwin Peter Dawson Pednault
John Gunnels
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112017007826T5 publication Critical patent/DE112017007826T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Geometry (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Image Processing (AREA)

Abstract

Ein durch einen Computer umgesetztes Verfahren enthält ein Empfangen einer digitalen Beschreibung einer Quantenschaltung, ein Partitionieren der digitalen Beschreibung der Quantenschaltung in eine Mehrzahl von Quantenteilschaltungen, wobei jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen ein oder mehrere Quantengatter aufweist, ein Bestimmen von Teilschaltungsabhängigkeiten für die Mehrzahl von Quantenteilschaltungen, ein Simulieren der Mehrzahl von Quantenteilschaltungen gemäß den Teilschaltungsabhängigkeiten, um Simulationsergebnisse für jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen zu erzeugen, wobei eine erste und eine zweite Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen jeweils ein oder mehrere Gatter enthalten, die auf ein gemeinsames Qubit angewendet werden, und wobei die erste und die zweite Quantenteilschaltung unabhängig voneinander simuliert werden unter Verwendung eines verschränkten Tensorindex. Ein entsprechendes Computersystem und Computerprogrammprodukt werden hierin ebenfalls offenbart.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Quantenschaltungen und insbesondere ein Simulieren von Quantenschaltungen.
  • Quantenschaltungen machen direkten Gebrauch von quantenmechanischen Phänomenen wie beispielsweise Überlagerung und Freigabe, um Informationen zu verarbeiten. Zum Beispiel kann eine Quantenschaltung Quantengatter aufweisen, die logische Funktionen auf verschiedene Eingaben anwenden. Im Gegensatz zu digitalen Logikschaltungen, die auf konkrete Zustände (z.B. 0 und 1) für jedes Schaltungselement beschränkt sind, können Quantenschaltungen mehrere Zustände gleichzeitig (per Überlagerung) darstellen und verarbeiten. Infolgedessen kann Quantendatenverarbeitung einige Probleme viel schneller als herkömmliche Datenverarbeitung lösen und auch Probleme lösen, die derzeit für herkömmliche Datenverarbeitung zu komplex sind.
  • Ungeachtet der vielversprechenden Quantendatenverarbeitung sind Quantenschaltung schwierig aufzubauen, kostspielig und leiden unter verschiedenen Problemen, wie beispielsweise Skalierung und Quanten-Dekohärenz. Demzufolge besteht ein Bedarf, ein Simulieren von relativ großen Quantenschaltungen unter Verwendung von handelsüblichen Computern zu ermöglichen. Ferner besteht auch ein Bedarf an einem Vergleich der tatsächlichen Ausgaben einer Quanten-Datenverarbeitungseinheit mit dem idealen Verhalten, das durch Simulation für eine umgesetzte Quantenschaltung vorhergesagt wird, um die Genauigkeit zu bewerten, mit der eine Quanteneinheit eine gewünschte Quantenschaltung ausführen kann.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In einem Aspekt der hierin offenbarten Ausführungsformen enthält ein Verfahren, ausgeführt durch einen oder mehrere Prozessoren, zum Simulieren einer Quantenschaltung, die eine Mehrzahl von Quantengattern aufweist, ein Empfangen einer digitalen Beschreibung der Quantenschaltung, ein Partitionieren der digitalen Beschreibung der Quantenschaltung in eine Mehrzahl von Quantenteilschaltungen, wobei jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen ein oder mehrere Quantengatter aufweist, ein Bestimmen von Teilschaltungsabhängigkeiten für die Mehrzahl von Quantenteilschaltungen, ein Simulieren der Mehrzahl von Quantenteilschaltungen gemäß den Teilschaltungsabhängigkeiten, um Simulationsergebnisse für jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen zu erzeugen, wobei eine erste und eine zweite Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen jeweils ein oder mehrere Gatter enthalten, die auf ein gemeinsames Qubit angewendet werden, und wobei die erste und die zweite Quantenteilschaltung unabhängig voneinander unter Verwendung eines verschränkten Tensorindex simuliert werden. Ein entsprechendes Computerprogrammprodukt wird hierin ebenfalls offenbart.
  • In einem Aspekt der hierin offenbarten Ausführungsformen enthält ein Verfahren, ausgeführt durch einen oder mehrere Prozessoren, zum Simulieren einer Quantenschaltung, die eine Mehrzahl von Quantengattern aufweist, ein Empfangen einer digitalen Beschreibung der Quantenschaltung, die eine Mehrzahl von Stufen aufweist, ein Erstellen einer Teilschaltung für jedes Anfangsstufen-Qubit, um eine Mehrzahl von Teilschaltungen zu erzeugen, ein wiederholtes Hinzufügen von verbundenen, nicht brückebildenden Gattern von einer oder mehreren anschließenden Stufen der Mehrzahl von Stufen zu der Mehrzahl von Teilschaltungen, bis keine weiteren verbundenen, nicht brückebildenden Gatter mehr verfügbar sind, ein Auswählen eines brückebildenden Gatters, das mit zwei oder mehreren Teilschaltungen der Mehrzahl von Teilschaltungen verbunden ist, ein Bestimmen, ob die zwei oder die mehreren Teilschaltungen verschränkt werden sollen, und ein Hinzufügen des brückebildenden Gatters nur zu einer der zwei oder der mehreren Teilschaltungen in Reaktion auf ein Bestimmen, dass die zwei oder die mehreren Teilschaltungen verschränkt werden sollen. Ein entsprechendes Computerprogrammprodukt wird hierin ebenfalls offenbart.
  • In einem Aspekt der hierin offenbarten Ausführungsformen enthält ein Verfahren, ausgeführt durch einen oder mehrere Prozessoren, zum Simulieren einer Quantenschaltung, die eine Mehrzahl von Quantengattern aufweist, ein Empfangen einer digitalen Beschreibung einer Gruppe von Quantenteilschaltungen, die Quantengatter und entsprechende Qubits aufweisen, ein Zuweisen eines unterschiedlichen Tensorindex zu jedem Qubit und zu einem Ausgang jedes nicht diagonalen unitären Gatters, ein Verbreiten einer Tensor-Indexvariablen von einem Eingang zu einem Ausgang jedes diagonal unitären Gatters, und ein Ausführen jeder Quantenteilschaltung unter Verwendung der zugewiesenen Tensorindizes. Ein entsprechendes Computerprogrammprodukt wird hierin ebenfalls offenbart.
  • Figurenliste
    • 1 ist eine Veranschaulichung und zugehörige Gleichungen, die ein Beispiel von Quantenzuständen gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellen ;
    • 2 ist eine Gruppe von Gleichungen, die ein Beispiel von Basisvektoren darstellen, die einem Qubit gemäß mindestens einer Ausführungsform der vorliegenden Erfindung entsprechen;
    • 3 ist eine Gruppe von Gleichungen, die zwei Beispiele einer Tensordarstellung eines Quantensystems gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellen;
    • 4A ist eine Gruppe von schematischen Symbolen, und 4B ist eine entsprechende Gruppe von Tensortabellen, die verschiedene Beispiele von Quantengattern gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellen;
    • 5 ist ein Ausführungsplan, der einer großen Quantenschaltung entspricht, von der üblicherweise angenommen wird, dass es unmöglich ist, sie auf derzeit verfügbaren Datenverarbeitungssystemen zu simulieren;
    • 6 ist eine schematische Darstellung und entsprechende logische Beschreibung auf Textgrundlage einer Quantenschaltung, die hierin als ein Verarbeitungsbeispiel gemäß mindestens einer Ausführungsform der vorliegenden Erfindung verwendet wird;
    • 7 ist ein Ablaufplan, der ein Beispiel eines Simulationsverfahrens für eine Quantenschaltung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 8A bis 8C sind Abbildungen mit Text, die Tensorgleichungen und Ressourcenkosten darstellen, die einem Simulieren von verschiedenen Quantengattern zugehörig sind, die in 4 und 5 dargestellt werden;
    • 9A bis 9E sind schematische und Gleichungs-Darstellungen, die die Auswirkung eines Partitionierens auf die Datenverarbeitungsressourcen darstellen, die zum Simulieren eines bestimmten Beispiels einer Quantenschaltung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung benötigt werden;
    • 10 ist ein Ablaufplan, der ein Beispiel eines Partitionierungsverfahrens für eine Quantenschaltung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 11A ist ein Ablaufplan, der ein Beispiel eines Ausführungsverfahrens für eine Quantenschaltung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 11B ist ein Ablaufplan, der weitere Details des Ausführungsverfahrens für eine Quantenschaltung darstellt, das in 11A dargestellt wird;
    • 12A bis 12C sind schematische Darstellungen, die ein Beispiel einer Optimierung vor einer Partitionierung eines bestimmten Beispiels einer Quantenschaltung darstellen;
    • 13A bis 13D sind schematische Darstellungen, die vier Beispiele für eine Partitionierung und Ausführung eines bestimmten Beispiels einer Quantenschaltung darstellen;
    • 14 ist eine Schaltungspartitionierung, die Teilschaltungen der großen Quantenschaltung entsprechend 5 darstellt, die eine Simulation auf derzeit verfügbaren Datenverarbeitungssystemen ermöglicht;
    • 15 ist ein Blockschaubild, das ein Beispiel einer Datenverarbeitungsvorrichtung darstellt, die zum Ausführen von einem oder mehreren der hierin offenbarten Verfahren geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgenden Begriffe, Definitionen und Konzepte, die aus öffentlich verfügbaren Quellen wie zum Beispiel Wikipedia sowie den praktischen Kenntnissen der Erfinder zusammengetragen wurden, können für das Verständnis der vorliegenden Erfindung hilfreich sein - insbesondere für diejenigen, die über keine Erfahrung auf dem Gebiet des Simulierens von Quantenschaltungen verfügen.
  • Quantenüberlagerung: Die Nettoreaktion (z.B. im einem Schaltungselement), die durch zwei oder mehrere Impulse gleichzeitig verursacht wird, ist die Summe der Reaktionen, die durch jeden Impuls einzeln verursacht worden wären. Im Fall eines Quantensystems ist die Reaktion ein Quantenzustand, der eine lineare Überlagerung von diskreten Zuständen sein kann. Eine Überlagerung ermöglicht dadurch, dass Quantenschaltungen gleichzeitig mehrere Zustände oder Resultate darstellen können (z.B. eine statistische Mischung von 0 und 1).
  • Quantensystem: Ein System, das Quanteneffekte wie Überlagerung und Verschränkung aufweist.
  • Quantenzustände: Die Zustände (Möglichkeiten), die (gleichzeitig) in einem Quantensystem vorhanden oder verfügbar sind.
  • Qubit: Eine Einheit eines Quantenspeichers, die eine statistische Mischung aus einem 0-Zustand und einem 1-Zustand gleichzeitig darstellen kann.
  • Quantenzusammenbruch: Die Handlung eines Messens des Zustands eines quantenmechanischen Systems, der verursacht, dass das System sich zu einem gemessenen Einzelzustand entwickelt. In einem realen quantenmechanischen System wird durch die Handlung des Messens im Wesentlichen ein einzelner verwirklichter Wert aus einer statistischen Mischung von Werten ausgewählt. In einer simulierten Quantenschaltung können Messungen jedoch vorgenommen werden, ohne die zugrunde liegenden Zustandsinformationen zu zerstören.
  • Verschränkung: Ein vorhandener Effekt zwischen zwei Quantensystemen, deren quantenmechanische Zustände voneinander unabhängig sind. Zum Beispiel gibt ein Messen des Zustands von einem von zwei verschränkten Qubits Informationen über den Zustand des anderen verschränkten Qubits an, da ihre Zustände statistisch in Beziehung gesetzt sind.
  • Quantendaten: Informationen, die als ein oder mehrere Quantenzustände dargestellt sind (z.B. mit einem Quantenschaltungselement wie beispielsweise einem Qubit).
  • Quantengatter: Ein Element einer Quantenschaltung, die zum Ausführen einer logischen oder mathematischen Funktion an Quantendaten verwendet wird. Beispiele für Quantengatter werden in den 4 und 5 gezeigt.
  • Tensor: Ein k-dimensionales Array von realen oder komplexen Werten, wobei k der Rang oder die Ordnung des Tensors ist. Eine Matrix ist ein Tensor zweiter Ordnung, und ein Vektor ist ein Tensor erster Ordnung. Tensoren können zum Darstellen von Quantenzuständen in einer Quantensimulation verwendet werden.
  • Tensornetzwerk: Eine gerichtete grafische Darstellung, die einer Gruppe von miteinander zusammenhängenden Tensorgleichungen entspricht. Ein Tensornetzwerk kann verwendet werden, um eine Quantenschaltung darzustellen, wobei die Knoten in der grafischen Darstellung Tensoren sind, die Quantenschaltungselemente (z.B. Quantengatter) darstellen, und die Flanken der grafischen Darstellung können Indizierungsvariablen für die Tensoren angeben.
  • Tensorkontraktion: Ein mathematisch strikter Prozess eines Zusammenführens einer Reihe von zwei oder mehreren miteinander zusammenhängenden Tensoren zu einem einzigen Tensor. Eine Tensorkontraktion kann unter Umständen die Größe des sich ergebenden Tensors multiplikativ vergrößern, was von der Beziehung der Indizierungsvariablen der zusammengeführten Tensoren abhängt. Wenn eine Quantenschaltung als ein Tensornetzwerk dargestellt wird, führt die Tensorkontraktion zwei oder mehrere Knoten zusammen, die durch eine oder mehrere Flanken zu einem einzigen Knoten verbunden sind.
  • Wie hierin verwendet, sind die Begriffe „simulieren“ und „ausführen“ (z.B. eine Quantenteilschaltung) im Wesentlichen dadurch synonym, dass (im Gegensatz zu vielen Simulationen, die reine Näherungswerte von etwas Realem sind) die hierin offenbarten Simulationsverfahren für eine Quantenschaltung reale, rechnerisch gültige Ergebnisse erzielen. Wie hierin verwendet, bezieht sich der Ausdruck „Indexvariable“ oder dergleichen auf jeden Typ von Arbeitsspeicheradressierung oder -indizierung (wie diejenigen, die dem Fachmann bekannt sind), der zu einem Zugriff auf die gewünschten Daten und/oder den gewünschten Arbeitsspeicher-Speicherort führt.
  • Mindestens einige der hierin offenbarten Ausführungsformen erkennen, dass Quantenschaltungen unter Verwendung von weniger Arbeitsspeicher als herkömmlicherweise angenommen simuliert werden können. Zum Beispiel können mindestens einige der hierin offenbarten Ausführungsformen den Arbeitsspeicher, der zum Darstellen und Simulieren von Quantenschaltungen erforderlich ist, die N Qubits aus 2N komplexen Werten aufweisen, auf einen Bruchteil dieser Menge verringern.
  • Insbesondere erkennen mindestens einige der hierin offenbarten Ausführungsformen, dass eine Quantenschaltung in Teilschaltungen partitioniert werden kann, indem Quantenschaltungselemente in zwei oder mehrere der Teilschaltungen verschränkt werden. Mindestens einige der hierin offenbarten Ausführungsformen erkennen des Weiteren, dass die Simulationsergebnisse von einigen Teilschaltungen in Anteilen berechnet werden können, und dadurch der Arbeitsspeicher, der zum Simulieren der gesamten Quantenschaltung erforderlich ist, im Gegensatz zu herkömmlichen Annahmen signifikant verringert werden kann. Eine der erfinderischen Erkenntnisse der vorliegenden Erfindung besteht darin, dass diese aufteilenden Operationen während der Simulation einer Quantenschaltung ausgeführt werden können, sobald ein Punkt in der Simulation erreicht ist, an dem alle übrigen Quantengatter, die auf ein Qubit angewendet werden, diagonal unitäre Gatter sind. Unter solchen Umständen kann ein iteratives Konstrukt, wie beispielsweise eine For-Schleife, eingeführt werden, um eine Wiederholung über die 0/1-Werte des Qubits auszuführen, und anschließende Tensoroperationen, an denen dieses Qubit beteiligt ist, können in Anteilen unter Verwendung der halben Menge von Arbeitsspeicher als ohne die Verwendung einer Tensoraufteilung ausgeführt werden.
  • Es ist anzumerken, dass Verweise in der gesamten Patentschrift auf Funktionen, Erkenntnisse, Vorteile oder ähnliche Ausdrucksweise hierin nicht implizieren, dass alle Funktionen und Vorteile, die mit den hierin offenbarten Ausführungsformen verwirklicht werden können, in jeder einzelnen Ausführungsform der Erfindung vorhanden sein sollen oder vorhanden sind. Stattdessen soll eine Ausdrucksweise, die auf die Funktionen und Vorteile verweist, so zu verstehen sein, dass eine bestimmte Funktion, ein bestimmter Vorteil oder ein Merkmal, die in Verbindung mit einer Ausführungsform beschrieben werden, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten sind. Somit können sich die Erörterung von Funktionen, Vorteilen und ähnliche Ausdrucksweise in dieser gesamten Patentschrift auf dieselbe Ausführungsform beziehen, dies ist aber nicht notwendigerweise der Fall.
  • Ferner können die beschriebenen Funktionen, Erkenntnisse, Vorteile und Merkmale der Erfindung auf jede geeignete Art und Weise in einer oder mehreren Ausführungsformen kombiniert werden. Der Fachmann des relevanten Gebiets wird erkennen, dass die Erfindung ohne eine oder mehrere der spezifischen Funktionen oder Vorteile einer bestimmten Ausführungsform ausgeübt werden kann. In anderen Beispielen können zusätzliche Funktionen und Vorteile in bestimmten Ausführungsformen erkannt werden, die möglicherweise nicht in allen Ausführungsformen der Erfindung vorhanden sind. Diese Merkmale und Vorteile werden aus den folgenden Zeichnungen, der Beschreibung und den Ansprüchen im Anhang umfassender offenkundig oder können durch Ausübung der hierin im Folgenden dargelegten Erfindung in Erfahrung gebracht werden.
  • 1 ist eine Veranschaulichung und zugehörige Gleichungen, die ein Beispiel von Quantenzuständen gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellen . Teilchen wie zum Beispiel Elektronen, die an andere Teilchen wie beispielsweise Atome gebunden sind, sind auf diskrete (d.h. quantisierte) Schwingungsenergiepegel beschränkt, auf die als Quantenzustände verwiesen wird. In Dirac-Schreibweise (auch als Bra-Ket-Schreibweise bekannt) werden diese Zustände mit |0〉, |1〉, |2〉, |3〉 usw. bezeichnet, wobei 10) dem niedrigsten Energiepegel entspricht, der als der Grundzustand bekannt ist.
  • Quantencomputer bearbeiten die Zustände von Quantensystemen, um Berechnungen auszuführen und Probleme zu lösen. Typischerweise werden nur die beiden niedrigsten Energiezustände verwendet, was zu einer Berechnungs- und Speichereinheit führt, die als Qubit bekannt ist. Da eine Bearbeitung und ein Zugriff auf einzelne Elektronen problematisch ist, werden Qubits von Quantencomputern typischerweise als supraleitfähige Oszillatoren verkörpert. Zu Beispielen zählen Transmon-Qubits, die Halbleitereinheiten sind, die Kondensatoren mit supraleitenden Josephson-Übergangsvorrichtungen kombinieren, die effektiv als nicht lineare Induktoren arbeiten und eine Schwingkreisresonanz ermöglichen.
  • Wie in Gleichung 110 gezeigt, können die primären Schwingungszustände eines Quantensystems als Basisvektoren in einem n-dimensionalen Vektorraum darstellt werden. Ein willkürlicher Quantenzustand eines Quantensystems kann dann als eine lineare Kombination (d.h. Überlagerung) dieser Basisvektoren mit einem komplexen skalaren Multiplikator αi für jede Grunddimension in dem Vektorraum dargestellt werden. Gleichung 120 zeigt, dass beim Ausführen einer Messung das Quantensystem auf einen der primären Schwingungszustände zusammenbricht, in dem die Wahrscheinlichkeit proportional zum Quadrat der Größe des skalaren Multiplikators αi ist (auch bekannt als komplexe Amplitude oder einfach nur Amplitude) für diesen Schwingungszustand direkt vor der Messung.
  • Wie in Gleichung 130 gezeigt, unterliegt die zeitliche Entwicklung eines bestimmten Quantenzustands der Schrödinger-Gleichung. Der Begriff H(t) ist als Hamilton-Funktion bekannt und entspricht der Gesamtenergie in dem System. Sie kann durch eine Matrix dargestellt werden, die eine lineare Transformation des skalaren Multiplikators αi definiert. Wie in Gleichung 140 gezeigt, haben Lösungen für die Schrödinger-Gleichung die Form |ψ(t)〉 = U(t) |ψ(0)〉 wobei U(t) als eine unitäre Matrix dargestellt werden kann, die auch eine lineare Transformation der skalaren Multiplikatoren αi definiert. Während Hamilton-Matrizen den gesamten Energien von Quantensystemen entsprechen, entsprechen die unitären Matrizen, die in Lösungen der Schrödinger-Gleichung auftreten, jedoch den zeitlichen Entwicklungen von Quantensystemen.
  • Gleichung 150 zeigt, dass unitäre Matrizen die Eigenschaft haben, dass ihre Umkehrungen gleich den Umsetzungen ihrer komplexen Konjugate sind. Diese Eigenschaft spiegelt die Tatsache wider, dass die zeitlichen Entwicklungen von Quantensystemen umkehrbar sind, bis Messungen vorgenommen werden (d.h. jede ausgeführte Aktion kann durch umgekehrte Aktionen rückgängig gemacht werden). Messungen sind nicht umkehrbare Aktionen, die nicht unitäre Transformationen verursachen.
  • 2 ist eine Gruppe von Gleichungen, die ein Beispiel von Basisvektoren darstellen, die einem Qubit gemäß mindestens einer Ausführungsform der vorliegenden Erfindung entsprechen. Wie in 2 gezeigt, können die wichtigsten Quantenzustände eines Qubits, nämlich 10) und |1〉, jeweils durch einen Basisvektor der Länge 2 dargestellt werden, der binäre Einträge aufweist, die angeben, dass sich das System ausschließlich in dem einen oder dem anderen wichtigen Quantenzustand befindet. Wie in Gleichung 210 gezeigt, kann jeder Quantenzustand (d.h. |ψ〉) eines Qubits als eine lineare Kombination der Grundzustände |0〉 und 11) dargestellt werden, (d.h. durch die skalaren Multiplikatoren dieser Grundzustände). In der dargestellten Gleichung sind die skalaren Multiplikatoren (d.h. Amplituden) für die Grundzustände |0〉 und |1〉 jeweils die griechischen Buchstaben Alpha (α) und Beta (β). Infolgedessen ist die Wahrscheinlichkeit, dass ein gemessenes Qubit auf einen Zustand 10) zusammenbricht, gleich |α|2, und die Wahrscheinlichkeit, dass ein gemessenes Qubit auf einen Zustand |1〉 zusammenbricht, gleich |β|2.
  • 3 ist eine Gruppe von Gleichungen, die zwei Beispiele einer Tensordarstellung eines Quantensystems gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellen. Anstelle der üblicheren Dirac-Schreibweise kann ein Quantensystem, das n Qubits aufweist, als ein n-dimensionales Array dargestellt werden (d.h. ein Tensor), wie durch Markov und Shi eingeführt. Insbesondere kann ein Tensor 310, der hierin mit dem griechischen Buchstaben Psi (ψ) mit n indizierenden Tiefstellungen (i1 ...in ) zum Darstellen des Quantenzustands von n Qubits verwendet werden, wobei die Wahrscheinlichkeit, einen zusammengebrochenen oder gemessenen Wert zu beobachten, durch die komplexe skalare Amplitude ψ bestimmt wird, die dem Grundzustand 320 zugehörig ist, der als | i1 ... in〉 dargestellt ist. Jede indizierende Tiefstellung (i1 ... in ) des Grundzustands 320 ist ein Binärwert, wenn das Quantensystem zusammengebrochen ist oder gemessen wird.
  • Die Beziehung zwischen der Tensordarstellung eines Quantenzustands und der Dirac-Darstellung wird in Gleichung 330 gezeigt. Der Quantenzustand in der Dirac-Darstellung ist eine lineare Kombination der Grundzustände |0···0〉, ..., |1···1〉, wobei die Werte des entsprechenden Quantenzustandstensors die komplexen skalaren Multiplikatoren sind, die diese lineare Kombination definieren. Die Tensorwerte in Gleichung 330 spielen somit dieselbe Rolle wie die griechischen Buchstaben Alpha (α) und Beta (β) in Gleichung 210.
  • Eine vollständige Tensorgleichung für ein anderes beispielhaftes Quantensystem (d.h. eine Quantenschaltung) wird in Gleichung 340 gezeigt. In dem dargestellten Beispiel wird ein Zwei-Qubit-Gatter auf Qubits k und m, k < m, in einer Quantenschaltung angewendet, die n Qubits aufweist, die sich anfänglich im Quantenzustand ψ befinden. Gleichung 340 drückt den Wert des Tensors für den sich daraus ergebenen Quantenzustand ψ' in Form des anfänglichen Quantenzustands ψ und des Tensors u aus, der der unitären linearen Transformation entspricht, die durch das Zwei-Qubit-Gatter definiert wurde. Die entsprechende Gleichung in Dirac-Schreibweise wäre bedeutend komplexer, da für sie erforderlich ist, den 4-dimensionalen Gatter-Tensor u in eine 2n mal 2n dimensionale Matrix auszudehnen, wobei jeder der 16 Werte u, repliziert mit 2(n-4) , in den korrekten Kombinationen von Zeilen und Spalten dieser Matrix repliziert wird. Sofern nicht k = m-1 ist, wäre die entsprechende Gleichung in Dirac-Schreibweise ziemlich chaotisch, wogegen sie unter Verwendung der Tensorschreibweise einfach ausgedrückt werden kann.
  • 4A ist eine Gruppe von schematischen Symbolen und 4B ist eine entsprechende Gruppe von Tensortabellen, die verschiedene Beispiele von Quantengattern gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellen. Die dargestellten Quantengatter enthalten Pauli-Gatter 410, Überlagerungsgatter 420, ein gesteuertes NOT-Gatter 430, ein gesteuertes Z-Gatter 440 und Nicht-Clifford-Gatter 450. Die dargestellten Quantengatter sind nicht erschöpfende Beispiele für Gatter, die in Quantenberechnungssystemen verwendet werden können.
  • Die Pauli-Gatter 410 entsprechen der Pauli-Gleichung, von der das Zusammenwirken des Spins eines Teilchens mit einem externen elektromagnetischen Feld berücksichtigt wird. Die Überlagerungsgatter 420 enthalten ein Hadamard-Gatter 420A und jeweils S- und S-Gatter 420B und 420C. Das Hadamard-Gatter 420A ordnet die wichtigsten (exklusiven) Grundzustände |0) und 11) zu Zuständen zu, die auf halbem Weg zwischen |0) und 11) liegen, nämlich jeweils (10) + |1〉)/√2 und (10) - |1〉)/√2, was zu einer gleichen Wahrscheinlichkeit für die Grundzustände 10) und 11) führt. Die jeweiligen S- und S-Gatter 420B und 420C werden manchmal verwendet, um 90°-Phasendrehungen zu Überlagerungen hinzuzufügen.
  • Gesteuerte Gatter wirken auf zwei oder mehrere Qubits, wobei ein oder mehrere Qubits als eine Steuerung für eine bestimmte Operation wirken. Mit dem gesteuerten Z- (CZ) Gatter 440 bestimmt eines der Qubits, ob eine Pauli-Z-Operation auf das andere Qubit angewendet wird. Die Aktion eines CZ-Gatters ist vollkommen symmetrisch in dem Sinn, dass die Ergebnisse unabhängig davon, welches Qubit die Steuerung ist, dieselben sind. Mit dem gesteuerten NOT- (CNOT) Gatter 430 bestimmt eines der Qubits, ob eine Pauli-X-Operation auf das andere Qubit angewendet wird, wodurch verursacht wird, dass das andere Qubit in den NOT-Zustand versetzt (umgekehrt) wird. Das CNOT-Gatter 430 und das CZ-Gatter 440 können beide verwendet werden, um Qubits zu verschränken oder die Verschränkung aufzuheben. Das klassische Gegenstück zu einem CNOT-Gatter ist ein reversibles XOR-Gatter.
  • Nicht-Clifford-Gatter werden zum Annähern von willkürlichen unitären Transformationen verwendet. Die dargestellten Nicht-Clifford-Gatter T und T , jeweils 450A und 450B, fügen 45°-Phasendrehungen hinzu. Während die Clifford-Gatter 410 bis 440 nur eine Verwirklichung von finiten Anzahlen von verschiedenen unitären Transformationen zulassen, erweitert das Hinzufügen von T- und T-Gattern diese Gruppe auf Unendlich, wodurch jede unitäre Transformation durch geeignete Kombinationen dieser Gatter auf beliebige Genauigkeit angenähert werden kann. Universal-Quantendatenverarbeitung greift auf diese Fähigkeit zurück.
  • Fachleuten auf dem Gebiet der Quantendatenverarbeitung wird klar sein, dass Z-, S-, S†-, CZ-, T- und T-Gatter diagonal unitäre Gatter sind, was bedeutet, dass ihre Dirac-Matrixdarstellungen diagonal sind, wobei die nicht-diagonalen Angaben Null sind. Die Tensordarstellungen von diagonal unitären Gattern müssen andererseits nur diese diagonalen Angaben wiedergeben, wie in 4B gezeigt.
  • 5 ist ein Ausführungsplan 500, der einer großen Quantenschaltung entspricht, von der üblicherweise angenommen wird, dass es unmöglich ist, sie auf derzeit verfügbaren Datenverarbeitungssystemen zu simulieren. Wie dargestellt, enthält der Ausführungsplan 500 eine Anzahl von Kacheln 510 mit Gattersymbolen 520, die darin enthalten sind. Jede Kachel 510 entspricht einer Stufe oder einem Zeitschritt, und die Gattersymbole 520 geben die Funktion (Transformation) an, die an einem oder mehreren Qubits während der angegebenen Stufe bzw. des Zeitschritts ausgeführt wurde. In der dargestellten Ausführungsform wird der Ausführungsplan 500 Zeile für Zeile von oben nach unten und Kachel für Kachel von links nach rechts innerhalb jeder Zeile ausgeführt. Dem Fachmann wird klar sein, dass jede Kachel einem 7x7-Array von Qubits entspricht, und dass 249 Arbeitsspeicherwerte erforderlich sind, um alle möglichen Zustände von 49 Qubits darzustellen. Wenn daher zwei 8-Byte-Gleitkommawerte zum Speichern von (komplexen) Qubit-Zustandsinformationen verwendet werden, sind 253 Bytes (8 Petabyte) Arbeitsspeicher erforderlich, um eine Simulation des dargestellten Ausführungsplans unter Verwendung von herkömmlichen Simulationstechniken zu garantieren.
  • 6 ist eine schematische Darstellung und eine entsprechende Beschreibung auf Textgrundlage einer Quantenschaltung 650, die hierin als ein Verarbeitungsbeispiel gemäß mindestens einer Ausführungsform der vorliegenden Erfindung verwendet wird. Die in der Quantenschaltung 650 angegebenen Quantengatter enthalten ein Hadamard-Gatter 660, ein X-Pauli-Gatter 670A, ein Y-Pauli-Gatter 670B, ein Z-Pauli-Gatter 670C und ein CNOT-Gatter 680. Die dargestellte Beschreibung auf Textgrundlage entspricht der OpenQASM-Spezifikation und gibt an, welche Gatter spezifische Qubits bedienen. Für die angegebenen Funktionen und Gatter wird angenommen, dass sie sich in einer Phasen-/Zeitschritt-Reihenfolge befinden. Demzufolge ist die dargestellte Beschreibung auf Textgrundlage äußerst kompakt.
  • 7 ist ein Ablaufplan, der ein Beispiel eines Simulationsverfahrens für eine Quantenschaltung 700 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Wie dargestellt, enthält das Simulationsverfahren für eine Quantenschaltung 700 ein Empfangen (710) einer digitalen Beschreibung einer Quantenschaltung, ein Ausführen (720) von Optimierungen vor einer Partitionierung, ein Partitionieren (730) der Quantenschaltung in Teilschaltungen, ein Bestimmen (740) einer Ausführungsreihenfolge und ein Ausführen (750) der Quantenschaltung. Das Simulationsverfahren für eine Quantenschaltung 700 kann durch einen Computer ausgeführt werden, wie beispielsweise einen Computer 1500, der in 15 dargestellt ist, und ermöglicht die Simulation von Quantenschaltungen auf einem oder mehreren herkömmlichen Computern und zugehörigen Speichereinheiten.
  • Das Empfangen (710) einer digitalen Beschreibung einer Quantenschaltung kann ein Empfangen einer auf Text beruhenden oder binären Beschreibung der Quantenschaltung enthalten. Die Beschreibung kann die in der Schaltung enthaltenen Quantengatter und die Abhängigkeiten zwischen Gattern angeben. In einer Ausführungsform entspricht die digitale Beschreibung der OpenQASM-Spezifikation.
  • Das Ausführen (720) von Optimierungen vor einer Partitionierung kann ein Ausführen von Gatterersetzungen (z.B. Schaltungsumschreibung) enthalten, die die Ressourcen verringern, die zum Ausführen der Quantenschaltung erforderlich sind. Die Schaltungsumschreibungen können auch ein Ausführen von Gatterersetzungen in Endstufen einer Quantenschaltung enthalten, die nicht diagonal unitäre Gatter durch Ketten von diagonal unitären Gattern ersetzen, die von dem Ende einer Schaltung für einige Qubits nach innen führen. Derartige Schaltungsumschreibungen ermöglichen, dass eine Tensoraufteilung früher in einer Schaltung ausgeführt werden kann, um Arbeitsspeicheranforderungen noch weiter als ohne derartige Umschreibungen zu verringern. Schaltungsumschreibungen können auch Gatterersetzungen enthalten, die Multi-Qubit-Gatter auf spätere Stufen einer Schaltung verschieben. Derartige Schaltungsumschreibungen können das Ansteigen von Arbeitsspeicheranforderungen auf einen späteren Zeitpunkt in einer Schaltung aufschieben und können die Möglichkeit für eine zusätzliche Tensoraufteilung verbessern, die angewendet werden soll, um die Arbeitsspeicheranforderungen noch weiter zu verringern, die zum Simulieren von Quantenschaltungen benötigt werden.
  • Das Partitionieren (730) der Quantenschaltung in Teilschaltungen kann ein Schätzen der Ressourcenkosten für eine Anzahl von möglichen Partitionen (heuristisch oder erschöpfend) und ein Auswählen der Partitionierung mit den geringsten Ressourcenkosten enthalten. In einigen Ausführungsformen wird das Schätzen und Auswählen rekursiv ausgeführt. In bestimmen Ausführungsformen wird jedes Eingangs-Qubit einer separaten Teilschaltung zugewiesen, und die Teilschaltungen stehen in Wettstreit miteinander, um Gatter von nachfolgenden Stufen in Anspruch zu nehmen, mit denen sie verbunden sind. In einigen Ausführungsformen wird eine grafische Darstellung einer Gatterabhängigkeit verwendet, um (zumindest anfänglich) die Quantenschaltung in Einzel-Qubit- und Mehrfach-Qubit-Teilschaltungen zu partitionieren.
  • Das Bestimmen (740) einer Ausführungsreihenfolge kann ein Verwenden von Abhängigkeitsinformationen enthalten, um eine Ausführungsreihenfolge für die Teilschaltungen zu bestimmen. In einigen Ausführungsformen wird die Ausführungsreihenfolge durch ein Erstellen eines Ausführungsplans, ähnlich wie in 5, und ein Vergleichen der Stufe oder des Zeitschritts des ersten Gatters in jeder der Teilschaltungen bestimmt.
  • Das Ausführen (750) der Quantenschaltung kann ein Ausführen jeder Teilschaltung gemäß der Ausführungsreihenfolge enthalten. In einigen Ausführungsformen werden mehrere Prozessoren verwendet, und jeder verfügbare Prozessor fordert eine nächste, nicht ausgeführte Teilschaltung von einem Ausführungs-Controller an. In anderen Ausführungsformen wird ein Prozess für jede Teilschaltung erzeugt, und die Prioritätsebene der Prozesse wird in umgekehrter Ausführungsreihenfolge zugewiesen, sodass Teilschaltungen einer früheren Stufe eine höhere Prioritätsebene zugewiesen wird. In einigen Ausführungsformen werden Simulationen von Teilschaltungen auf eine parallele verteilte Weise über mehrere Prozessoren ausgeführt, zum Beispiel unter Verwendung von Hochleistungs-Datenverarbeitungstechniken. In einigen Ausführungsformen werden Simulationsberechnungen auf Grafikverarbeitungseinheiten ausgeführt.
  • 8A bis 8C sind Abbildungen mit Text, die Tensorgleichungen und Ressourcenkosten darstellen, die einem Simulieren von verschiedenen Quantengattern zugehörig sind, die in 4 und 5 dargestellt werden. Wie gezeigt, hängen die Ressourcenkosten, die einem Aktualisieren von Qubits gemäß den dargestellten Tensorgleichungen zugehörig sind, von der bestimmten Funktion sowie von der Anzahl von Qubits ab, die zum Beibehalten von Zustandsinformationen in einem Quantensystem verwendet werden. Zum Beispiel sind für ein Hadamard-Gatter, das auf zwei Qubits in einem Quantensystem von n Qubits angewendet wird, 2(+1) komplexe Multiplikationen, 2 komplexe Additionen und 2(+4) Byte Arbeitsspeicher erforderlich. Im Gegensatz dazu ist für ein gesteuertes Z-Gatter dieselbe Anzahl von Bytes von Arbeitsspeicher erforderlich, aber es erfordert nur die halbe Anzahl von komplexen Multiplikationen und null komplexe Additionen. Dieselbe Eigenschaft gilt für alle diagonal unitären Gatter, einschließlich Z-, S-, S-, CZ-, T- und T-Gatter. Weitere Verringerungen der Anzahl von Operationen pro Gatter lassen sich durch ein Umsetzen von speziellem Code für jedes Gatter erzielen, um die Tatsache auszunutzen, dass eine Multiplikation mit null oder mit eins vermieden werden kann, und dass eine Multiplikation mit -1 nur eine Vorzeichenänderung ist. In ähnlicher Weise erfordert eine Multiplikation einer komplexen Zahl mit einem rein realen oder rein imaginären Koeffizienten nur zwei Gleitkomma-Multiplikationen statt der üblichen vier Multiplikationen und zwei Additionen. In einigen Ausführungsformen nutzt die vorliegende Erfindung eine Kenntnis von Ressourcenkosten, um Optionen in dem Simulationsprozess der Quantenschaltung zu vergleichen.
  • 9A bis 9E sind schematische und grafische Darstellungen von Gleichungen, die die Auswirkung eines Partitionierens auf die Datenverarbeitungsressourcen darstellen, die zum Simulieren eines bestimmten Beispiels einer Quantenschaltung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung benötigt werden.
  • 9A stellt eine abschnittsweise Aufteilung einer Schaltung dar, die ein herkömmliches Verfahren zum Simulieren von Quantenschaltungen wiedergibt, in denen eine Datenstruktur, die den Quantenzustand aller Qubits in der Schaltung enthält, erstmals erstellt und initialisiert wird, und diese Datenstruktur wird anschließend durch Simulieren der Auswirkungen jedes Gatters aktualisiert, das in Eingang-zu-Ausgang-Reihenfolge ausgeführt wird. Dieses herkömmliche Verfahren entspricht einer Schaltungspartitionierung, in der die anfänglichen Zustände der Qubits zusammen in einer Teilschaltung platziert werden, und die Gatter zusammen in einer zweiten Teilschaltung wie veranschaulicht platziert werden. Die in 9A dargestellten Gleichungen geben die Berechnungen wieder, die unter Verwendung dieses Ansatzes ausgeführt werden. Ein anfänglicher Zustandstensor ϕ wird erstmalig erstellt und initialisiert, wobei die Initialisierung den Kronecker-Delta-Tensor verwendet, δ i = { 1 i = 0 0 i 0
    Figure DE112017007826T5_0001
    der derjenige Tensor ist, der dem Dirac-Quantengrundzustand |0〉 entspricht: | 0 = [ 1 0 ] .
    Figure DE112017007826T5_0002
  • Anschließend wird ein Endzustandstensor ψ aus dem anfänglichen Zustandstensor ϕ durch Anwenden der in 8 gezeigten Gleichungen in Eingang-zu-Ausgang-Reihenfolge berechnet.
  • 9B stellt ein etwas komplexeres Format einer im Stand der Technik bekannten Schaltungspartitionierung dar, in der die Qubits q[0] und q[1] unabhängig voneinander in dem Ausmaß simuliert werden, das möglich ist, bis ein Multi-Qubit-Gatter auftritt, das auf beide Qubits angewendet werden muss. Der herkömmliche Ansatz in einer derartigen Situation besteht dann darin, die Ergebnisse der unabhängigen Simulationen von q[0] und q[1] zu kombinieren und die übrigen Gatter schließlich auf den sich daraus ergebenden kombinierten Zustand anzuwenden, um den endgültigen Quantenzustand zu erhalten. Die in 9B dargestellten Gleichungen entsprechen genau diesem Simulationsansatz.
  • 9C, 9D und 9E veranschaulichen eine erfinderische Erkenntnis der vorliegenden Erfindung, die darin besteht, dass durch ein Verwenden von Tensordarstellungen von Quantengattern die Gesetze der Algebra es ermöglichen, Gruppen von Gattern willkürlich in Teilschaltungen zu partitionieren, jede Teilschaltung zu simulieren und ihre Ergebnisse zu kombinieren, um mathematisch identische Berechnungen von endgültigen Schaltungs-Quantenzuständen zu erzeugen. 9C und 9D veranschaulichen zwei Partitionierungen, in denen die Auswirkungen von Gattern auf die Qubits q[0] und q[1] zuerst unabhängig voneinander simuliert werden, und ihre Ergebnisse anschließend kombiniert werden. In 9C wird die Simulation des CNOT-Gatters - das auf beide Qubits angewendet wird und das sie dadurch verschränkt - der obersten Teilschaltung zugewiesen, die der Simulation von Qubit q[0] entspricht, während in 9D das CNOT-Gatter der untersten Teilschaltung zugewiesen wird.
  • Bisher bestand das herkömmliche Wissen auf dem Gebiet der Quantenschaltungs-Simulation darin, dass, sobald Qubits nach der Anwendung eines Multi-Qubit-Gatters verschränkt werden, die verschränkten Qubits zusammen simuliert werden müssen. Anders ausgedrückt besagt herkömmliches Wissen, dass zwei Teilschaltungen nicht unabhängig voneinander simuliert werden können, wenn diese Teilschaltungen Gatter enthalten, die auf dasselbe Qubit angewendet werden, insbesondere, wenn sich diese beiden Teilschaltungen zeitlich in ihren Ausführungsplänen überlappen (d.h. wenn die beiden Teilschaltungen sich überlappende Ausführungsstufen haben), was bedeutet, dass alle Gatter in einer Teilschaltung allen Gattern in der anderen Teilschaltung nicht genau vorausgehen oder genau auf diese folgen, sondern dass sich die Abfolge der Gatter der beiden Teilschaltungen stattdessen in der Schaltung als Ganzem überlappt. Dennoch veranschaulichen 9C und 9D das Gegenteil - die in 9C und 9D gezeigten Gleichungen erzeugen mathematisch identische Ergebnisse in Bezug aufeinander und in Bezug auf die in 9A und 9B gezeigten Gleichungen, trotz der offensichtlichen Missachtung des herkömmlichen Wissens.
  • Die dadurch ermöglichte Erkenntnis, dass es möglich ist, Simulationen auf diese Weise auszuführen, ist das Konzept eines verschränkten Index, wie in 9D veranschaulicht. Ein verschränkter Index ist ein Tensorindex (z.B. eine Variable), der von Gattertensoren in zwei verschiedenen Teilschaltungen gemeinsam genutzt wird. In 9D sind b und c verschränkte Indices. In 9C sind e und f verschränkte Indices. Diese verschränkten Indices stellen die mathematische Buchführung bereit, die benötigt wird, um zu ermöglichen, dass Teilschaltungen, die Gatter enthalten, die auf dasselbe Qubit angewendet werden, unabhängig voneinander simuliert werden können und ihre Ergebnisse in mathematisch korrekter Weise kombiniert werden können.
  • Grundsätzlich können Gatter in einer Quantenschaltung unter Verwendung dieser Erkenntnis willkürlich partitioniert werden, wie in 9E veranschaulicht wird. In bevorzugten Ausführungsformen der vorliegenden Erfindung werden Teilschaltungen jedoch mit dem Ziel erstellt, Nettoverringerungen der Ressourcenkosten für die gesamten Simulationen zu erzielen.
  • 10 ist ein Ablaufplan, der ein Beispiel eines Partitionierungsverfahrens für eine Quantenschaltung 1000 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Wie dargestellt, enthält das Partitionierungsverfahren für die Quantenschaltung 1000 ein Erstellen (1010) einer Teilschaltung für jedes anfängliche Stufen-Qubit, ein Hinzufügen (1020) von Gattern anschließender Stufen zu Teilschaltungen, ein Bestimmen (1030), ob alle Gatter zugewiesen worden sind, ein Bestimmen (1040) einer Ausführungsreihenfolge, ein Auswählen (1050) eines brückebildenden Gatters, ein Bestimmen (1060), ob die überbrückten Teilschaltungen verschränkt werden sollen, und ein Schließen (1070) der überbrückten Teilschaltungen oder ein Hinzufügen des brückebildenden Gatters zu einer der verschränkten Teilschaltungen. Das Partitionierungsverfahren für die Quantenschaltung 1000 ist ein Beispiel für mindestens die Partitionierungsoperation 730, die in 7 gezeigt ist, und kann durch einen Computer ausgeführt werden, wie zum Beispiel einen in 15 dargestellten Computer 1500. Das Partitionierungsverfahren für die Quantenschaltung 1000 ermöglicht ein Partitionieren einer Quantenschaltung auf eine Weise, auf die die Ressourcen verringert oder minimiert werden können, die zum Simulieren der Quantenschaltung unter Verwendung eines herkömmlichen Computers und des dazugehörigen Speichers erforderlich sind.
  • Das Erstellen (1010) einer Teilschaltung für jedes anfängliche Stufen-Qubit kann ein Bestimmen der Anzahl von Qubits (zumindest anfänglich) enthalten, die für eine Quantenschaltung erforderlich sind, und ein Initialisieren einer Datenstruktur zum Definieren einer Teilschaltung für jedes der Qubits, die für die Quantenschaltung erforderlich sind. Das Hinzufügen (1020) von anschließenden Stufengattern zu Teilschaltungen kann ein Hinzufügen von nicht zugewiesenen nächsten Stufengattern, für die nur eine Eingabe von derzeit der Teilschaltung zugewiesenen Qubits erforderlich ist, zu jeder Teilschaltung enthalten. Dieser Hinzufügungsschritt kann auch ein Bestimmen enthalten, ob alle übrigen nicht zugewiesenen Gatter für ein Qubit, das einer Teilschaltung zugewiesen ist, diagonal unitäre Gatter sind, und falls dies der Fall ist, ein Schließen dieser Teilschaltung, ein Erstellen einer neuen Teilschaltung mit denselben zugewiesenen Qubits wie die der geschlossenen Teilschaltung, und ein Kennzeichnen dieser neuen Teilschaltung als zum Zweck eines Aufteilens des bzw. der zugewiesenen Qubits erstellt, für die alle übrigen nicht zugewiesenen Gatter diagonal unitäre Gatter sind. Das Schließen einer Teilschaltung kann ein Kennzeichnen der Teilschaltung als vollständig enthalten, um das Hinzufügen weiterer Gatter zu der Teilschaltung zu verhindern.
  • Das Bestimmen (1030), ob alle Gatter zugewiesen worden sind, kann ein Bestimmen enthalten, ob eine Anzahl nicht zugewiesener Gatter oder ein anderer Indikator angibt, dass alle Gatter einer Teilschaltung zugewiesen worden sind. Das Bestimmen (1040) einer Ausführungsreihenfolge kann ein Ausführen der bestimmenden Operation 740 enthalten, die in Verbindung mit 7 beschrieben wurde.
  • Das Auswählen (1050) eines brückebildenden Gatters kann ein Auswählen eines nicht zugewiesenen nächsten Stufengatters enthalten, das eine Eingabe von mindestens einem Qubit erfordert, das derzeit einer Teilschaltung zugewiesen ist, sowie von einem oder mehreren Qubits, die der Teilschaltung derzeit nicht zugewiesen sind. Mit anderen Worten ist ein brückebildendes Gatter ein Gatter, das eine Eingabe von mehreren Teilschaltungen wie derzeit erstellt erfordert.
  • Das Bestimmen (1060), ob die überbrückten Teilschaltungen verschränkt werden sollen, kann ein Schätzen der Ressourcenkosten von alternativen Szenarios enthalten, in denen eine Entscheidung getroffen wird, die überbrückten Teilschaltungen zu verschränken bzw. nicht zu verschränken, wobei die jeder Entscheidung zugehörigen Ressourcenkosten verglichen werden und anschließend die Alternative mit den niedrigsten Kosten gewählt wird.
  • Das Schließen (1070) der überbrückten Teilschaltungen kann ein Kennzeichnen der Teilschaltungen als vollständig enthalten, um das Hinzufügen weiterer Gatter zu den überbrückten Teilschaltungen zu verhindern. Das Zuweisen (1070) des brückebildenden Gatters zu einer neuen Teilschaltung kann ein Erstellen einer neuen Teilschaltung, ein Zuweisen der Qubits der überbrückten Teilschaltungen, die für diese neue Teilschaltung geschlossen wurden, und ein anschließendes Zuweisen des brückebildenden Gatters zu dieser neuen Teilschaltung enthalten.
  • Das Hinzufügen (1080) des brückebildenden Gatters zu einer der verschränkten Teilschaltungen kann ein Hinzufügen des brückebildenden Gatters zu einer Liste von Gattern enthalten, die in der Teilschaltung enthalten sind. Dieser Hinzufügungsschritt kann auch ein erstes Ersetzen des brückebildenden Gatters durch eine entsprechende Kombination von Gattern enthalten, in denen das neue brückebildende Gatter diagonal unitär wird. Ein Beispiel dafür ist die Ersetzung eines CNOT-Gatters durch eine Kombination aus einem CZ-Gatter und Hadamard-Gattern, wie in 12B veranschaulicht, um das in 12A gezeigte CNOT-Gatter mit dieser entsprechenden Gatterkombination zu ersetzen, wie in 12D gezeigt. Wenn ein derartiger Austausch vorgenommen wird, wird das neue brückebildende Gatter einer der überbrückten Teilschaltungen zugewiesen, und alle Einzel-Qubit-Gatter, die in dieser Umschreibung eingeführt worden sein könnten, werden Teilschaltungen gemäß den Qubits zugewiesen, die diesen Teilschaltungen zugewiesen sind. Zum Beispiel werden in dem speziellen Fall eines Ersetzens eines CNOT-Gatters durch ein CZ-Gatter die Hadamard-Gatter, die eingeführt wurden, der Teilschaltung zugewiesen, der das entsprechende Qubit zugewiesen ist, um die Regeln für ein Hinzufügen von anschließenden Stufengattern zu Teilschaltungen einzuhalten, die oben im Zusammenhang mit Schritt 1020 beschrieben wurden. Das CZ-Gatter kann andererseits irgendeinem der verschränkten Teilschaltungen zugewiesen werden.
  • 11A ist ein Ablaufplan, der ein Beispiel eines Ausführungsverfahrens für eine Quantenschaltung 1100 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Wie dargestellt, enthält das Ausführungsverfahren für die Quantenschaltung 1100 ein Empfangen (1110) einer geordneten Gruppe von Quantenteilschaltungen, ein Zuweisen (1120) von verschiedenen Indexvariablen, ein Verbreiten (1130) der Indexvariablen, ein Ausführen (1140) jeder Quantenteilschaltung. Das Ausführungsverfahren für die Quantenschaltung 1100 ermöglicht eine Ausführung einer Quantenschaltung, die in Teilschaltungen partitioniert ist. Das Ausführungsverfahren für die Quantenschaltung 1100 kann durch einen Computer ausgeführt werden, wie beispielsweise einen Computer 1500, der in 15 dargestellt ist.
  • Das Empfangen (1100) einer geordneten Gruppe von Quantenteilschaltungen kann ein Empfangen einer geordneten Liste von Zeigern auf ein Objekt oder eine Datenstruktur enthalten, das bzw. die jede Quantenteilschaltung einschließlich der darin enthaltenden Gatter definiert. In einer Ausführungsform ist die Definition für jede Quantenteilschaltung im Wesentlichen ein Teilschaltungsausführungsplan ähnlich dem in 5 gezeigten Ausführungsplan. Das Zuweisen (1120) von verschiedenen Indexvariablen kann ein Zuweisen einer verschiedenen Indexvariablen zu einer Anfangsstufe jedes Qubits und zu dem Ausgang jedes nicht diagonal unitären Gatters enthalten.
  • Das Verbreiten (1130) der Indexvariablen kann ein wiederholtes Verbreiten von Eingabe zu Ausgang der Indexvariablen für jedes diagonal unitäre Gatter sein. Das Ausführen (1140) jeder Quantenteilschaltung kann ein Ausführen jeder Quantenteilschaltung und ein Kombinieren der generierten Ergebnisse in der angegebenen Reihenfolge enthalten.
  • 11B ist ein Ablaufplan, der eine mögliche Ausführungsform der Ausführungsoperation 1140 darstellt, die in 11A dargestellt wird. Wie dargestellt, kann eine Ausführungsform des Ausführens (1140) von Teilschaltungen und des Kombinierens von Ergebnissen ein Erstellen (1150) von Produkten von Tensoren und ein Ausführen (1160) von Summierungen enthalten.
  • Das Erstellen (1150) von Produkten von Tensoren kann ein Identifizieren der Gatter, die zu Teilschaltungen gehören, zusammen mit den Indexvariablen, die diesen Gattern in Schritt 1120 und 1130 zugewiesen worden sind, ein Zuweisen dieser Indexvariablen als tiefgestellte Zeichen zu den entsprechenden Tensoren für die Gatter in Teilschaltungen, und ein Zusammenstellen der Tensoren für Teilschaltungen in Produkten enthalten, die in Eingang-zu-Ausgang-Reihenfolge angeordnet sind. Das Erstellen (1150) von Produkten von Tensoren auch kann ein Zusammenstellen von Tensoren, die den Simulationsergebnissen von Teilschaltungen entsprechen, in Produkte von Tensoren gemäß Ausführungsreihenfolgen enthalten, die durch die bestimmende Operation 740 erreicht wurden, die in Verbindung mit 7 beschrieben wird, und/oder die bestimmende Operation 1040, die in Verbindung mit 10 beschrieben wird.
  • Das Ausführen (1160) von Summierungen kann ein Berechnen von Produkten von Tensoren für Teilschaltungen in der Eingang-zu-Ausgang-Reihenfolge, die in der oben beschriebenen erstellenden Operation 1150 bestimmt wurde, und das Ausführen von Summierungen über Indexvariablen enthalten, die sich in diesen Teilschaltungen befinden, wie sie in der bestimmten Eingang-zu-Ausgang-Reihenfolge vorliegen. Das Ausführen (1160) von Summierungen über Indexvariablen, die sich in einer Schaltung als Ganzem befinden, kann ein Ausführen von Summierungen über derartige Indexvariablen enthalten, wenn Produkte von Tensoren berechnet werden, die in der oben beschriebenen erstellenden Operation 1150 bestimmt wurden, um Simulationsergebnisse von Teilschaltungen zu kombinieren. In Fällen, in denen keine Gatter übrig sind, die in einer Schaltung für ein Qubit zu simulieren sind, oder in denen alle übrigen Gatter für dieses Qubit diagonal unitäre Gatter sind, kann diesem Kombinieren von Simulationsergebnissen von Teilschaltungen die Einführung von For-Schleifen vorausgehen, die über die möglichen Werte von einem oder mehreren derartigen Qubits eine Schleife bilden. Anschließende Tensorprodukte und ihre Summierungen können dann für Anteile von betreffenden Tensoren berechnet werden, um die Arbeitsspeicheranforderungen von anschließenden Berechnungen zu verringern.
  • 12A bis 12C sind schematische Darstellungen, die ein Beispiel einer Optimierung eines bestimmten Beispiels einer Quantenschaltung darstellen. In einigen Ausführungsformen können Gatterersetzungen (auch als Schaltungsumschreibung bekannt) an verschiedenen Punkten in den hierin offenbarten Verfahren ausgeführt werden. Zum Beispiel kann eine Schaltungsumschreibung, wie die in 12B gezeigte Umschreibung, in Verbindung mit Schritt 720 des in 7 gezeigten Verfahrens 700 oder beim Ausführen von Schritt 1080 des in 10 gezeigten Verfahrens 1000 ausgeführt werden. Insbesondere können ein Ersetzen eines brückebildenden CNOT-Gatters durch eine entsprechende Konfiguration eines CZ-Gatters und Hadamard-Gattern die Anzahl von verschränkten Indizes verringern, die eingeführt werden, wenn die entsprechenden Teilschaltungen verschränkt sind, was wiederum die Auswirkung hat, dass die Menge an Arbeitsspeicher verringert wird, die zum Simulieren der sich daraus ergebenden verschränkten Teilschaltungen erforderlich ist.
  • Unter erneuter Bezugnahme auf Schritt 1140 von 11A und deren mögliche Ausführungsformen, wie in 11B veranschaulicht, wird dem Fachmann klar sein, dass in mindestens einer Ausführungsform der vorliegenden Erfindung Teilschaltungen effizient in Eingang-zu-Ausgang-Reihenfolge simuliert werden können, beginnend mit den anfänglichen Teilschaltungen, die aus den Anfangszuständen der einzelnen Qubits erstellt wurden. Bei einem derartigen Ansatz würden anschließende Teilschaltungen erst simuliert, wenn die vorhergehenden Teilschaltungen, von denen sie als Eingabe abhängen, simuliert worden sind. Die Simulationsergebnisse für jede Teilschaltung können n-dimensionalen Tensoren entsprechen, die in einem Computer-Arbeitsspeicher als n-dimensionale Arrays dargestellt werden können. Dem Fachmann wird klar sein, dass andere Datenstrukturen, wie zum Beispiel lineare Arrays, die entsprechende Darstellungen bereitstellen, ebenfalls verwendet werden können.
  • In einer Ausführungsform können die in diesen Datenstrukturen gespeicherten Werte komplexe Gleitkommazahlen mit doppelter Präzision sein, die jeweils 16 Byte an Speicher erfordern. Der Speicherbedarf eines n-dimensionalen Tensors/Arrays würde also 2(n+4) Byte erfordern, um alle 2n Werte in dem Tensor/Array zu speichern.
  • Die anfänglichen Teilschaltungen, die aus den Anfangszuständen der einzelnen Qubits erstellt wurden, können eindimensionale Tensoren/Arrays sein, die mit einem Wert von eins in der Null-Position und einem Wert von null in der Eins-Position initialisiert werden. Diese Initialisierung entspricht dem Kronecker-Delta-Tensor, δ i = { 1 i = 0 0 i 0
    Figure DE112017007826T5_0003
    der wiederum dem Quantengrundzustand |0〉 entspricht: | 0 = [ 1 0 ] .
    Figure DE112017007826T5_0004
  • Für anschließende Teilschaltungen, die von nur einer vorhergehenden Eingabe-Teilschaltung abhängen, können die Simulationsergebnis-Arrays unter Verwendung der Simulationsergebnisse der vorhergehenden Eingangs-Teilschaltung initialisiert werden. Im Allgemeinen, wenn der Tensor/das Array des Simulationsergebnisses einer vorhergehenden Eingangs-Teilschaltung eine Dimension n hat, und wenn s neue Qubits für ein Aufteilen für die entsprechende anschließende Teilschaltung identifiziert worden sind, die in der Simulation der vorhergehenden Eingangs-Teilschaltung nicht bereits aufgeteilt worden sind, kann die Simulation dieser anschließenden Teilschaltung ein Einführen von For-Schleifen für eine Schleifenbildung über die möglichen Werte der s neuen Qubits, die zum Aufteilen (sofern erforderlich) identifiziert wurden, ein Erstellen eines n-s-dimensionalen Tensors/Arrays (oder einer anderen geeigneten Datenstruktur zum Aufnehmen der Simulationsergebnisse für die anschließende Teilschaltung) und danach ein Initialisieren dieses n-s-dimensionalen Tensors/Arrays umfassen, indem entsprechende Werte aus den Simulationsergebnissen für die vorhergehende Eingangs-Teilschaltung für den Anteil kopiert werden, der durch die Werte der For-Schleifenvariablen (sofern vorhanden) identifiziert wird. Simulationsberechnungen für die betreffende aktuelle anschließende Teilschaltung können dann innerhalb dieser For-Schleifen stattfinden, ebenso wie die Simulationsberechnungen aller nachgeordneten Teilschaltungen, die noch nicht simuliert worden sind, da diese aufteilenden For-Schleifen ebenso auf diese nachgeordneten Teilschaltungen anwendbar sind.
  • Für anschließende Teilschaltungen, die von zwei vorhergehenden Eingangs-Teilschaltungen abhängen, wird die anfängliche Anzahl von Dimensionen für die Simulationsergebnisse einer derartigen anschließenden Teilschaltung durch n+m-g-s angegeben, wobei n und m jeweils die Anzahl von Dimensionen in den Simulationsergebnissen der vorhergehenden zwei Eingangs-Teilschaltungen sind, g die Anzahl von verschränkten Indizes ist, die von diesen beiden Teilschaltungen gemeinsam genutzt werden, die auf dieser Stufe der Verarbeitung aufsummiert werden können, und s die Anzahl von neuen Qubits ist, die für ein Aufteilen dieser anschließenden Teilschaltung identifiziert werden, die noch nicht in den Simulationen von einer der vorhergehenden Eingangs-Teilschaltungen aufgeteilt worden sind. Die Simulation dieser anschließenden Teilschaltung kann ein Einführen von For-Schleifen für eine Schleifenbildung über die möglichen Werte der s neuen Qubits, die für ein Aufteilen (sofern vorhanden) identifiziert wurden, ein Erstellen eines n+m-g-s-dimensionalen Arrays oder einer anderen geeigneten Datenstruktur zum Aufnehmen der Simulationsergebnisse für die anschließende Teilschaltung, und danach ein Initialisieren dieses n+m-g-s-dimensionalen Arrays durch ein Ausführen einer Tensormultiplikation der Simulationsergebnisse der zwei vorhergehenden Eingangs-Teilschaltungen für die Anteile, die durch die Werte der For-Schleifenvariablen (sofern vorhanden) und ein Aufsummieren der verschränkten Indizes (sofern vorhanden) identifiziert werden, umfassen, die von diesen beiden Teilschaltungen gemeinsam genutzt werden, die auf dieser Stufe der Verarbeitung aufsummiert werden können
  • Wenn die Simulationsergebnisse von vorhergehenden Eingangs-Teilschaltungen auf diese Weise zum Initialisieren der Simulation einer anschließenden Teilschaltung kombiniert werden, sind die gemeinsam genutzten verschränkten Indizes, die aufsummiert werden können, diejenigen, für die die Simulationsergebnisse von allen Teilschaltungen, die ursprünglich verschränkt waren, um die verschränkten Indizes zu erstellen, die ihren Weg entweder direkt oder indirekt in diese abschließende kombinierende Operation finden, und diese Indizes erscheinen nicht als Ausgangs-Indizes für irgendeine dieser vorhergehenden Eingangs-Teilschaltungen. Der erste Teil dieser Anforderung gibt das Algebra-Distributivgesetz wieder: zum Aufsummieren einer Indexvariablen müssen alle Ausdrücke, die diese Indexvariable als tiefgestelltes Zeichen enthalten, in der Summierung erscheinen. Der zweite Teil dieser Anforderung gibt die Bedingungen wieder, unter denen eine Indexvariable für eine Quantenschaltung summiert werden kann: die Variable muss bis zum aktuellen Punkt der Simulation vollständig in der Schaltung liegen, sie darf keinem Ausgang zugehörig sein. Für gewöhnlich, wenn eine Schaltung Mehrfach-Qubit-Gatter für nur zwei Qubits enthält, wird der erste Teil der obigen Anforderungen erfüllt, wenn die Simulationsergebnisse von zwei kombinierten Teilschaltungen einen gemeinsamen verschränkten Index gemeinsam nutzen. Wenn eine Schaltung jedoch drei Qubit-Gatter oder mehr enthält, muss diese erste Bedingung ausdrücklich geprüft werden.
  • Der Fall, in dem die Simulationsergebnisse von mehr als zwei vorhergehenden Eingangs-Teilschaltungen als Eingabe in eine anschließende Teilschaltung kombiniert werden müssen, kann nur eintreten, wenn der im Ablaufplan 1000 veranschaulichte Prozess für Quantenschaltungen angewendet wird, die Mehrfach-Qubit-Gatter für drei oder mehr Qubits enthalten. Die Simulationsschritte für diese Fälle können derselben Struktur folgen wie in dem oben erläuterten Fall mit zwei Teilschaltungen, einschließlich der oben genannten Bedingungen zum Entscheiden, welche gemeinsam genutzten Verschränkungsindizes aufsummiert werden sollen. Im Allgemeinen kann es rechnerisch von Vorteil sein, diese Ergebnisse durch wiederholte Anwendung des oben beschriebenen Verfahrens mit zwei Eingängen paarweise zu kombinieren. Als Faustregel gilt, dass das in jedem Schritt zu kombinierende Ergebnispaar das Paar sein sollte, das als Ergebnis dieses Schritts zu dem Tensor/Array mit der niedrigsten Dimension führt. Diese Faustregel hilft dabei, die Gesamtanzahl von Gleitkomma-Operationen zu verringern, die ausgeführt werden müssen, um die kombinierten Simulationsergebnisse zu berechnen. Dasselbe Verfahren kann am Ende der Simulation verwendet werden, um Simulationsergebnisse der endgültigen Teilschaltungen zu kombinieren, wenn zwei oder mehr Teilschaltungen übrig sind.
  • Sobald der Tensor/das Array zum Aufnehmen der Simulationsergebnisse einer Teilschaltung initialisiert worden ist, können die endgültigen Simulationsergebnisse für diese Teilschaltung durch Anwenden von Gattern auf den Tensor/das Array in Eingang-zu-Ausgang-Reihenfolge berechnet werden. Für Gatteranwendungen, die nicht zu der Einführung von verschränkten Indizes führen, haben die Gleichungen, die diese Berechnungen definieren, die in 3 bis 5 veranschaulichten Formen, wobei ψ den Wert des Tensors/Arrays des Simulationsergebnisses darstellt, bevor ein Gatter angewendet wird, und ψ' den Wert darstellt, nachdem ein Gatter angewendet worden ist. Die Gleichungen, die in 3 bis 5 gezeigt werden, dienen nur zur Veranschaulichung, und dem Fachmann wird klar sein, dass entsprechende Gleichungen auf offensichtliche Weise für andere, nicht aufgelistete Typen von Quantengattern problemlos erstellt werden können.
  • Gatteranwendungen, die zu der Erstellung von verschränkten Indizes führen, erfordern eine unterschiedliche Bearbeitung dadurch, dass derartige Gatteranwendungen typischerweise die Anzahl von Dimensionen in Tensoren/Arrays der Simulationsergebnisse erhöhen, und dass sich daraus die Notwendigkeit ergibt, dass verfolgt werden muss, welche Dimensionen jetzt den Qubits entsprechen, die einer Teilschaltung zugewiesen sind, im Vergleich dazu, welche Dimensionen verschränkten Indizes entsprechen.
  • Wenn eine Entscheidung getroffen wird, Teilschaltungen im Schritt 1060 in dem in 10 dargestellten Prozess zu verschränken, und anschließend ein brückebildendes Mehrfach-Qubit-Gatter in Schritt 1080 einer der Teilschaltungen zugewiesen wird, muss der Tensor/das Array der Simulationsergebnisse für die Teilschaltung, der das Mehrfach-Qubit-Gatter zugewiesen ist, während der Simulation vergrößert werden, wenn dieses Mehrfach-Qubit-Gatter simuliert wird. Eine Extra-Dimension muss hinzugefügt werden, wenn das Mehrfach-Qubit-Gatter ein diagonal unitäres Zwei-Qubit-Gatter ist, und zwei Extra-Dimensionen müssen in dem Fall eines nicht diagonal unitären Zwei-Qubit-Gatters hinzugefügt werden. Dimensionen müssen in dem Fall von drei oder mehreren Qubit-Gattern entsprechend erhöht werden. Diese Extra-Dimensionen entsprechen verschränkten Indizes.
  • Zum Beispiel werden die Quantenschaltung und die Teilschaltungen betrachtet, die in 13A dargestellt sind. Diese Teilschaltungen können unter Verwendung des in 10 dargestellten Prozesses auf folgende Weise erhalten werden. Nach einem Erstellen von Teilschaltungen für die Qubits q[0] und q[1] in Schritt 1010 kann das H-Gatter links oben in Schritt 1020 der Teilschaltung für q[0] zugewiesen werden, und anschließend lässt sich beobachten, dass alle übrigen Gatter für das Qubit q[0] diagonal unitär sind. Letzteres ermöglicht, dass die Teilschaltung links oben für q[0] geschlossen wird und eine neue Teilschaltung für das Qubit q[0] mit einem Vermerk gestartet wird, dass das Qubit q[0] jetzt aufgeteilt werden kann. In Schritt 1020 können X und H links unten ebenfalls der Teilschaltung für das Qubit q[1] zugewiesen werden. In Schritt 1020 können aktuellen Teilschaltungen wegen des brückebildenden CZ-Gatters keine weiteren Gatter mehr hinzugefügt werden, daher kann der Prozess mit Schritt 1050 fortfahren, um das CZ-Gatter auszuwählen. In Schritt 1060 kann eine Entscheidung getroffen werden, die Teilschaltungen für q[0] und q[1] zu verschränken, und in Schritt 1080 kann das CZ-Gatter der aktuellen Teilschaltung für q[0] zugewiesen werden. Der Prozess kann dann wieder zu Schritt 1020 zurückkehren, wo das Z-Gatter oben links der aktuellen Teilschaltung für q[0] zugewiesen werden kann, und die H- und Y-Gatter unten links können der Teilschaltung für q[1] zugewiesen werden, was zu der Konfiguration von Teilschaltungen führt, die in 13A dargestellt sind.
  • Unter weiterer Fortsetzung mit Schritt 1150 und 1160 in 11B, die eine Ausführungsform des Ausführungsschritts 1140 in 11A darstellt, kann die Simulation der Teilschaltung links oben mit einem Initialisieren des Tensors/Arrays, der bzw. das die Simulationsergebnisse für die Teilschaltung oben links enthält, auf den Kronecker-Delta-Tensor fortfahren, und anschließend das H-Gatter zum Aktualisieren der Simulationsergebnisse anwenden: φ a ' = δ a , φ b ' a H b a φ a '
    Figure DE112017007826T5_0005
  • Die Simulation der Teilschaltung oben rechts kann dann ein Einführen einer aufteilenden For-Schleife für das Qubit q[0] und ein Initialisieren des Tensors/Arrays für die Teilschaltung oben rechts umfassen, sodass sie einem Anteil entspricht von φ b ' :
    Figure DE112017007826T5_0006
    Für x in  { 0,1 }  Ausführung von  {         τ b ' | b = x = φ b ' | b = x         }
    Figure DE112017007826T5_0007
  • Da das CZ-Gatter beim Verschränken mit der untersten Teilschaltung der Teilschaltung oben rechts zugeordnet wurde, kann ein neuer Tensor/ein neues Array mit einer zusätzlichen Dimension zugeordnet werden, um den verschränkten Index e in dem Prozess zum Simulieren des CZ-Gatters aufzunehmen: Für x in  { 0,1 }  Ausführung von  {         τ b ' | b = x = φ b ' | b = x         τ b e ' ' | b = x = C Z b e | b = x   τ b ' | b = x         }
    Figure DE112017007826T5_0008
  • Die Simulation des Z-Gatters kann dann wie üblich ausgeführt werden, um diesen neuen Tensor/das neue Array zu aktualisieren: Für x in  { 0,1 }  Ausführung von  {         τ b ' | b = x = φ b ' | b = x         τ b e ' ' | b = x = C Z b e | b = x   τ b ' | b = x         τ b e ' ' | b = x Z b | b = x   τ b e ' ' | b = x         }
    Figure DE112017007826T5_0009
  • In dem Fall von Teilschaltungen, denen kein Mehrfach-Qubit-Gatter zugewiesen wird, wenn eine Verschränkungsentscheidung getroffen wird, hängt der bzw. hängen die Punkte, an dem bzw. denen Tensoren/Arrays der Simulationsergebnisse vergrößert werden müssen, von der Anzahl von verschränkten Indizes ab, die eingeführt werden und davon, welche von ihnen (sofern zutreffend) sich strikt in einer Teilschaltung und/oder in der Schaltung als einem Ganzem befinden. Jeder verschränkte Index, der sich in einer Teilschaltung befindet, der beim Verschränken kein Mehrfach-Qubit-Gatter zugewiesen wurde, fügt eine Extra-Dimension zu dem Tensor/Array der Simulationsergebnisse für diese Teilschaltung hinzu. Ein verschränkter Index, der sich nicht in einer Teilschaltung befindet, der beim Verschränken kein Mehrfach-Qubit-Gatter zugewiesen wurde, der sich aber in der Schaltung als Ganzem befindet, fügt eine Extra-Dimension zu dem Tensor/Array der Simulationsergebnisse von einer nachgeordneten Teilschaltung hinzu. Der Grund dafür ist, dass alle Indizes, die sich in einer Schaltung befinden, an irgendeinem Punkt in der Simulation aufsummiert werden müssen.
  • Der Zweck eines Einführens von verschränkten Indizes besteht darin, diese Summierungen auf spätere Stufen der Simulation zu verschieben, indem die Dimensionen der Tensoren/Arrays der Simulationsergebnisse vergrößert werden, um die notwendige rechnerische Buchführung auszuführen, damit diese Technik funktioniert, und die Summierungen dann auszuführen, wenn die Simulationsergebnisse von Teilschaltungen kombiniert werden, die verschränkte Indizes gemeinsam nutzen. Es ist daher wichtig, die verschränkten Indizes über eine gesamte Schaltung im Auge zu behalten, um sie richtig zu bearbeiten. Die genauen Punkte, an denen derartige Dimensionsvergrößerungen auftreten, hängen davon ab, ob das beteiligte Mehrfach-Qubit-Gatter diagonal unitär oder nicht diagonal ist.
  • Zum Beispiel können im Fall der in 13A dargestellten untersten Teilschaltung die Simulationsergebnisse auf den Kronecker-Delta-Tensor initialisiert werden, und anschließend können das X-Gatter und das erste H-Gatter wie üblich angewendet werden: ϕ c ' = δ c
    Figure DE112017007826T5_0010
    ϕ d ' c X d c ϕ c '
    Figure DE112017007826T5_0011
    ϕ e ' d H e d ϕ d '
    Figure DE112017007826T5_0012
  • Das CZ-Gatter wird dieser Teilschaltung nicht zugewiesen, sodass die Indexvariable e der verschränkte Index wird, der für die Auswirkung des CZ-Gatters auf diese Teilschaltung verantwortlich ist. Eine Aufsummierung von e kann nicht ausgeführt werden, wenn das zweite H-Gatter angewendet wird, da e ein verschränkter Index ist. Stattdessen kann ein neuer Tensor/ein neues Array mit einer zusätzlichen Dimension zugeordnet werden, um den verschränkten Index e in den Prozess zum Simulieren des zweiten H-Gatters aufzunehmen: ϕ c ' = δ c
    Figure DE112017007826T5_0013
    ϕ d ' c X d c ϕ c '
    Figure DE112017007826T5_0014
    ϕ e ' d X e d ϕ d '
    Figure DE112017007826T5_0015
    ϕ e ' ' = H f e ϕ e '
    Figure DE112017007826T5_0016
  • Die Simulation des Y-Gatters kann dann wie üblich ausgeführt werden, um diesen neuen Tensor/das neue Array zu aktualisieren: ϕ c ' = δ c
    Figure DE112017007826T5_0017
    ϕ d ' c X d c ϕ c '
    Figure DE112017007826T5_0018
    ϕ e ' d H e d ϕ d '
    Figure DE112017007826T5_0019
    ϕ e f ' ' = H f e ϕ e '
    Figure DE112017007826T5_0020
    ϕ e g ' ' f Y g f ϕ e f ' '
    Figure DE112017007826T5_0021
  • Es ist anzumerken, dass für H-Gatter normalerweise Summierungen erforderlich sind, da sie nicht diagonale Gatter sind. Diese Summierung wird letztendlich gemäß den Regeln zum Aufsummieren von verschränkten Indizes ausgeführt, wenn die Simulationsergebnisse von Teilschaltungen kombiniert werden. Die Einführung von verschränkten Indizes ist ein Mechanismus zum Aufschieben dieser Summierungen bis zu späteren Stufen der Simulation.
  • Der verschränkte Index e kann schließlich summiert werden, wenn die Ergebnisse der Teilschaltungen oben rechts und der untersten Teilschaltungen kombiniert werden. Da die Teilschaltung oben rechts in Anteilen simuliert wird, würde der kombinierende Schritt für die endgültigen Simulationsergebnisse ψbg der Schaltung in der aufteilenden For-Schleife für den Tensor rechts oben ausgeführt: Für x in  { 0,1 }  Ausführung von  {         τ b ' | b = x = φ b ' | b = x         τ b e ' ' | b = x = C Z b e | b = x   τ b ' | b = x         τ b e ' ' | b = x Z b | b = x   τ b e ' ' | b = x         ψ b g | b = x = e τ b e ' ' | b = x   ϕ e g ' '         }
    Figure DE112017007826T5_0022
  • 13B veranschaulicht eine alternative Gruppe von Teilschaltungen für dieselbe Schaltung, die in 13A dargestellt ist, wobei das CZ-Gatter in Schritt 1080 in 10 der untersten Teilschaltung statt der Teilschaltung oben rechts zugewiesen wird. In diesem Fall ist jetzt b der verschränkte Index. In der Simulation der untersten Teilschaltung können der ursprüngliche Tensor/das ursprüngliche Array der Simulationsergebnisse initialisiert werden, um eindimensional zu sein und können anschließend vergrößert werden, um zweidimensional zu sein, wenn das CZ-Gatter angewendet wird. ϕ c ' = δ c
    Figure DE112017007826T5_0023
    ϕ d ' c X d c ϕ c '
    Figure DE112017007826T5_0024
    ϕ e ' d H e d ϕ d '
    Figure DE112017007826T5_0025
    ϕ b e ' ' = C Z b e ϕ e '
    Figure DE112017007826T5_0026
    ϕ b f ' ' e H f e ϕ b e ' '
    Figure DE112017007826T5_0027
    ϕ b g ' ' f Y g f ϕ b f ' '
    Figure DE112017007826T5_0028
  • In der Simulation der Teilschaltung oben rechts können der Tensor/das Array der Simulationsergebnisse wie vorher initialisiert werden, um ein Anteil der Ergebnisse der Teilschaltung links oben zu sein, aber diesmal wird die Dimensionalität nicht vergrößert, wenn das Z-Gatter simuliert wird, da der verschränkte Index b bereits ein Index der Simulationsergebnisse ist und Z ein diagonal unitäres Gatter ist, sodass keine Aufsummierung von b ausgeführt werden muss, wenn es angewendet wird. Infolgedessen befindet sich b nicht in der Teilschaltung, sondern ist ein Ausgangs-Index: Für x in  { 0,1 }  Ausführung von  {         τ b ' | b = x = φ b | b = x         τ b ' | b = x Z b | b = x   τ b ' | b = x         }
    Figure DE112017007826T5_0029
  • Es ist anzumerken, wenn die vorgenannten Teilschaltungen Teil einer größeren Schaltung wären, in der ein nicht diagonales Gatter schließlich auf das Qubit q[0] in einer anschließenden Teilschaltung angewendet würde, dass die Dimensionalität des Tensors/Arrays der Simulationsergebnisse für die Teilschaltung oben rechts sich immer noch nicht geändert hätte, aber auch q[0] würde nicht als Teil der Simulation der Teilschaltung oben rechts aufgeteilt. Stattdessen wäre die Vergrößerung der Dimensionalität eines Tensors/Arrays der Simulationsergebnisse zum Aufnehmen der verschränkten Indexvariablen b während der Simulation der anschließenden Teilschaltung aufgetreten, die das nicht diagonale Gatter enthielt, das auf das Qubit q[0] angewendet wird, da b an diesem Punkt zu einem internen Index der Schaltung als einem Ganzem würde und er daher aufsummiert werden müsste.
  • Wie bei den in 13A dargestellten Teilschaltungen würden die Simulationsergebnisse für die in 13B oben rechts und die untersten dargestellten Tensoren in der aufteilenden For-Schleife für den obersten Tensor kombiniert, dieses Mal jedoch, da b sich nicht in der Schaltung als einem Ganzem befindet, würde b nicht aufsummiert, wenn die Ergebnisse kombiniert werden: Für x in  { 0,1 }  Ausführung von  { τ b ' | b = x = φ b | b = x τ b ' | b = x Z b | b = x τ b ' | b = x ψ b g | b = x = τ b ' | b = x ϕ b g ' ' }
    Figure DE112017007826T5_0030
  • Wie vorher erwähnt, führen nicht diagonal unitäre Zwei-Qubit-Gatter zu zwei verschränkten Indizes, wenn eine Entscheidung getroffen wird, zwei Teilschaltungen zu verschränken, die durch ein derartiges Gatter überbrückt werden. Die in 13C gezeigte Schaltung und die Teilschaltungen sind ein Beispiel dafür. Diese Teilschaltungen können erhalten werden, indem gewählt wird, die obersten und untersten Teilschaltungen in Schritt 1060 von 10 zu verschränken und anschließend in Schritt 1080 das CNOT-Gatter der obersten Teilschaltung zuzuweisen, ohne eine Schaltungsumschreibung auszuführen, um das CNOTdurch ein CZ-Gatter und H-Gatter zu ersetzen. Durch ein Zuweisen des CNOT-Gatters zu der obersten Teilschaltung werden e und f zu verschränkten Indizes. Wenn die oberste Teilschaltung simuliert wird, kann ein anfänglicher eindimensionaler Tensor/ein anfängliches eindimensionales Array zum Aufnehmen der Simulationsergebnisse erstellt werden, und ein dreidimensionaler Tensor/ein dreidimensionales Array kann anschließend beim Simulieren des CNOT erstellt werden: τ a ' = δ a
    Figure DE112017007826T5_0031
    τ b ' b H b a τ c '
    Figure DE112017007826T5_0032
    τ c e f ' ' = b C N O T c f   b e τ b '
    Figure DE112017007826T5_0033
    τ c e f ' ' Z c τ c e f ' '
    Figure DE112017007826T5_0034
  • Wenn die unterste Schaltung simuliert wird, kann ein anfänglicher eindimensionaler Tensor/ein anfängliches eindimensionales Array zum Aufnehmen der Simulationsergebnisse erstellt werden, und ein dreidimensionaler Tensor/ein dreidimensionales Array kann anschließend beim Simulieren des nicht-diagonalen Y-Gatters erstellt werden: ϕ d ' = δ d
    Figure DE112017007826T5_0035
    ϕ e ' d X e d ϕ d '
    Figure DE112017007826T5_0036
    ϕ e f g ' ' = Y g f ϕ e '
    Figure DE112017007826T5_0037
  • Die verschränkten Indizes können anschließend aufsummiert werden, wenn die Ergebnisse kombiniert werden, da sie sich beide in der Schaltung als einem Ganzem befinden: ψ c g = e f τ c e f ' ' ϕ e f g ' '
    Figure DE112017007826T5_0038
  • In dem Fall, in dem das CNOT-Gatter in Schritt 1080 von 10 stattdessen der untersten Teilschaltung zugewiesen wird, werden b und c die verschränkten Indizes, wie in 13D gezeigt. Wenn die oberste Teilschaltung simuliert wird, kann ein anfänglicher eindimensionaler Tensor/ein anfängliches eindimensionales Array zum Aufnehmen der Simulationsergebnisse erstellt werden, und nur ein zweidimensionaler Tensor/ein zweidimensionales Array kann beim Simulieren des Z-Gatters erstellt werden. In diesem Fall ist b bereits ein verschränkter Index, und die Simulation des Z-Gatters führt c in die Indexvariablen des Tensors/Arrays der Simulationsergebnisse ein. τ a ' = δ a
    Figure DE112017007826T5_0039
    τ b ' b H b a τ a '
    Figure DE112017007826T5_0040
    τ b c ' ' = Z c τ b '
    Figure DE112017007826T5_0041
  • Wenn die unterste Teilschaltung simuliert wird, kann ein anfänglicher eindimensionaler Tensor/ein anfängliches eindimensionales Array zum Aufnehmen der Simulationsergebnisse erstellt werden, und ein dreidimensionaler Tensor/ein dreidimensionales Array kann anschließend beim Simulieren des CNOT erstellt werden: ϕ d ' = δ d
    Figure DE112017007826T5_0042
    ϕ e ' c X e d ϕ d '
    Figure DE112017007826T5_0043
    ϕ b c f ' ' = e C N O T c f   d e ϕ e '
    Figure DE112017007826T5_0044
    ϕ b c g ' ' f Y g f ϕ b c f ' '
    Figure DE112017007826T5_0045
  • Da c ein Ausgangs-Index ist und sich nicht in der Schaltung befindet, wird eine Aufsummierung nur für b , aber nicht für c vorgenommen, wenn die Simulationsergebnisse der obersten und untersten Teilschaltungen kombiniert werden: ψ c g = b τ b c ' ' ϕ b c g ' '
    Figure DE112017007826T5_0046
  • Es ist anzumerken, dass nach einem Einführen von aufteilenden For-Schleifen anschließende Simulationsschritte in diesen For-Schleifen ausgeführt werden müssen, einschließlich den aufteilenden For-Schleifen für Teilschaltungen, die simuliert werden, nachdem dieser Punkt erreicht ist. Somit sollten alle Teilschaltungen, die ohne ein Aufteilen simuliert werden, vor der Einführung von aufteilenden Schleifen in der Ausführung simuliert werden, um eine redundante erneute Berechnung dieser Simulationsergebnisse zu vermeiden. Es ist anzumerken, dass die Einführung einer Aufteilung strikt optional ist, vorausgesetzt, dass ausreichender Arbeitsspeicher verfügbar ist, um die sich daraus ergebenden Simulationsergebnisse aufzunehmen. Es ist möglich, auszusuchen und auszuwählen, welche Simulationsergebnisse tatsächlich von denjenigen aufgeteilt werden, die aufgeteilt werden können. Der Fachmann wird auch die Möglichkeit erkennen, vollständige Simulationsergebnisse einiger Teilschaltungen in einem sekundären Speicher zu speichern und anschließend Anteile dieser Simulationsergebnisse in aufteilenden Schleifen abzurufen. Diese vollständigen Simulationsergebnisse können ihrerseits in Anteilen berechnet werden, sofern möglich, und in einen sekundären Speicher geschrieben werden, ohne die vollständigen Simulationsergebnisse im Hauptarbeitsspeicher realisieren zu müssen.
  • Der Fachmann wird desgleichen erkennen, dass aufteilende Schleifen nur benötigt werden, wenn der Zweck der Berechnung in einem Berechnen aller Amplituden in dem endgültigen Quantenzustand einer Schaltung besteht. Wenn stattdessen nur die Amplitude eines gemessenen Resultats berechnet werden soll, können die For-Schleifen stattdessen durch eingerichtete Werte für diese Qubits ersetzt werden, wie durch die gemessenen Resultate vorgegeben. Die aufteilenden Operationen würden immer noch ausgeführt, jetzt jedoch unter Verwendung der gemessenen Werte der entsprechenden Qubits. Wenn Amplituden für eine Gruppe von Messungen berechnet werden müssen, könnten die Simulationsergebnisse von Teilschaltungen, die nicht aufgeteilt werden können, aus Effizienzgründen zuerst berechnet werden, und eine Schleife könnte dann eingerichtet werden, um sich für jedes gemessene Resultat zu wiederholen und die Werte der aufgeteilten Qubits gemäß jeder Wiederholung einzurichten. Mit diesem Simulationsansatz besteht kein Bedarf mehr an einem Verschachteln von For-Schleifen, was eine größere Freiheit bezüglich der Simulationsreihenfolge der übrigen Teilschaltungen bieten kann.
  • 14 stellt eine Partitionierung der großen Quantenschaltung in Teilschaltungen entsprechend 5 dar, die ermöglicht, dass die Quantenschaltung auf derzeit verfügbaren Datenverarbeitungssystemen simuliert werden kann. 5 stellt eine Quantenschaltung dar, die zu einer Klasse von willkürlich generierten Quantenschaltungen gehört, die insbesondere von Boixo et al. so entwickelt wurden, dass es anscheinend unmöglich ist, sie auf bestehenden herkömmlichen Computern zu simulieren. Wie in ihrem Dokument 2016 „State-of-the-art supercomputers cannot simulate universal random circuits with depth 25 in a 2D lattice of approximately 7 x 7 qubits with any known algorithm and significant fidelity“ (Supercomputer nach dem Stand der Technik können keine Universal-Zufallsschaltungen mit Tiefe 25 in einem 2D-Gitter von ungefähr 7 x 7 Qubits mit irgendeinem bekannten Algorithmus und signifikanter Genauigkeit simulieren) beansprucht, besteht die Begründung für diese Aussage darin, dass eine derartige Simulation unter Verwendung bekannter Techniken 8 Petabyte an Hauptarbeitsspeicher erfordern würde, nur um Quantenzustandsinformationen zu speichern, und kein vorhandener Supercomputer so viel Arbeitsspeicher besäße. Durch ein Partitionieren der 7 x 7-Qubit-Schaltung mit Tiefe 27, die in 5 dargestellt ist, und ihr Simulieren unter Verwendung der vorliegenden Erfindung war es möglich, die Schaltung nur mit 4,5 Terabyte zu simulieren, um die Tensoren/Arrays der Simulationsergebnisse zu speichern.
  • 14 stellt die verwendete Partitionierung dar. Die Gatter in 5, die zu den Anteilen der entsprechenden Kacheln in 12 gehören, die die Zahl „1“ mit weißem Hintergrund enthalten, gehören zu einer Teilschaltung, auf die als die oberste Teilschaltung verwiesen wird. Die Gatter in 5, die zu den Anteilen der entsprechenden Kacheln in 12 gehören, die die Zahl „2“ mit hellgrauem Hintergrund enthalten, gehören zu einer anderen Teilschaltung, auf die als die unterste Teilschaltung verwiesen wird. Die Gatter in 5, die zu den Anteilen der entsprechenden Kacheln in 12 gehören, die die Zahl „3“ mit dunkelgrauem Hintergrund enthalten, oder den Buchstaben „S“ in weiß auf schwarzem Hintergrund enthalten, gehören zu einer dritten Teilschaltung, auf die als die „linke“ Teilschaltung verwiesen wird. Die oberste und die unterste Teilschaltung werden verschränkt, wobei die brückebildenden Gatter die CZ-Gatter sind, die die dritte und die vierte Reihe der beiden Kacheln rechts außen in der obersten Kachelreihe überspannen, die in 5 dargestellt sind. Diese CZ-Gatter können entweder der obersten oder der untersten Teilschaltung zugewiesen werden, ohne die Fähigkeit zu beeinträchtigen, die Schaltung zu simulieren. In der ausgeführten Simulation wurden diese CZ-Gatter der untersten Teilschaltung willkürlich zugewiesen. Für die Kombination der obersten und der untersten Teilschaltung waren 0,5 Terabyte zum Speichern ihrer Simulationsergebnisse erforderlich, wobei für die linke Teilschaltung 4 Terabyte erforderlich waren. Nach dem Berechnen der Simulationsergebnisse für die oberste und die unterste Teilschaltung wurden aufteilende Schleifen eingerichtet, um die Werte der durch den Buchstaben „S“ identifizierten und hellgrün gefärbten Qubits sowie die übrigen Qubits aufzuteilen, die den untersten der 7 x 7 Kacheln entsprechen. Berechnungen der Anteile wurden auf vier Racks eines Computers Blue Gene Q von IBM ausgeführt, der 64 Terabyte verfügbaren Hauptarbeitsspeicher bereitstellte. Verschiedene Bereiche der Schleifen wurden auf sechs verschiedenen Gruppen von vier Racks ausgeführt, um die gesamte Berechnung mit einem Faktor sechs zu beschleunigen.
  • Ein Anteil einer zufälligen 8 x 7-Qubit-Quantenschaltung einer Tiefe von 23 (nicht dargestellt) wurde ebenfalls simuliert. Diese 56-Qubit-Schaltung wurde auf eine sehr ähnliche Art partitioniert. In diesem Fall waren zum Speichern der Simulationsergebnisse für die drei erstellten Teilschaltungen nur 3 Terabyte Hauptspeicher erforderlich. Im Vergleich dazu wäre für Simulationsverfahren nach dem Stand der Technik 1 Exabyte zum Speichern und Betreiben auf dem gesamten Quantenzustand im Hauptarbeitsspeicher erforderlich gewesen. Diese Beispiele dienen zum Veranschaulichen des enormen Vorteils der vorliegenden Erfindung für die Quantensimulation.
  • Auf Grundlage der vorgenannten Darstellung sollte für den Fachmann offenkundig sein, wie die anfänglichen und abschließenden Größen der Simulationsergebnisse jeder Teilschaltung und die abschließenden Simulationsergebnisse in Bezug auf Anzahl von Dimensionen und Byte-Anzahl für jeden der vorgenannten Anwendungsfälle sowie weitere mögliche Anwendungsfälle der Erfindung zu berechnen sind. Dem Fachmann sollte des Weiteren klar sein, wie die Anzahl von Gleitkomma-Operationen geschätzt wird, die zum Simulieren jeder Teilschaltung und zum Kombinieren der Endergebnisse von jedem der vorgenannten Anwendungsfälle, für die die Erfindung ausgeübt werden kann, sowie für andere mögliche Anwendungsfälle der Erfindung benötigt werden. Der Fachmann wird erkennen, dass eine Vielfalt von Optimierungstechniken nach dem Stand der Technik in Verbindung mit dem Prozess verwendet werden kann, der in 10 veranschaulicht wird, um zum Beispiel Schaltungspartitionierungen zu finden, die die Anzahl von Gleitkomma-Operationen für jeden der vorgenannten Anwendungsfälle sowie für andere mögliche Anwendungsfälle der Erfindung abhängig von einem Grenzwert für den maximal verfügbaren Arbeitsspeicher auf einem Bereitstellungs-Zielsystem minimieren. Zu Beispielen zählen Tiefensuche, Breitensuche, iterative Tiefensuche, Dijkstra-Algorithmus und A*-Suche.
  • Der Fachmann wird erkennen, dass ein Umsetzen des Prozesses, der in 10 als ein rekursiver Tiefenoptimierungsprozess dargestellt wird, ein Einführen einer Schleife an jedem Entscheidungspunkt in diesem Prozess umfassen kann, der in 10 dargestellt wird, um eine Schleife über alle möglichen Entscheidungswahlmöglichkeiten zu bilden, anschließend in diesen Schleifen den in 10 dargestellten Prozess von diesen Punkten in dem weiteren Prozess für jede mögliche Wahl rekursiv aufzurufen, und am Ende der Schleifen die Wahlmöglichkeiten zurückzugeben, die eine gewünschte Maßnahme zu Ressourcenkosten optimieren. Diese Entscheidungspunkte können Schritt 1050 zum Auswählen eines zuweisbaren brückebildenden Gatters, Schritt 1060 zum Auswählen, ob Teilschaltungen zu verschränken sind, Schritt 1080 zum Zuweisen eines brückebildenden Gatters zu einer Teilschaltung und Schritt 1040 zum Bestimmen einer Teilschaltungs-Ausführungsreihenfolge enthalten. Einige Entscheidungen an diesen Punkten können stattdessen durch Anwenden von Faustregeln getroffen werden, während andere Entscheidungen als Teil der Tiefensuche enthalten sein können. Gewünschte Maßnahmen zu Ressourcenkosten, die minimiert werden sollen, können die Anforderungen für maximalen Arbeitsspeicher, die Gesamtanzahl von Gleitkomma-Operationen zum Berechnen aller Amplituden oder die Gesamtanzahl von Gleitkomma-Operationen zum Berechnen einer einzelnen Amplitude enthalten. Außerdem können Bedingungstests eingeführt werden, um Wahlmöglichkeiten auszuschließen, wenn gewünschte Bedingungen verletzt werden. Zu gewünschten Bedingungen kann gehören, dass die Anforderungen an den gesamten Arbeitsspeicher für eine Simulation innerhalb eines angegebenen Grenzwerts bleiben. Sie können auch einen Grenzwert für die Gesamtlaufzeit enthalten, die der Tiefenprozess selbst in Anspruch nimmt. Der Tiefenprozess kann umgesetzt werden, um die aktuell beste Gruppe von Wahlmöglichkeiten zu erfassen, die bisher gemäß einer gewünschten Maßnahme zu Ressourcenkosten gefunden wurden, sodass, wenn der Tiefenprozess abgeschlossen wird, bevor eine vollständige Suche ausgeführt wurde, wie beispielsweise in dem Fall, in dem ein Laufzeitgrenzwert vorgegeben ist, immer noch der Nutzen aus dem Ausführen des Tiefenprozesses gezogen werden kann.
  • Der Fachmann wird erkennen, dass der soeben beschriebene Tiefensucheprozess effektiv einen Baum von möglichen Abfolgen von Entscheidungswahlmöglichkeiten zusammen mit Schaltungspartitionierungen generiert, die dadurch hervorgerufen werden. Eine Breitensuche untersucht diesen Baum jeweils eine Ebene nach der anderen. Der Fachmann wird erkennen, dass die Breitensuche als eine iterative Tiefensuche umgesetzt werden kann, wobei für die Anzahl von getroffenen Entscheidungen ein Grenzwert vorgegeben wird, und Verzweigungen des Suchbaums aufgegeben werden, sobald dieser Grenzwert überschritten wird. Die Motivation für eine Breitensuche besteht darin, dass Suchkosten dazu neigen, mit der Suchtiefe exponentiell anzusteigen, sodass, wenn eine vernünftige Lösung für ein Optimierungsproblem in einer geringen Suchtiefe gefunden werden kann, diese Lösung angemessen sein könnte. Falls nicht, kann die Suche durch Erhöhen des Tiefengrenzwerts und ein erneutes Ausführen der Suche vertieft werden.
  • In dem Kontext der vorliegenden Erfindung kann ein Grenzwert außerdem nicht nur hinsichtlich der Tiefe der Suche angegeben werden, sondern alternativ auch hinsichtlich der Anzahl, wie oft die Verschränkungswahl in Schritt 1010 in 10 gewählt werden kann. Wenn die Wahl zum Verschränken in Schritt 1060 niemals getroffen wurde und stattdessen immer mit Schritt 1070 fortgefahren werden sollte, würde die Anzahl, wie oft Schritt 1070 ausgeführt würde, niemals größer als die Anzahl von Qubits sein. Der Grund dafür ist, dass Schritt 1070 die Wirkung hat, Gruppen von Qubits zusammen als ein Nebenprodukt eines Zusammenkombinierens der Ergebnisse der Teilschaltungen zu kombinieren, und die Anzahl derartiger gruppierender Operationen nicht größer sein darf als die Anzahl von gruppierten Qubits. Jedes Mal, wenn die Wahl zum Verschränken von Teilschaltungen in Schritt 1060 getroffen wird, verbreitert sich der effektive Suchbaum an diesem Punkt und wächst um mindestens eine weitere Ebene tiefer. Ein Einstellen eines sich wiederholt steigernden Grenzwerts für die Anzahl, wie oft die Wahl zum Verschränken getroffen werden kann, kann dadurch die Anzahl von Suchen einschränken, die für eine vorgegebene Einstellung des Grenzwerts ausgeführt werden (was der einer Breitensuche zugrunde liegende Zweck ist), während gleichzeitig eine Suchoptimierung über eine Gruppe von vollständig partitionierten Schaltungen ausgeführt wird. Im Gegensatz dazu würde ein einfaches Begrenzen der Tiefe der Suche verursachen, dass Verzweigungen in dem Suchbaum vorzeitig beendet würden, bevor eine Schaltung vollständig in Teilschaltungen partitioniert ist, wodurch ein großer Teil des Aufwands zum Generieren und Untersuchen von Nicht-Lösungen in dem Suchbaum verschwendet wird.
  • Eine Variation einer Breitensuche, die ebenfalls zur Verwendung mit der vorliegenden Erfindung geeignet sein kann, ist der Dijkstra-Algorithmus. In Anbetracht einer beliebigen Abfolge von Auswahlen, die an den verschiedenen Entscheidungspunkten in dem Prozess getroffen werden, der in 10 dargestellt ist, können die Maßnahmen in Bezug auf die Kosten der Ressourcen geschätzt werden, die durch den sich daraus ergebenden Simulationsprozess bis zu dem entsprechenden Punkt in der tatsächlichen Simulation in Anspruch genommen würden. Zu Beispielen zählen die kumulative Anzahl von bisherigen Gleitkomma-Operationen und die bisherigen maximalen Arbeitsspeicher-Anforderungen. Der Fachmann wird erkennen, dass der Dijkstra-Algorithmus umgesetzt werden kann, indem Datenstrukturen in eine Datenstruktur mit Prioritätswarteschlange gestellt werden, die Abfolgen von Entscheidungsauswahlen zusammen mit Maßnahmen in Bezug auf die Kosten der Ressourcen bis zu den entsprechenden Punkten in der sich daraus ergebenden Simulation encodiert. Der Dijkstra-Algorithmus kann anschließend fortgesetzt werden, indem die Abfolge mit den geringsten Kosten einer Entscheidungsauswahl aus der Prioritätswarteschlange ausgewählt wird, die Ressourcenkosten geschätzt werden, die einem Annehmen jeder der möglichen nächsten Entscheidungsauswahlen zugehörig sind, und die sich daraus ergebende Entscheidungsauswahl des nächsten Schritts und zugehörige Ressourcenkosten in die Prioritätswarteschlange gestellt werden und Wiederholungen ausgeführt werden. Der Dijkstra-Algorithmus kann für den in 10 dargestellten Prozess initialisiert werden, indem eine anfänglich leere Abfolge von Entscheidungsauswahlen zusammen mit den Ressourcenkosten zum Ausführen der Schritte 1010 und 1020 in die Prioritätswarteschlange gestellt wird, die Vorstufen des ersten Entscheidungspunkts sind, der Schritt 1050 entspricht. Vom Konzept her arbeitet der Dijkstra-Algorithmus daher durch ein Identifizieren der Abfolge mit den geringsten Kosten für bisher erhaltene Entscheidungen und ein anschließendes Beobachten, wohin diese Abfolge von Entscheidungen als Nächstes führt, sobald die Resultate des nächsten Entscheidungspunkts integriert sind.
  • Der Fachmann wird erkennen, dass eine weitere Variation des Dijkstra-Algorithmus die A*-Suche ist. Die A*-Suche modifiziert den Dijkstra-Algorithmus durch ein Kombinieren der Kosten, die sich aus Abfolgen von Entscheidungswahlen mit Schätzungen mit unterer Grenze ergeben, wie sich diese Kosten erhöhen, wenn optimale Abfolgen von Entscheidungsauswahlen ab diesen Punkten getroffen würden. Vom Konzept her arbeitet die A*-Suche durch ein Identifizieren der Abfolge von Entscheidungen mit der Schätzung der geringsten Gesamtkosten (im Gegensatz zu Kosten bis zum aktuellen Punkt in der Suche) und ein anschließendes Beobachten, wohin diese Abfolge von Entscheidungen als Nächstes führt, sobald die Resultate des nächsten Entscheidungspunkts integriert sind. In dem Kontext der vorliegenden Erfindung kann eine untere Grenze für die Anzahl von übrigen Gleitkomma-Operationen erhalten werden, indem die Kosten eines Anwendens aller übrigen Gatter berechnet werden, vorausgesetzt, dass die vorhandenen Tensoren sich nicht vergrößern. In dem Fall eines Mehrfach-Qubit-Gatters, das Teilschaltungen überbrückt, kann die Größe der kleinsten überbrückten Teilschaltung verwendet werden, um eine untere Grenze für die Kosten eines Anwendens dieses Mehrfach-Qubit-Gatters zu berechnen. Eine untere Grenze für die Erhöhung von Arbeitsspeicher-Anforderungen kann in der Voraussetzung bestehen, dass keine weiteren Erhöhungen von Arbeitsspeicher-Anforderungen stattfinden.
  • 15 ist ein Blockschaubild, das ein Beispiel einer Datenverarbeitungsvorrichtung (z.B. Computer 1500) darstellt, die zum Ausführen von einer oder mehreren der hierin offenbarten Verfahren geeignet ist. Es sollte klar sein, dass 15 nur eine Veranschaulichung einer Ausführungsform bereitstellt und keine Einschränkungen hinsichtlich der Umgebungen impliziert, in denen verschiedene Ausführungsformen umgesetzt werden können. An der dargestellten Umgebung können viele Modifizierungen vorgenommen werden.
  • Wie dargestellt, enthält der Computer 1500 eine Datenübertragungsstruktur 1502, die Datenübertragungen zwischen einem oder mehreren Computerprozessoren 1505 bereitstellt, einen Arbeitsspeicher 1506, einen permanenten Speicher 1508, eine Datenübertragungseinheit 1512 und eine oder mehrere Eingangs-/Ausgangs- (E/A) Schnittstellen 1515. Die Datenübertragungsstruktur 1502 kann mit jeder Architektur umgesetzt werden, die für ein Übergeben von Daten und/oder ein Steuern von Informationen zwischen Prozessoren (wie Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), Systemarbeitsspeicher, Peripherie-Einheiten und allen anderen Hardware-Komponenten in einem System ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 1502 mit einem oder mehreren Bussen umgesetzt werden.
  • Der Arbeitsspeicher 1506 und der permanente Speicher 1508 sind durch einen Computer lesbare Speichermedien. In der dargestellten Ausführungsform enthält der Arbeitsspeicher 1506 einen Direktzugriffsspeicher (RAM) 1516 und einen Cache-Speicher 1518. Im Allgemeinen kann der Arbeitsspeicher 1506 jedes geeignete flüchtige oder nicht flüchtige durch einen Computer lesbare Speichermedium enthalten.
  • Ein oder mehrere Programme können im permanenten Speicher 1508 zur Ausführung durch einen oder mehrere der jeweiligen Computerprozessoren 1505 über einen oder mehrere Arbeitsspeicher des Arbeitsspeichers 1506 gespeichert werden. Der permanente Speicher 1508 kann eine Magnetfestplatte, ein Solid-State-Drive, eine Halbleiter-Speichereinheit, ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM), ein Flash-Speicher oder jedes andere durch einen Computer lesbare Speichermedium sein, das fähig ist, Programmanweisungen oder digitale Informationen zu speichern.
  • Die von dem permanenten Speicher 1508 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 1508 verwendet werden. Weitere Beispiele umfassen optische und magnetische Platten, USB-Sticks und Smart-Cards, die für einen Datentransfer auf ein anderes durch einen Computer lesbares Speichermedium, das ebenfalls Teil des permanenten Speichers 1508 ist, in ein Laufwerk eingesetzt werden.
  • Die Datenübertragungseinheit 1512 stellt in diesen Beispielen Datenübertragungen mit anderen Datenverarbeitungssystemen oder -einheiten bereit. In diesen Beispielen enthält die Datenübertragungseinheit 1512 eine oder mehrere Netzwerk-Schnittstellenkarten. Die Datenübertragungseinheit 1512 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Kommunikationsverbindungen bereitstellen.
  • Die E/A-Schnittstelle(n) 1515 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Computer 1500 verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle 1515 eine Verbindung zu externen Einheiten 1520 bereitstellen, wie zum Beispiel einer Tastatur, einem Tastenfeld, einem Berührungsbildschirm und/oder einer anderen geeigneten Eingabeeinheit. Die externen Einheiten können auch tragbare, durch einen Computer lesbare Speichermedien enthalten, wie zum Beispiel USB-Sticks, tragbare optische oder Magnetplatten und Speicherkarten.
  • Die zum Ausüben von Ausführungsformen der vorliegenden Erfindung verwendete Software und verwendeten Daten können auf derartigen durch einen tragbaren Computer lesbaren Speichermedien gespeichert werden und können auf den permanenten Speicher 1508 über die E/A-Schnittstelle(n) 1515 geladen werden. Die E/A-Schnittstelle(n) 1515 können auch mit einer Anzeige 1522 verbunden sein. Die Anzeige 1522 stellt einen Mechanismus zu Anzeigen von Daten für einen Benutzer bereit und kann zum Beispiel ein Computermonitor sein.
  • Einem Fachmann wird klar sein, dass die oben offenbarten Ausführungsformen für eine Vielfalt von Umgebungen und Anwendungen angepasst werden können. Des Weiteren werden die hierin beschriebenen Programme auf Grundlage der Anwendung identifiziert, für die sie in einer bestimmten Ausführungsform der Erfindung umgesetzt werden. Es sollte jedoch klar sein, dass jede bestimmte Programm-Nomenklatur hierin aus rein praktischen Gründen verwendet wird, und die Erfindung somit nicht allein auf die Verwendung in einer bestimmten identifizierten Anwendung und/oder durch eine derartige Nomenklatur umgesetzt eingeschränkt sein soll.
  • Die hierin offenbarten Ausführungsformen können ein System, ein Verfahren und/oder ein Computerprogrammprodukt enthalten. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programminstruktionen gespeichert sind, um einen Prozessor dazu zu veranlassen, die hierin offenbarten Verfahren auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Instruktionen zur Verwendung durch eine Einheit zur Ausführung von Instruktionen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Instruktionen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programminstruktionen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programminstruktionen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programminstruktionen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programminstruktionen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programminstruktionen ausführen, indem sie Zustandsinformationen der computerlesbaren Programminstruktionen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programminstruktionen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programminstruktionen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Instruktionen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programminstruktionen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Instruktionen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Instruktionen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programminstruktionen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Instruktionen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Instruktionen darstellen, die eine oder mehrere ausführbare Instruktionen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computerinstruktionen ausführen.
  • Es ist anzumerken, dass diese Beschreibung die Erfindung keinesfalls einschränken soll. Die dargestellten Ausführungsformen sollen vielmehr einige der Alternativen, Modifizierungen und Entsprechungen abdecken, die in dem Erfindungsgedanken und Schutzumfang der Erfindung enthalten sind, wie in den Ansprüchen im Anhang definiert. Ferner werden in der ausführlichen Beschreibung der offenbarten Ausführungsformen zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der beanspruchten Erfindung zu ermöglichen. Ein Fachmann wird jedoch verstehen, dass verschiedene Ausführungsformen ohne derartige spezifische Details ausgeübt werden können.
  • Obwohl die Funktionen und Elemente der hierin offenbarten Ausführungsformen in bestimmten Kombinationen beschrieben werden, kann jede Funktion oder jedes Element alleine, ohne die anderen Funktionen und Elemente der Ausführungsformen, oder in verschiedenen Kombinationen mit oder ohne andere hierin offenbarte Funktionen und Elemente verwendet werden.
  • Diese schriftliche Beschreibung verwendet Beispiele des offenbarten Erfindungsgegenstands, um es jedem Fachmann zu ermöglichen, selbigen auszuüben, einschließlich einem Erstellen und Verwenden beliebiger Einheiten oder Systeme und einem Ausführen aller integrierten Verfahren. Der patentierbare Schutzumfang des Erfindungsgegenstands wird durch die Ansprüche definiert und kann weitere Beispiele enthalten, die dem Fachmann in den Sinn kommen. Derartige weitere Beispiele sollen unter den Schutzumfang der Ansprüche fallen.

Claims (24)

  1. Verfahren, ausgeführt durch einen oder mehrere Prozessoren, um eine Quantenschaltung zu simulieren, die eine Mehrzahl von Quantengattern aufweist, wobei das Verfahren aufweist: ein Empfangen einer digitalen Beschreibung der Quantenschaltung; ein Partitionieren der digitalen Beschreibung der Quantenschaltung in eine Mehrzahl von Quantenteilschaltungen, wobei jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen ein oder mehrere Quantengatter aufweist; ein Bestimmen von Teilschaltungsabhängigkeiten für die Mehrzahl von Quantenteilschaltungen; ein Simulieren der Mehrzahl von Quantenteilschaltungen gemäß den Teilschaltungsabhängigkeiten, um Simulationsergebnisse für jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen zu erzeugen; wobei eine erste und eine zweite Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen jeweils ein oder mehrere Gatter enthalten, die auf ein gemeinsames Qubit angewendet werden; und wobei die erste und die zweite Quantenteilschaltung unabhängig voneinander simuliert werden unter Verwendung eines verschränkten Tensorindex.
  2. Verfahren nach Anspruch 1, wobei alle Gatter in der ersten Quantenteilschaltung allen Gattern in der zweiten Quantenteilschaltung weder genau vorausgehen noch genau folgen.
  3. Verfahren nach Anspruch 1, wobei die erste und die zweite Quantenteilschaltung sich überlappende Gatterstufen aufweisen.
  4. Verfahren nach Anspruch 1, wobei ein verschränktes Gatter, das zwei Teilschaltungen überbrückt, durch eine gleichwertige Kombination von Einzel-Qubit-Gattern und einem diagonal unitären verschränkten Gatter ersetzt wird.
  5. Verfahren nach Anspruch 1, ferner aufweisend ein Umformen der Quantenschaltung, um verschränkte Gatter auf einer oder mehreren späteren Stufen der Quantenschaltung zu platzieren.
  6. Verfahren nach Anspruch 1, ferner aufweisend ein Umformen der Quantenschaltung, um diagonal unitäre Gatter auf einer oder mehreren Endstufen der Quantenschaltung zu platzieren.
  7. Verfahren nach Anspruch 1, ferner aufweisend ein Simulieren der Endstufen der Quantenschaltung unter Verwendung von Ergebnissen für eine oder mehrere Quantenteilschaltungen der Mehrzahl von Quantenteilschaltungen.
  8. Verfahren nach Anspruch 1, wobei Teilschaltungen in einer folienartigen Eingang-zu-Ausgang-Reihenfolge simuliert werden.
  9. Computerprogrammprodukt, aufweisend: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen aufweisen für: ein Empfangen einer digitalen Beschreibung einer Quantenschaltung; ein Partitionieren der digitalen Beschreibung der Quantenschaltung in eine Mehrzahl von Quantenteilschaltungen, wobei jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen ein oder mehrere Quantengatter aufweist; ein Bestimmen von Teilschaltungsabhängigkeiten für die Mehrzahl von Quantenteilschaltungen; ein Simulieren der Mehrzahl von Quantenteilschaltungen gemäß den Teilschaltungsabhängigkeiten, um Simulationsergebnisse für jede Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen zu erzeugen; wobei eine erste und eine zweite Quantenteilschaltung der Mehrzahl von Quantenteilschaltungen jeweils ein oder mehrere Gatter enthalten, die auf ein gemeinsames Qubit angewendet werden; und wobei die erste und die zweite Quantenteilschaltung unabhängig voneinander unter Verwendung eines verschränkten Tensorindex simuliert werden .
  10. Verfahren, ausgeführt durch einen oder mehrere Prozessoren, um eine Quantenschaltung zu simulieren, die eine Mehrzahl von Quantengattern aufweist, wobei das Verfahren aufweist: ein Empfangen einer digitalen Beschreibung der Quantenschaltung, die eine Mehrzahl von Stufen aufweist; ein Erstellen einer Teilschaltung für jedes Anfangsstufen-Qubit, um eine Mehrzahl von Teilschaltungen zu erzeugen; ein wiederholtes Hinzufügen von verbundenen, nicht brückebildenden Gattern von einem oder mehreren anschließenden Stufen der Mehrzahl von Stufen zu der Mehrzahl von Teilschaltungen, bis keine weiteren verbundenen, nicht brückebildenden Gatter mehr verfügbar sind; ein Auswählen eines brückebildenden Gatters, das mit zwei oder mehreren Teilschaltungen der Mehrzahl von Teilschaltungen verbunden ist; ein Bestimmen, ob die zwei oder die mehreren Teilschaltungen verschränkt werden sollen; und ein Hinzufügen des brückebildenden Gatters nur zu einer der zwei oder der mehreren Teilschaltungen in Reaktion auf ein Bestimmen, dass die zwei oder die mehreren Teilschaltungen verschränkt werden sollen.
  11. Verfahren nach Anspruch 10, ferner aufweisend ein Erstellen einer neuen Teilschaltung und ein Zuweisen des brückebildenden Gatters zu der neuen Teilschaltung in Reaktion auf ein Bestimmen, dass die zwei oder die mehreren Teilschaltungen nicht verschränkt werden sollen.
  12. Verfahren nach Anspruch 10, ferner aufweisend ein Hinzufügen der neuen Teilschaltung zu der Mehrzahl von Teilschaltungen.
  13. Verfahren nach Anspruch 10, das die zwei oder die mehreren Teilschaltungen schließt.
  14. Verfahren nach Anspruch 10, ferner aufweisend ein Bestimmen, ob alle Gatter einer Teilschaltung zugewiesen worden sind.
  15. Verfahren nach Anspruch 10, ferner aufweisend ein Bestimmen der Teilschaltungsabhängigkeiten für die Mehrzahl von Teilschaltungen.
  16. Verfahren nach Anspruch 15, ferner aufweisend ein Ausführen der Quantenschaltung gemäß den Teilschaltungsabhängigkeiten.
  17. Computerprogrammprodukt, aufweisend: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen aufweisen für: ein Empfangen einer digitalen Beschreibung der Quantenschaltung, die eine Mehrzahl von Stufen aufweist; ein Erstellen einer Teilschaltung für jedes Anfangsstufen-Qubit, um eine Mehrzahl von Teilschaltungen zu erzeugen; ein wiederholtes Hinzufügen von verbundenen, nicht brückebildenden Gattern von einer oder mehreren anschließenden Stufen der Mehrzahl von Stufen zu der Mehrzahl von Teilschaltungen, bis keine weiteren verbundenen, nicht brückebildenden Gatter mehr verfügbar sind; ein Auswählen eines brückebildenden Gatters, das mit zwei oder mehreren Teilschaltungen der Mehrzahl von Teilschaltungen verbunden ist; ein Bestimmen, ob die zwei oder die mehreren Teilschaltungen verschränkt werden sollen; und ein Hinzufügen des brückebildenden Gatters nur zu einer der zwei oder der mehreren Teilschaltungen in Reaktion auf ein Bestimmen, dass die zwei oder die mehreren Teilschaltungen verschränkt werden sollen.
  18. Verfahren, ausgeführt durch einen oder mehrere Prozessoren, um eine Quantenschaltung zu simulieren, die eine Mehrzahl von Quantengattern aufweist, wobei das Verfahren aufweist: ein Empfangen einer digitalen Beschreibung einer Gruppe von Quantenteilschaltungen, die Quantengatter und entsprechende Qubits aufweisen; ein Zuweisen eines unterschiedlichen Tensorindex zu jedem Qubit und zu einem Ausgang jedes nicht diagonal unitären Gatters; ein Verbreiten einer Tensor-Indexvariablen von einem Eingang zu einem Ausgang jedes diagonal unitären Gatters; und ein Ausführen jeder Quantenteilschaltung unter Verwendung der zugewiesenen Tensorindizes.
  19. Verfahren nach Anspruch 18, wobei das Ausführen jeder Quantenteilschaltung ein Bilden eines Produkts von Tensoren für jedes Gatter in der Quantenteilschaltung aufweist.
  20. Verfahren nach Anspruch 19, wobei das Ausführen jeder Quantenteilschaltung ein Verwenden der zugewiesenen Tensorindizes aufweist, um das Produkt von Tensoren zu berechnen.
  21. Verfahren nach Anspruch 18, wobei das Ausführen jeder Quantenteilschaltung ein Ausführen von Summenbildungen über Tensorindizes aufweist, die quantenteilschaltungsintern sind.
  22. Verfahren nach Anspruch 18, ferner aufweisend ein Bestimmen der Teilschaltungsabhängigkeiten für die Gruppe von Quantenteilschaltungen.
  23. Verfahren nach Anspruch 21, ferner aufweisend ein Ausführen der Quantenschaltung gemäß den Teilschaltungsabhängigkeiten.
  24. Computerprogrammprodukt, aufweisend: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen aufweisen für: ein Empfangen einer digitalen Beschreibung einer Gruppe von Quantenteilschaltungen, die Quantengatter und entsprechende Qubits aufweisen; ein Zuweisen eines unterschiedlichen Tensorindex zu jedem Qubit und zu einem Ausgang jedes nicht diagonal unitären Gatters; ein Verbreiten einer Tensor-Indexvariablen von einem Eingang zu einem Ausgang jedes diagonal unitären Gatters; und ein Ausführen jeder Quantenteilschaltung unter Verwendung der zugewiesenen Tensorindizes.
DE112017007826.1T 2017-09-22 2017-12-01 Simulieren von Quantenschaltungen Pending DE112017007826T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/713,323 2017-09-22
US15/713,323 US11250190B2 (en) 2017-09-22 2017-09-22 Simulating quantum circuits
PCT/IB2017/057566 WO2019058161A1 (en) 2017-09-22 2017-12-01 SIMULATION OF QUANTUM CIRCUITS

Publications (1)

Publication Number Publication Date
DE112017007826T5 true DE112017007826T5 (de) 2020-04-23

Family

ID=65806798

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017007826.1T Pending DE112017007826T5 (de) 2017-09-22 2017-12-01 Simulieren von Quantenschaltungen

Country Status (6)

Country Link
US (2) US11250190B2 (de)
JP (1) JP7100817B2 (de)
CN (2) CN111052122B (de)
DE (1) DE112017007826T5 (de)
GB (1) GB2579008A (de)
WO (1) WO2019058161A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250190B2 (en) 2017-09-22 2022-02-15 International Business Machines Corporation Simulating quantum circuits

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2018230642A1 (en) * 2017-03-10 2019-10-24 Rigetti & Co., Inc. Modular control in a quantum computing system
US11334693B1 (en) * 2018-03-07 2022-05-17 Keysight Technologies Canada Inc. Systems and methods for optimizing quantum computers
US10838792B1 (en) * 2018-03-07 2020-11-17 Quantum Benchmark, Inc. Systems and methods for reconstructing noise from pauli fidelities
US11100417B2 (en) * 2018-05-08 2021-08-24 International Business Machines Corporation Simulating quantum circuits on a computer using hierarchical storage
US11568293B2 (en) * 2018-07-18 2023-01-31 Accenture Global Solutions Limited Quantum formulation independent solver
CN113508404A (zh) * 2019-03-29 2021-10-15 华为技术有限公司 用于量子电路模拟器的设备和方法
US11048839B2 (en) 2019-03-29 2021-06-29 International Business Machines Corporation Adaptive error correction in quantum computing
US11049038B2 (en) 2019-03-29 2021-06-29 Alibaba Group Holding Limited Methods and systems for optimizing quantum circuits
US11551126B2 (en) * 2019-04-08 2023-01-10 International Business Machines Corporation Quantum data post-processing
CN111914378B (zh) * 2019-04-22 2024-05-07 本源量子计算科技(合肥)股份有限公司 一种单振幅量子计算模拟方法及装置
WO2020223850A1 (en) * 2019-05-05 2020-11-12 Supreme Qi Pte Ltd System and method for quantum circuit simulation
US11699089B2 (en) * 2019-05-21 2023-07-11 Accenture Global Solutions Limited Quantum recommendation system
US10908885B2 (en) * 2019-06-11 2021-02-02 IonQ, Inc. Quantum compiler
CN110428710B (zh) * 2019-07-30 2021-03-23 安徽问天量子科技股份有限公司 一种量子纠缠源的虚拟仿真方法
US20210150403A1 (en) * 2019-11-15 2021-05-20 Board Of Regents, The University Of Texas System Methods and Circuits for Copying Qubits and Quantum Representation of Images and Signals
CN111027704B (zh) * 2019-12-16 2024-05-31 北京百度网讯科技有限公司 量子资源估计方法、装置和电子设备
WO2021127779A1 (en) * 2019-12-22 2021-07-01 The Governing Council Of The University Of Toronto Method and system for efficient quantum optical design using non-linear mappings
CN113128015B (zh) * 2019-12-31 2023-04-07 合肥本源量子计算科技有限责任公司 预估单振幅模拟量子计算所需资源的方法和系统
US11568297B2 (en) 2020-03-05 2023-01-31 International Business Machines Corporation Efficient synthesis of a random uniformly distributed Clifford unitary
US11861456B2 (en) * 2020-05-28 2024-01-02 Quantinuum Llc Apparatuses, computer-implemented methods, and computer program products for instruction compilation for at least one time slice in a one-dimensional quantum computing environment
US11200360B1 (en) 2020-06-10 2021-12-14 International Business Machines Corporation Synthesis of a quantum circuit
CN111738448B (zh) * 2020-06-23 2021-09-28 北京百度网讯科技有限公司 量子线路模拟方法、装置、设备及存储介质
US11868846B1 (en) * 2020-06-23 2024-01-09 Amazon Technologies, Inc. Quantum computing simulation using comparative rejection sampling
US20220067245A1 (en) * 2020-08-12 2022-03-03 Microsoft Technology Licensing, Llc Low-cost linear orders for quantum-program simulation
CN114462611B (zh) * 2020-11-09 2023-03-14 北京百度网讯科技有限公司 用于估计量子门构建所需资源的方法及相关装置
CN112488317B (zh) * 2020-11-27 2021-09-21 北京百度网讯科技有限公司 量子控制中的仿真方法、装置、经典计算机及存储介质
CN112257022A (zh) * 2020-12-16 2021-01-22 之江实验室 基于量子测量的正实值概率幅度的快速测量估计方法
CN114764549B (zh) * 2020-12-31 2023-04-25 合肥本源量子计算科技有限责任公司 基于矩阵乘积态的量子线路模拟计算方法、装置
CN114692880B (zh) * 2020-12-31 2023-09-05 本源量子计算科技(合肥)股份有限公司 一种量子线路中量子态振幅的模拟方法及装置
CN113010302B (zh) * 2021-02-02 2022-11-01 中国人民解放军战略支援部队信息工程大学 量子-经典混合架构下多任务调度方法、系统及量子计算机系统架构
WO2022267854A1 (zh) * 2021-06-23 2022-12-29 合肥本源量子计算科技有限责任公司 量子计算任务处理方法、系统、装置及操作系统
CN113592094B (zh) * 2021-08-04 2022-06-07 腾讯科技(深圳)有限公司 量子态制备电路生成方法、超导量子芯片
CN115730669B (zh) * 2021-08-30 2024-06-14 本源量子计算科技(合肥)股份有限公司 一种量子线路的处理方法、装置及量子计算机操作系统
CN115936132A (zh) * 2021-08-31 2023-04-07 合肥本源量子计算科技有限责任公司 一种量子电路的模拟方法及相关装置
CN113723613B (zh) * 2021-08-31 2022-05-06 北京百度网讯科技有限公司 对量子电路进行模拟的方法及装置
WO2023068464A1 (ko) * 2021-10-21 2023-04-27 서울대학교산학협력단 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법
CN116048458B (zh) * 2021-10-28 2024-06-14 本源量子计算科技(合肥)股份有限公司 基于量子计算的数值划分方法、装置、设备及存储介质
US20230197193A1 (en) * 2021-12-20 2023-06-22 Optum Services (Ireland) Limited Quantum computing techniques for determining gene predictors in gene regulatory networks
WO2023177846A1 (en) * 2022-03-18 2023-09-21 University Of Pittsburgh - Of The Commonwealth System Of Higher Education Systems and methods for optimizing quantum circuit simulation using graphics processing units

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123363A1 (en) * 2004-12-07 2006-06-08 Williams Colin P Method and apparatus for automated design of quantum circuits
EP1672569A1 (de) 2004-12-20 2006-06-21 STMicroelectronics S.r.l. Verfahren zur Durchführung eines Quanten-Algorithmus zur Simulation eines genetischen Algorithmus
US20060224547A1 (en) * 2005-03-24 2006-10-05 Ulyanov Sergey V Efficient simulation system of quantum algorithm gates on classical computer based on fast algorithm
CN1959708A (zh) 2005-11-01 2007-05-09 沈诗昊 高效量子线路仿真方法与系统
US8671369B2 (en) 2009-12-08 2014-03-11 University Of Seoul Industry Cooperation Foundation Quantum Karnaugh map
US9064067B2 (en) 2012-08-06 2015-06-23 Microsoft Technology Licensing, Llc Quantum gate optimizations
US8972237B2 (en) 2012-08-06 2015-03-03 Microsoft Technology Licensing, Llc Optimizing quantum simulations by intelligent permutation
WO2015179753A1 (en) 2014-05-23 2015-11-26 The Regents Of The University Of Michigan Methods for general stabilizer-based quantum computing simulation
US9852242B2 (en) 2014-09-05 2017-12-26 Synopsys, Inc. Atomic scale grid for modeling semiconductor structures and fabrication processes
US10366339B2 (en) * 2014-11-21 2019-07-30 Microsoft Technology Licensing, Llc Method for efficient implementation of diagonal operators over clifford+T basis
CN104750945B (zh) 2015-04-17 2017-11-17 南通大学 一种量子电路仿真平台
CN107683460B (zh) 2015-05-05 2022-01-28 凯恩迪股份有限公司 在传统处理器上模拟量子样计算的quanton表示
EP3304363B1 (de) * 2015-06-08 2021-07-21 Microsoft Technology Licensing, LLC System zur zusammenstellung reversibler schaltungen mit platzbeschränkung, verfahren und programm
US9767238B2 (en) 2015-07-14 2017-09-19 Northrop Grumman Systems Corporation Reciprocal quantum logic (RQL) circuit simulation system
CA3011415C (en) 2016-01-26 2023-01-03 Michele MOSCA Decoding-based method for quantum circuit optimization
WO2017214293A1 (en) * 2016-06-08 2017-12-14 D-Wave Systems Inc. Systems and methods for quantum computation
EP3520041A4 (de) * 2016-09-30 2020-07-29 Rigetti & Co., Inc. Simulation von quantensystemen mit quantenberechnung
US10332024B2 (en) * 2017-02-22 2019-06-25 Rigetti & Co, Inc. Modeling superconducting quantum circuit systems
US11250190B2 (en) 2017-09-22 2022-02-15 International Business Machines Corporation Simulating quantum circuits

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250190B2 (en) 2017-09-22 2022-02-15 International Business Machines Corporation Simulating quantum circuits

Also Published As

Publication number Publication date
GB202004044D0 (en) 2020-05-06
US20190095561A1 (en) 2019-03-28
US20220164506A1 (en) 2022-05-26
CN111052122A (zh) 2020-04-21
US11250190B2 (en) 2022-02-15
CN111052122B (zh) 2023-06-23
JP2020534603A (ja) 2020-11-26
GB2579008A (en) 2020-06-03
JP7100817B2 (ja) 2022-07-14
WO2019058161A1 (en) 2019-03-28
CN116720461A (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
DE112017007826T5 (de) Simulieren von Quantenschaltungen
US11093669B2 (en) Method and system for quantum computing
DE112018006189T5 (de) Robuste gradienten-gewichtskomprimierungsschemata für deep-learning-anwendungen
DE112018006047T5 (de) Deformation von aufwandsfunktionen bei der quanten-näherungsoptimierung
DE102020118004A1 (de) Verfahren und vorrichtungen zum kachelförmigen durchlaufen eines tensors für faltungsoperationen
DE102018105457A1 (de) Transponieren von Matrizen neuronaler Netze in Hardware
DE102017121887A1 (de) Ausführen von Kerndurchschreiten in Hardware
DE102017113232A1 (de) Tensorverarbeitung unter verwendung eines formats mit geringer genauigkeit
DE112016002298T5 (de) Vorabruf von gewichten zur verwendung in einem neuronalen netzwerkprozessor
DE112016002296T5 (de) Vektor-recheneinheit in einem neuronalen netzwerkprozessor
DE112017002971T5 (de) Effiziente Reduzierung von Ressourcen für die Simulation fermionischer Hamilton-Operatoren aufQuantenhardware
DE102017121257A1 (de) Ausführen von Mittelwert-Poolbildung in Hardware
DE202016107443U1 (de) Berechnen von Faltungen mithilfe eines neuronalen Netzwerkprozessors
DE102018100239A1 (de) Schleifen- und Bibliotheksfusion
DE112016002292T5 (de) Stapel-verarbeitung in einem neuronalen netzwerkprozessor
DE202016107446U1 (de) Rotation von Daten für Berechnungen in neuronalen Netzwerken
DE69826963T2 (de) Gerät für die modulare Inversion zur Sicherung von Information
DE112019003529T5 (de) Datendarstellung für dynamische Genauigkeit in Kernen neuronaler Netze
DE102018121757A1 (de) Durchführen von vektorvergleichsoperationen in einervollhomomorphen verschlüsselung
DE112018005205T5 (de) Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung
DE112020003829T5 (de) Mindern von feindlich ausgerichteten auswirkungen in maschinenlernsystemen
DE102017109239A1 (de) Computerimplementiertes verfahren, computerlesbares medium und heterogenes rechnersystem
DE112020000748B4 (de) Adresserzeugung zur hochleistungsverarbeitung von vektoren
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06N0099000000

Ipc: G06N0010000000