Lumaktaw sa pangunahing nilalaman

Hello World: Ang Iyong Unang Quantum Circuit

Bumuo ng Bell state (dalawang magkakaugnay na qubit) at patakbuhin ito sa tatlong paraan:

  1. Ideal simulation β€” perpektong mga resulta, walang kinakailangang account
  2. Noisy simulation β€” sumusubok ng tunay na device, walang kinakailangang account
  3. Tunay na quantum hardware β€” nangangailangan ng IBM Quantum account

Bumuo ng circuit​

# Added by doQumentation β€” required packages for this notebook
!pip install -q qiskit qiskit-ibm-runtime
from qiskit import QuantumCircuit

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

qc.draw(output="mpl")

Opsyon 1: Ideal simulation (walang kinakailangang account)​

Gumagamit ng StatevectorSampler β€” isang lokal na simulator na may perpekto at walang-ingay na mga resulta.

from qiskit.primitives import StatevectorSampler

result = StatevectorSampler().run([qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
counts
from qiskit.visualization import plot_histogram
plot_histogram(counts)

Opsyon 2: Noisy simulation (walang kinakailangang account)​

Gumagamit ng FakeManilaV2 β€” isang lokal na simulator na tumutulad sa tunay na IBM quantum device, kasama ang mga katangian ng ingay nito. Dapat munang i-transpile (i-adjust) ang circuit sa gate set at qubit connectivity ng device.

from qiskit_ibm_runtime import SamplerV2
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

backend = FakeManilaV2()
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_qc = pm.run(qc)

result = SamplerV2(mode=backend).run([isa_qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
counts
plot_histogram(counts)

Opsyon 3: Tunay na quantum hardware​

Nangangailangan ng IBM Quantum account. Tingnan ang Setting up your IBM Quantum account para sa mga detalye.

Kung hindi mo pa nase-save ang iyong mga credentials sa Binder session na ito, patakbuhin muna ito:

from qiskit_ibm_runtime import QiskitRuntimeService

QiskitRuntimeService.save_account(
token="<your-api-key>",
instance="<your-crn>",
overwrite=True
)

Paalala: Ang mga job sa tunay na hardware ay maaaring tumagal ng ilang oras depende sa queue times. Kung tumatakbo pa rin ang cell, maaari ninyong tingnan ang inyong job status at makita ang mga resulta sa quantum.cloud.ibm.com/workloads.

from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
print(f"Running on {backend.name}")

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_qc = pm.run(qc)

result = SamplerV2(mode=backend).run([isa_qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
counts
plot_histogram(counts)

Ano ang susunod?​

  • Tutorials β€” sunud-sunod na mga gabay sa mga algorithm, error mitigation, transpilation, at iba pa
  • Courses β€” nakaayos na mga landas ng pag-aaral mula sa mga pangunahing quantum hanggang sa utility-scale computing
  • Local testing mode β€” magpatakbo ng karamihan sa mga notebook nang walang IBM Quantum account