German
Sprachen
English
Japanese
German
Korean
Portuguese, Brazilian
French
Shortcuts

Die Qiskit Elemente

The Qiskit framework.

Terra

Terra, das Element Erde, ist das Fundament auf dem der Rest von Qiskit aufbaut. Terra bietet die Grundlage um Quantenprogramme mit Schaltkreisen und Pulsen zu erstellen, diese für die Anforderungen bestimmter Geräte zu optimieren, und die Ausführung von Experimenten auf externen Geräten zu verwalten. Terra definiert die Schnittstellen für eine freundliche Endnutzer-Erfahrung, sowie eine effiziente Handhabung von Optimierungsebenen, Impulsplanung und Backend Kommunikation.

Qiskit Terra ist in sechs Modulen organisiert:

  1. :mod:` qiskit.circuit ` Eine Quantenschaltung ist ein Modell für Quantencomputer, bei dem eine Berechnung durchgeführt wird, indem eine Folge von Quantenoperationen (in der Regel Gates) auf einem Qubit-Register durchgeführt wird. Ein Quantenschaltkreis beginnt in der Regel mit den Qubits im :math:` | 0,…, 0> ‚ Zustand. Durch das Durchlaufen der Qubits durch Gatter können Zustände entstehen, die nicht effizient auf einem klassischen Computer dargestellt werden können. Um Informationen über den Zustand zu extrahieren, muss eine Messung an der Quantenschaltung durchgeführt werden. Die Ergebnisse (aufgrund der fundamentalen Natur der Quantensysteme in Teilen zufällig) werden den klassischen Registern zuordnet, die wiederum effizient dargestellt werden können.

  2. :mod:` qiskit.pulse ` Ein Pulse Schedule ist ein Satz von Impulsen, die an ein Quantenexperiment gesendet und auf einen Kanal angewandt werden (experimentelle Eingangsleitung). Dieser ist in einer Ebene unter Schaltkreisen gelegen und erfordert, dass jedes Tor in der Schaltung als Impulssatz dargestellt wird. Auf dieser Ebene können die Experimente zur Verringerung von Fehlern (dynamische Entkopplung, Fehlerminderung und optimale Pulsformen) ausgelegt werden.

  3. :mod:` qiskit.transpiler ` Ein großer Teil der Forschung zu Quantencomputing arbeitet daran, wie man Quantenschaltkreise auf realen Quantencomputern laufen lassen kann. In diesen Geräten führen experimentelle Fehler und Dekohärenz zu Fehlern bei der Berechnung. Um eine robuste Implementierung zu erhalten, ist es daher von entscheidender Bedeutung, die Anzahl der Gates und die Gesamtlaufzeit der Quantenschaltung auf ein Minumum zu reduzieren. Der Transpiler führt das Konzept eines Pass-Managers ein, der es Benutzern ermöglicht, die Optimierung zu erforschen und bessere Quantenschaltungen für einen gegebenen Algorithmus zu finden. Man nennt es Transpiler, da das Endergebnis immer noch eine Schaltung ist.

  4. :mod:` qiskit.provider ` Sobald der Benutzer die Schaltungen auf dem Back-End ausgeführt hat, muss eine bequeme Möglichkeit bestehen, mit ihm zu arbeiten. In Terra geht das mit vier Teilen:

    1. A Provider is an entity that implements the abstract base class BaseProvider and provides access to a group of different backends (for example, backends available through the IBM Quantum). It interacts with those backends to, for example, find out which ones are available, or retrieve an instance of a particular backend.

    2. A Backend is an entity that implements the abstract base class BaseBackend represent either a simulator or a real quantum computer and are responsible for running quantum circuits and returning results. They have a run method which takes in a qobj as input and returns a BaseJob object. This object allows asynchronous running of jobs for retrieving results from a backend when the job is completed.

    3. Job instances are implementations of the abstract base class BaseJob and can be thought of as the “ticket” for a submitted job. They find out the execution’s state at a given point in time (for example, if the job is queued, running, or has failed) and also allow control over the job.

    4. Result Once the job has finished Terra allows the results to be obtained from the remote backends using result = job.result(). This result object holds the quantum data and the most common way of interacting with it is by using result.get_counts(circuit). This method allows the user to get the raw counts from the quantum circuit and use them for more analysis with quantum information tools provided by Terra.

  5. qiskit.quantum_info To perform more advanced algorithms and analysis of the circuits run on the quantum computer, it is important to have tools to implement simple quantum information tasks. These include methods to both estimate metrics and generate quantum states, operations, and channels.

  6. qiskit.visualization In Terra we have many tools to visualize a quantum circuit. This allows a quick inspection of the quantum circuit to make sure it is what the user wanted to implement. There is a text, python and latex version. Once the circuit has run it is important to be able to view the output. There is a simple function (plot_histogram()) to plot the results from a quantum circuit including an interactive version. There is also a function plot_state() and plot_bloch_vector() that allow the plotting of a quantum state.

Aer

Aer, das Element „Luft“, zieht sich durch alle Qiskit Elemente. Um die Entwicklung von Quantencomputern richtig zu beschleunigen, brauchen wir bessere Simulatoren, Emulatoren und Debugger. Aer hilft uns die Grenzen klassischer Prozessoren zu verstehen, indem es uns zeigt inwieweit diese Quantenberechnungen imitieren können. Des Weiteren können wir mit Aer verifizieren, dass derzeitige und künftige Quantencomputer korrekt funktionieren. Das erreichen wir durch die Auslotung der Grenzen einer Simulation und dem Simulieren der Auswirkungen von realistischem Quantenrauschen auf die Berechnungen.

Aer bietet ein hochperformantes Simulations-Framework für Quantenschaltkreise auf Basis des Qiskit Software Stacks. Es enthält optimierte C++ Simulations-Backends, um in Terra kompilierte Schaltkreise auszuführen. Aer stellt außerdem Tools zur Erstellung fein konfigurierbarer Modelle von Quantenrauschen zur Verfügung, um realistische Quantenfehler zu simulieren, welche während der Ausführung auf echten Geräten auftreten.

Qiskit Aer enthält drei hochperformante Simulator-Backends:

  1. QasmSimulator Allows ideal and noisy multi-shot execution of qiskit circuits and returns counts or memory. There are multiple methods that can be used that simulate different circuits more efficiently. These include:

    1. statevector - Verwendet eine Zustandsvektor-Simulation.

    2. stabilizer - Verwendet eine „Clifford stabilizer“ Zustandssimulator welcher nur für Clifford-Schaltkreise und Rauschmodelle funktioniert.

    3. extended_stabilizer - Verwendet einen approximierenden Simulator, welcher den Schaltkreis in Stabilisator-Zustände zerlegt, welche mit der Anzahl an Nicht-Clifford Gattern anwachsen.

    4. matrix_product_state - Verwendet einen „Matrix Product State“ (MPS) Simulator.

  2. StatevectorSimulator Allows ideal single-shot execution of qiskit circuits and returns the final statevector of the simulator after application.

  3. UnitarySimulator Allows ideal single-shot execution of qiskit circuits and returns the final unitary matrix of the circuit itself. Note that the circuit cannot contain measure or reset operations for this backend.

Ignis

Ignis, das Element „Feuer“, ist bestimmt Quanten-rauschen und -fehler zu bekämpfen und einen neuen Pfad zu schmieden. Das beinhaltet die bessere Charakterisierung von Fehlern, das Verbessern von Gattern und Berechnungen unter dem Einfluss von Quantenrauschen. Ignis ist für diejenigen gedacht, welche Codes zur Quantenfehlerkorrektur gestalten wollen, Möglichkeiten zur besseren Charakterisierung von Quantenfehlern entdecken (etwa durch Tomographie) oder sogar einen besseren Weg zur Verwendung von Gattern finden, indem sie dynamische Entkopplung und optimale Kontrolle erforschen.

Ignis stellt Code zur Verfügung, welcher es Nutzern erlaubt, auf einfache Weise Schaltkreise für spezifische Experimente mit einem minimalen Set an Eingabeparametern zu erstellen. Ignis enthält drei grundlegende Bausteine:

Circuits:

Das „circuits“ Modul stellt den Code zur Verfügung, um eine Liste von Schaltkreisen für ein bestimmtes Ignis-Experiment basierend auf einem minimalen Set an Eingabeparametern zu erstellen. Diese werden dann auf Terra oder Aer ausgeführt.

Fitters:

Das Ergebnis eines Ignis-Experiments wird dann an das Korrektur-Modul („Fitters“) weitergegeben, wo es analysiert und nach dem zugrunde liegenden physikalischen Modell angepasst wird. Fitters können die Daten aufzeichnen und korrigieren und eine Liste von Parametern ausgeben.

Filters:

Für bestimmte Ignis-Experimente können Fitter ein Filterobjekt ausgeben. Filter können verwendet werden, um Fehler in anderen Experimenten mit Hilfe der Kalibrierungsergebnisse eines Ignis-Experiments zu korrigieren.

Qiskit Ignis ist in drei Arten von durchführbaren Experimenten aufgeteilt:

  • qiskit.ignis.characterization Characterization experiments are designed to measure parameters in the system such as noise parameters (T1, T2-star, T2), Hamiltonian parameters such as the ZZ interaction rate and control errors in the gates.

  • qiskit.ignis.verification Verification experiments are designed to verify gate and small circuit performance. Verification includes state and process tomography, quantum volume and randomized benchmarking (RB). These experiments provide the information to determine performance metrics such as the gate fidelity.

  • qiskit.ignis.mitigation Mitigation experiments run calibration circuits that are analyzed to generate mitigation routines that can be applied to arbitrary sets of results run on the same backend. Ignis code will generate a list of circuits that run calibration measurements. The results of these measurements will be processed by a Fitter and will output a Filter than can be used to apply mitigation to other results.

Aqua

Aqua, das Element „Wasser“, ist das Element des Lebens. Um den Erwartungen an Quantencomputern gerecht zu werden, müssen wir Anwendungen in der realen Welt finden. In Aqua werden Algorithmen für Quantencomputer gebaut. Diese Algorithmen können verwendet werden, um Anwendungen für Quantencomputer zu bauen. Aqua ist zugänglich für Experten aus den Bereichen Chemie, Optimierung, Finanzwesen und Künstlicher Intelligenz, welche die Vorteile von Quantencomputern zur Beschleunigung von spezifischen, rechenaufwändigen Aufgaben entdecken wollen.

Problemstellungen, welche von dem Potential des Quantencomputing profitieren können, wurden in verschiedenen Bereichen identifiziert, wie beispielsweise Chemie, Künstliche Intelligenz (KI), Optimierung und dem Finanzwesen. Quantencomputing benötigt jedoch sehr spezialisierte Fähigkeiten. Um den Bedürfnissen aller, die Quantencomputing einsetzen und zu ihr auf den verschiedenen Ebenen des Software Stacks beitragen wollen, gerecht zur werden, wurde Qiskit Aqua geschaffen.