Cirq
Cirq
| |
---|---|
![]() | |
Basisdaten
| |
Erscheinungsjahr | 17. April 2018 |
Aktuelle Version | 1.5.0[1] (10. April 2025) |
Programmiersprache | Python |
Lizenz | Apache-Lizenz, Version 2.0 |
quantumai.google/cirq |
Cirq ist ein Open-Source-Framework für Noisy Intermediate-Scale Quanten (NISQ)-Computer.[2]
Es wurde von Google entwickelt, um Quantenalgorithmen effizient auf aktuellen Quantenprozessoren zu entwerfen, zu optimieren und auszuführen. Cirq bietet eine flexible Schnittstelle zur Steuerung von Quanten-Hardware, unterstützt die Simulation von Quanten-Schaltkreisen und ermöglicht Forschern sowie Entwicklern die Implementierung und Analyse von Algorithmen für reale Quantencomputer.
Geschichte
[Bearbeiten | Quelltext bearbeiten]Cirq wurde vom Google AI Quantum Team entwickelt. Die erste öffentliche Alpha-Version wurde auf dem Internationalen Workshop on Quantum Software and Quantum Machine, am 18. Juli 2018 vorgestellt.[2] Eine Vorführung durch QC Ware hat eine Implementierung des Quantum Approximate Optimization Algorithm (QAOA) gezeigt, der ein Beispiel eines Max-Cut-Problems mit einem Cirq-Simulator gelöst hat. Diese Demonstration veranschaulichte, wie Quantenalgorithmen für kombinatorische Optimierungsprobleme eingesetzt werden können und wie Cirq zur effizienten Simulation und Analyse solcher Algorithmen genutzt wird.[3]
Verwendung
[Bearbeiten | Quelltext bearbeiten]In Cirq werden Quantenschaltkreise durch „Circuits“ dargestellt, die aus einer Reihe von „Moments“ bestehen. Jeder „Moment“ repräsentiert eine Schicht von Quanten-Gattern, die gleichzeitig angewendet werden sollen.[4]
Die Programme können auf lokalen Simulatoren[5] oder auf Hardware von IonQ, Pasqal[6], Rigetti und Alpine Quantum Technologies[7] ausgeführt werden.
Die folgenden Beispiele zeigen wie man einen Bell-Zustand in Criq erstellt und misst:
import cirq
# qubits auswählen
qubit0 = cirq.GridQubit(0, 0)
qubit1 = cirq.GridQubit(0, 1)
# Circuit erstellen
circuit = cirq.Circuit(
cirq.H(qubit0),
cirq.CNOT(qubit0, qubit1),
cirq.measure(qubit0, key="m0"),
cirq.measure(qubit1, key="m1")
)
Das Ausgeben des Schaltkreises zeigt sein Diagramm an:
print(circuit)
# prints
# (0, 0): ───H───@───M('m0')───
# │
# (0, 1): ───────X───M('m1')───
Die wiederholte Simulation des Schaltkreises zeigt, dass die Messungen der Qubits korreliert sind:
simulator = cirq.Simulator()
result = simulator.run(circuit, repetitions=5)
print(result)
# Gibt aus:
# m0=11010
# m1=11010
Projekte
[Bearbeiten | Quelltext bearbeiten]OpenFermion
[Bearbeiten | Quelltext bearbeiten]OpenFermion ist eine Bibliothek, die Quanten-Simulationsalgorithmen für Cirq kompiliert. Sie wird insbesondere für die Simulation quantenmechanischer Systeme in der Quantenchemie und Physik verwendet und ermöglicht die effiziente Umwandlung von Fermionen-Hamiltonianen in Quanten-Schaltkreise.[2]
TensorFlow Quantum
[Bearbeiten | Quelltext bearbeiten]TensorFlow Quantum ist eine Erweiterung von TensorFlow, die es ermöglicht, hybride klassisch-quantenbasierte Machine-Learning-Algorithmen zu erforschen. Sie kombiniert die Leistungsfähigkeit von TensorFlow mit Quantencomputing-Techniken und erlaubt die nahtlose Integration von Quanten-Schaltkreisen in bestehende neuronale Netzwerke und Optimierungsprozesse.[8][9]
ReCirq
[Bearbeiten | Quelltext bearbeiten]ReCirq ist ein Repository für Forschungsprojekte, die mit Cirq durchgeführt wurden. Es enthält eine Sammlung von Open-Source-Experimenten, Algorithmen und Anwendungen, die von der Quantenforschungs-Community entwickelt wurden, und dient als Ressource für das Testen und Optimieren von Quantenalgorithmen.[10]
Qsim Cirq
[Bearbeiten | Quelltext bearbeiten]Qsim ist ein leistungsstarker Wellenfunktionssimulator, der Gate-Fusion, AVX/FMA-Instruktionen und OpenMP nutzt, um hohe Simulationsgeschwindigkeiten zu erreichen. Qsimcirq ermöglicht die Verwendung von Qsim direkt innerhalb von Cirq und bietet eine effiziente Möglichkeit, große Quanten-Schaltkreise zu simulieren, indem es hardwarebeschleunigte Optimierungen nutzt.[11]
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 1.5.0. 10. April 2025 (abgerufen am 24. April 2025).
- ↑ a b c Announcing Cirq: An Open Source Framework for NISQ Algorithms. Abgerufen am 3. März 2025 (englisch).
- ↑ public_demos/max_cut/max_cut_cirq.py at master · qcware/public_demos. Abgerufen am 3. März 2025 (englisch).
- ↑ Cirq basics. Abgerufen am 3. März 2025 (englisch).
- ↑ Simulate a circuit | Cirq. Abgerufen am 3. März 2025 (englisch).
- ↑ Homepage pasqal. Abgerufen am 3. März 2025 (amerikanisches Englisch).
- ↑ Carina: Home. Abgerufen am 3. März 2025 (amerikanisches Englisch).
- ↑ TensorFlow Quantum. Abgerufen am 3. März 2025 (englisch).
- ↑ Seunghyeok Oh, Jaeho Choi, Joongheon Kim: A Tutorial on Quantum Convolutional Neural Networks (QCNN). IEEE, 2020, ISBN 978-1-72816-758-9, S. 236–239, doi:10.1109/ICTC49870.2020.9289439 (ieee.org [abgerufen am 3. März 2025]).
- ↑ quantumlib/ReCirq. quantumlib, 28. Februar 2025, abgerufen am 3. März 2025.
- ↑ Client Challenge. Abgerufen am 3. März 2025.