Qubiți cuantici, porți și circuite
Kifumi Numata (19 Apr 2024)
Apasă aici pentru a descărca pdf-ul lecției originale. Reține că unele fragmente de cod ar putea fi deprecate, deoarece acestea sunt imagini statice.
Timpul aproximativ de QPU pentru a rula acest experiment este de 5 secunde.
1. Introducere
Biții, porțile și circuitele sunt elementele de bază ale computației cuantice. Vei învăța computația cuantică cu modelul de circuit, folosind biți cuantici și porți, și vei recapitula superpozița, măsurarea și entanglementul.
În această lecție vei învăța:
- Porți cu un singur qubit
- Sfera Bloch
- Superpozița
- Măsurarea
- Porți cu doi qubiți și starea de entanglement
La finalul acestei lecții, vei învăța despre adâncimea circuitului, care este esențială pentru computația cuantică la scară utilă.
2. Computația ca diagramă
Atunci când folosim qubiți sau biți, trebuie să îi manipulăm pentru a transforma intrările pe care le avem în ieșirile de care avem nevoie. Pentru programele cele mai simple cu foarte puțini biți, este util să reprezentăm acest proces printr-o diagramă numită diagramă de circuit.
Figura din stânga jos este un exemplu de circuit clasic, iar figura din dreapta jos este un exemplu de circuit cuantic. În ambele cazuri, intrările sunt la stânga și ieșirile la dreapta, iar operațiile sunt reprezentate prin simboluri. Simbolurile folosite pentru operații se numesc „porți" (gates), în mare parte din motive istorice.
3. Poarta cuantică cu un singur qubit
3.1 Starea cuantică și sfera Bloch
Starea unui qubit este reprezentată ca o superpozție de și . O stare cuantică arbitrară este reprezentată astfel:
unde și sunt numere complexe cu proprietatea că .
și sunt vectori în spațiul vectorial complex bidimensional:
Prin urmare, o stare cuantică arbitrară este de asemenea reprezentată astfel:
Din aceasta putem vedea că starea unui bit cuantic este un vector unitar într-un spațiu vectorial complex cu produs intern bidimensional, cu o bază ortonormată formată din și . Este normalizat la 1.
|\psi\rangle =\begin\{pmatrix\} \alpha \\ \beta \end\{pmatrix\} se mai numește și statevector.
O stare cuantică cu un singur qubit se mai poate reprezenta și astfel:
unde și sunt unghiurile sferei Bloch din figura de mai jos.
În următoarele celule de cod vom construi calcule de bază din componente elementare în Qiskit. Vom crea un circuit gol și vom adăuga operații cuantice, discutând porțile și vizualizând efectele lor pe parcurs.
Poți rula celula cu „Shift" + „Enter". Importă mai întâi bibliotecile.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-aer qiskit-ibm-runtime
# Import the qiskit library
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.quantum_info import Statevector
from qiskit.visualization import plot_bloch_multivector
from qiskit_ibm_runtime import Sampler
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit.visualization import plot_histogram
Pregătirea circuitului cuantic
Vom crea și desena un circuit cu un singur qubit.
# Create the single-qubit quantum circuit
qc = QuantumCircuit(1)
# Draw the circuit
qc.draw("mpl")
Poarta X
Poarta X este o rotație de în jurul axei a sferei Bloch. Aplicând poarta X pe se obține , iar aplicând poarta X pe se obține , deci este o operație similară cu poarta clasică NOT și mai este cunoscută și ca bit flip (inversare de bit). Reprezentarea matriceală a porții X este de mai jos.
qc = QuantumCircuit(1) # Prepare the single-qubit quantum circuit
# Apply a X gate to qubit 0
qc.x(0)
# Draw the circuit
qc.draw("mpl")
În IBM Quantum®, starea inițială este setată la , deci circuitul cuantic de mai sus în reprezentare matriceală este: