Salut lume
Versiuni de pachete
Codul de pe această pagină a fost dezvoltat folosind următoarele cerințe. Recomandăm să folosești aceste versiuni sau unele mai noi.
qiskit[all]~=2.3.0
qiskit-ibm-runtime~=0.43.1
Acest exemplu conține două părți. Mai întâi vei crea un program cuantic simplu și îl vei rula pe o unitate de procesare cuantică (QPU). Deoarece cercetarea cuantică reală necesită programe mult mai robuste, în a doua secțiune (Scalare la un număr mare de qubiți), vei scala programul simplu până la nivelul de utilitate.
# Added by doQumentation — required packages for this notebook
!pip install -q matplotlib qiskit qiskit-ibm-runtime
Instalare și autentificare
-
Dacă nu ai instalat deja Qiskit, găsești instrucțiunile în ghidul Quickstart.
-
Instalează Qiskit Runtime pentru a rula joburi pe hardware cuantic:
pip install qiskit-ibm-runtime -
Configurează un mediu pentru a rula notebook-uri Jupyter local:
pip install jupyter
-
-
Configurează-ți autentificarea pentru accesul la hardware-ul cuantic prin intermediul Open Plan gratuit.
(Dacă ai primit prin e-mail o invitație pentru a te alătura unui cont, urmează în schimb pașii pentru utilizatorii invitați.)
-
Accesează IBM Quantum Platform pentru a te autentifica sau a crea un cont.
ImportantDacă te conectezi printr-un server proxy, trebuie să folosești Qiskit Runtime v0.44.0 sau o versiune mai recentă.
-
Generează-ți cheia API (numită și token API) pe tabloul de bord, apoi copiaz-o într-un loc sigur.
-
Accesează pagina Instances și găsește instanța pe care dorești să o folosești. Plasează cursorul peste CRN-ul ei și dă clic pentru a-l copia.
-
Salvează-ți acreditările local cu acest cod:
from qiskit_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(
token="<your-api-key>", # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance="<CRN>", # Optional
)
-
-
Acum poți folosi acest cod Python ori de câte ori dorești să te autentifici la Qiskit Runtime Service:
from qiskit_ibm_runtime import QiskitRuntimeService
# Run every time you need the service
service = QiskitRuntimeService()
Dacă folosești un calculator public sau un alt mediu nesecurizat, urmează în schimb instrucțiunile de autentificare manuală pentru a-ți păstra în siguranță acreditările de autentificare.
Creează și rulează un program cuantic simplu
Cei patru pași pentru a scrie un program cuantic folosind Qiskit patterns sunt:
-
Mapează problema într-un format nativ cuantic.
-
Optimizează Circuit-urile și operatorii.
-
Execută folosind o funcție primitivă cuantică.
-
Analizează rezultatele.
Pasul 1. Mapează problema într-un format nativ cuantic
Într-un program cuantic, Circuit-urile cuantice sunt formatul nativ în care se reprezintă instrucțiunile cuantice, iar operatorii reprezintă observabilele ce urmează să fie măsurate. Când creezi un Circuit, de obicei vei crea un nou obiect QuantumCircuit, apoi vei adăuga instrucțiuni la acesta în secvență.
Următoarea celulă de cod creează un Circuit care produce o stare Bell, adică o stare în care doi Qubiți sunt complet întrețesuți unul cu celălalt.
SDK-ul Qiskit folosește numerotarea biților LSb 0, unde cifra are valoarea sau . Pentru mai multe detalii, consultă subiectul Ordinea biților în Qiskit SDK.
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorOptions
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from matplotlib import pyplot as plt
# Uncomment the next line if you want to use a simulator:
# from qiskit_ibm_runtime.fake_provider import FakeBelemV2
# Create a new circuit with two qubits
qc = QuantumCircuit(2)
# Add a Hadamard gate to qubit 0
qc.h(0)
# Perform a controlled-X gate on qubit 1, controlled by qubit 0
qc.cx(0, 1)
# Return a drawing of the circuit using MatPlotLib ("mpl").
# These guides are written by using Jupyter notebooks, which
# display the output of the last line of each cell.
# If you're running this in a script, use `print(qc.draw())` to
# print a text drawing.
qc.draw("mpl")
Consultă QuantumCircuit din documentație pentru toate operațiunile disponibile.
Când creezi Circuit-uri cuantice, trebuie să iei în considerare și ce tip de date dorești să primești după execuție. Qiskit oferă două modalități de a returna date: poți obține o distribuție de probabilitate pentru un set de Qubiți pe care alegi să îi măsori, sau poți obține valoarea așteptată a unui observabil. Pregătește volumul de lucru pentru a măsura Circuit-ul tău în unul dintre aceste două moduri cu primitivele Qiskit (explicate în detaliu la Pasul 3).
Acest exemplu măsoară valorile așteptate folosind submodulul qiskit.quantum_info, specificat prin operatori (obiecte matematice utilizate pentru a reprezenta o acțiune sau un proces care schimbă o stare cuantică). Următoarea celulă de cod creează șase operatori Pauli cu doi Qubiți: IZ, IX, ZI, XI, ZZ și XX.
# Set up six different observables.
observables_labels = ["IZ", "IX", "ZI", "XI", "ZZ", "XX"]
observables = [SparsePauliOp(label) for label in observables_labels]
Aici, ceva de genul operatorului ZZ este o prescurtare pentru produsul tensorial , ceea ce înseamnă că se măsoară Z pe Qubitul 1 și Z pe Qubitul 0 împreună, obținând informații despre corelația dintre Qubitul 1 și Qubitul 0. Valorile așteptate de acest tip sunt de obicei scrise și ca