Blog

Optimierung von MCX-Gattern - schon heute auf zukünftige Hardware vorbereiten

29
Juli
,
2022

In dieser Notiz wird beschrieben, wie die Classiq-Plattform zur Erstellung von MCX-Gattern verwendet werden kann, einschließlich eines Gatters mit 14 Steuerelementen - ein Problem aus unserem jüngsten Programmierwettbewerb. Dann wird ein viel komplexeres Beispiel mit 50 Kontroll-Qubits demonstriert.

Quantenressourcen sind wertvoll, aber begrenzt

Quantencomputer sind ein verlockendes Versprechen für diejenigen, die ihre Leistung nutzen können. Und obwohl die heutigen Computer noch nicht in der Lage sind, reale Probleme zu lösen, werden diejenigen, die in der Lage sind, die verfügbare Hardware optimal zu nutzen, schneller von den Vorteilen profitieren als diejenigen, die warten. Das MCX-Gatter ist ein wichtiges Quantengatter, das in einer Vielzahl von Schaltungen verwendet wird, z. B. dem Grover-Operator, dem logischen UND-Operator, verschiedenen Algorithmen zur Zustandsvorbereitung und arithmetischen Komparatoren. Die Fähigkeit, Implementierungen von MCX-Gattern so anzupassen, dass sie die Hardware-Zwänge - begrenzte Qubit-Anzahl, Fidelitäten, Gatteranzahl usw. - erfüllen, ist nicht trivial.

Nehmen wir das Beispiel eines MCX-Gatters mit 4 Kontrollqubits. Zwei gleichwertige Zwischenschritte zur Zerlegung dieses Gatters sind unten dargestellt. Während sie die gleiche Funktionalität erreichen, hat Schaltung 1 eine Tiefe von 5 und Schaltung 2 eine Tiefe von 4, da die ersten beiden Gatter parallel ausgeführt werden können - q0, q1 und q5 werden gleichzeitig mit q2, q3 und q6 bearbeitet. Auch wenn dieses Beispiel irrelevant erscheinen mag, da nur wenige Probleme auf wundersame Weise gelöst werden können, wenn eine Operation weniger erforderlich ist, ist die Skalierbarkeit dieses Problems äußerst relevant. Diese eine zusätzliche Operation summiert sich schnell, wenn es um massive MCX-Gatter geht - wie sie für reale Anwendungen benötigt werden.

Kreislauf 1
Kreislauf 2

Das MCX-Gate mit 14 Steuerungen

In unserem kürzlich durchgeführten Kodierungswettbewerb mussten die Teilnehmer ein MCX-Gatter mit 14 Steuerungen in Ein-Qubit-Unitary-Gatter und CX-Gatter zerlegen, wobei sie auf insgesamt 20 Qubits beschränkt waren und alle Ancilla-Qubits am Ende freigegeben/unberechnet werden mussten. Die Gewinner wurden auf der Grundlage der Schaltung mit der geringsten Tiefe ausgewählt, da das Potenzial für reale Problemlösungen bei diesem Maßstab begrenzt ist: Je mehr Rauschen mit jeder Operation eingeführt wird, desto größer ist das Potenzial für ungenaue Ergebnisse.

So erstellen Sie ein MCX-Gate mit 14 Steuerungen mit Classiq

Classiq bietet zwei leistungsstarke Optionen zur Erstellung optimierter, hardwaregerechter Schaltungen - ein Python-SDK und eine Erweiterung in Visual Studio Code - mit gleichwertigen Schaltkreisfunktionen. Um ein MCX-Gatter mit 14 Kontroll-Qubits mit dem Python-SDK von Classiq zu erstellen, rufen wir einfach die MCX-Funktion auf und geben die Anzahl der Kontroll-Qubits an. Um diese Schaltung auf nur 20 Qubits zu beschränken und die Schaltungstiefe zu optimieren, geben wir die maximale Breite und den Optimierungsparameter in unserem ModelDesigner-Objekt an.


von classiq importieren ModelDesigner
from classiq.builtin_functions importieren Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(max_width=20, optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=14)

model_designer.Mcx(params=mcx_params)
Schaltung = model_designer.synthesize()

schaltung.show_interactive()

Mit der Visual Studio Code-Erweiterung von Classiq deklarieren wir unsere globalen Beschränkungen: nicht mehr als 20 Qubits verwenden und auf Tiefe optimieren. Dann rufen wir unsere MCX-Funktion mit 14 Kontroll-Qubits auf und sind bereit für die Synthese.


{
   "constraints": {
       "max_width": 20,
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 14}
       }
   ]
}

Die daraus resultierende interaktive Schaltung, die unten zu sehen und hier verfügbar ist, wurde in Sekundenschnelle automatisch erstellt und hat eine Schaltungstiefe von 95.

interaktive Visualisierung

Classiq-Logo

Es gab einen Fehler im Skript

Weitere Lösungen, die von den Teilnehmern während des einmonatigen Wettbewerbs entwickelt wurden, finden Sie hier.

Mehr als 14 Kontrollen

Die Leistungsfähigkeit der Classiq-Synthese-Engine geht weit über die Erstellung optimierter MCX-Gatter mit 14 Steuerbits im Handumdrehen hinaus. Nehmen Sie den folgenden Code, in dem wir ein optimiertes MCX-Gatter mit 50 Kontroll-Qubits erstellen.


# Python SDK
von classiq importieren ModelDesigner
from classiq.builtin_functions importieren Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=50)
model_designer.Mcx(params=mcx_params)
Schaltung = model_designer.synthesize()

schaltung.show_interactive()

// Visual Studio Code
{
   "constraints": {
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 50}
       }
   ]
}

Die unten gezeigte interaktive Schaltung des MCX-Gatters mit 50 Steuerungen finden Sie hier.

interaktive Visualisierung

Classiq-Logo

Der robuste Satz integrierter Funktionen von Classiq umfasst weit mehr als MCX-Gatter, wobei jede einzelne Funktion für den Benutzer genauso einfach zu definieren ist, während die intensiven Berechnungen und Optimierungstechniken der Classiq-Synthese-Engine überlassen werden. Mit Classiq geht die Optimierung über die Gatterebene hinaus, wobei das Bewusstsein für die Funktionsblöcke auf hoher Ebene und deren Interaktionen in wenigen Augenblicken zu einem revolutionären Schaltungsdesign führt.

Vereinbaren Sie einen Termin für eine Live-Demonstration der Classiq-Plattform, um sie in Aktion zu erleben, oder nehmen Sie Kontakt mit uns auf, um zu erfahren, wie Sie in wenigen Minuten branchenführende Quantenschaltungen erstellen können.

In dieser Notiz wird beschrieben, wie die Classiq-Plattform zur Erstellung von MCX-Gattern verwendet werden kann, einschließlich eines Gatters mit 14 Steuerelementen - ein Problem aus unserem jüngsten Programmierwettbewerb. Dann wird ein viel komplexeres Beispiel mit 50 Kontroll-Qubits demonstriert.

Quantenressourcen sind wertvoll, aber begrenzt

Quantencomputer sind ein verlockendes Versprechen für diejenigen, die ihre Leistung nutzen können. Und obwohl die heutigen Computer noch nicht in der Lage sind, reale Probleme zu lösen, werden diejenigen, die in der Lage sind, die verfügbare Hardware optimal zu nutzen, schneller von den Vorteilen profitieren als diejenigen, die warten. Das MCX-Gatter ist ein wichtiges Quantengatter, das in einer Vielzahl von Schaltungen verwendet wird, z. B. dem Grover-Operator, dem logischen UND-Operator, verschiedenen Algorithmen zur Zustandsvorbereitung und arithmetischen Komparatoren. Die Fähigkeit, Implementierungen von MCX-Gattern so anzupassen, dass sie die Hardware-Zwänge - begrenzte Qubit-Anzahl, Fidelitäten, Gatteranzahl usw. - erfüllen, ist nicht trivial.

Nehmen wir das Beispiel eines MCX-Gatters mit 4 Kontrollqubits. Zwei gleichwertige Zwischenschritte zur Zerlegung dieses Gatters sind unten dargestellt. Während sie die gleiche Funktionalität erreichen, hat Schaltung 1 eine Tiefe von 5 und Schaltung 2 eine Tiefe von 4, da die ersten beiden Gatter parallel ausgeführt werden können - q0, q1 und q5 werden gleichzeitig mit q2, q3 und q6 bearbeitet. Auch wenn dieses Beispiel irrelevant erscheinen mag, da nur wenige Probleme auf wundersame Weise gelöst werden können, wenn eine Operation weniger erforderlich ist, ist die Skalierbarkeit dieses Problems äußerst relevant. Diese eine zusätzliche Operation summiert sich schnell, wenn es um massive MCX-Gatter geht - wie sie für reale Anwendungen benötigt werden.

Kreislauf 1
Kreislauf 2

Das MCX-Gate mit 14 Steuerungen

In unserem kürzlich durchgeführten Kodierungswettbewerb mussten die Teilnehmer ein MCX-Gatter mit 14 Steuerungen in Ein-Qubit-Unitary-Gatter und CX-Gatter zerlegen, wobei sie auf insgesamt 20 Qubits beschränkt waren und alle Ancilla-Qubits am Ende freigegeben/unberechnet werden mussten. Die Gewinner wurden auf der Grundlage der Schaltung mit der geringsten Tiefe ausgewählt, da das Potenzial für reale Problemlösungen bei diesem Maßstab begrenzt ist: Je mehr Rauschen mit jeder Operation eingeführt wird, desto größer ist das Potenzial für ungenaue Ergebnisse.

So erstellen Sie ein MCX-Gate mit 14 Steuerungen mit Classiq

Classiq bietet zwei leistungsstarke Optionen zur Erstellung optimierter, hardwaregerechter Schaltungen - ein Python-SDK und eine Erweiterung in Visual Studio Code - mit gleichwertigen Schaltkreisfunktionen. Um ein MCX-Gatter mit 14 Kontroll-Qubits mit dem Python-SDK von Classiq zu erstellen, rufen wir einfach die MCX-Funktion auf und geben die Anzahl der Kontroll-Qubits an. Um diese Schaltung auf nur 20 Qubits zu beschränken und die Schaltungstiefe zu optimieren, geben wir die maximale Breite und den Optimierungsparameter in unserem ModelDesigner-Objekt an.


von classiq importieren ModelDesigner
from classiq.builtin_functions importieren Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(max_width=20, optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=14)

model_designer.Mcx(params=mcx_params)
Schaltung = model_designer.synthesize()

schaltung.show_interactive()

Mit der Visual Studio Code-Erweiterung von Classiq deklarieren wir unsere globalen Beschränkungen: nicht mehr als 20 Qubits verwenden und auf Tiefe optimieren. Dann rufen wir unsere MCX-Funktion mit 14 Kontroll-Qubits auf und sind bereit für die Synthese.


{
   "constraints": {
       "max_width": 20,
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 14}
       }
   ]
}

Die daraus resultierende interaktive Schaltung, die unten zu sehen und hier verfügbar ist, wurde in Sekundenschnelle automatisch erstellt und hat eine Schaltungstiefe von 95.

interaktive Visualisierung

Classiq-Logo

Es gab einen Fehler im Skript

Weitere Lösungen, die von den Teilnehmern während des einmonatigen Wettbewerbs entwickelt wurden, finden Sie hier.

Mehr als 14 Kontrollen

Die Leistungsfähigkeit der Classiq-Synthese-Engine geht weit über die Erstellung optimierter MCX-Gatter mit 14 Steuerbits im Handumdrehen hinaus. Nehmen Sie den folgenden Code, in dem wir ein optimiertes MCX-Gatter mit 50 Kontroll-Qubits erstellen.


# Python SDK
von classiq importieren ModelDesigner
from classiq.builtin_functions importieren Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=50)
model_designer.Mcx(params=mcx_params)
Schaltung = model_designer.synthesize()

schaltung.show_interactive()

// Visual Studio Code
{
   "constraints": {
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 50}
       }
   ]
}

Die unten gezeigte interaktive Schaltung des MCX-Gatters mit 50 Steuerungen finden Sie hier.

interaktive Visualisierung

Classiq-Logo

Der robuste Satz integrierter Funktionen von Classiq umfasst weit mehr als MCX-Gatter, wobei jede einzelne Funktion für den Benutzer genauso einfach zu definieren ist, während die intensiven Berechnungen und Optimierungstechniken der Classiq-Synthese-Engine überlassen werden. Mit Classiq geht die Optimierung über die Gatterebene hinaus, wobei das Bewusstsein für die Funktionsblöcke auf hoher Ebene und deren Interaktionen in wenigen Augenblicken zu einem revolutionären Schaltungsdesign führt.

Vereinbaren Sie einen Termin für eine Live-Demonstration der Classiq-Plattform, um sie in Aktion zu erleben, oder nehmen Sie Kontakt mit uns auf, um zu erfahren, wie Sie in wenigen Minuten branchenführende Quantenschaltungen erstellen können.

Über "Der Podcast des Qubit-Typen"

Der Podcast wird von The Qubit Guy (Yuval Boger, unser Chief Marketing Officer) moderiert. In ihm diskutieren Vordenker der Quanteninformatik über geschäftliche und technische Fragen, die das Ökosystem der Quanteninformatik betreffen. Unsere Gäste geben interessante Einblicke in Quantencomputer-Software und -Algorithmen, Quantencomputer-Hardware, Schlüsselanwendungen für Quantencomputer, Marktstudien der Quantenindustrie und vieles mehr.

Wenn Sie einen Gast für den Podcast vorschlagen möchten, kontaktieren Sie uns bitte .

Erstellen Sie Quantensoftware ohne Grenzen 

Kontakt