Hot Posts

6/recent/ticker-posts

Simülasyon vs. Gerçek Cihaz: Qiskit'te Quantum Backend'leri Kullanma Rehberi - 3

⏳ Estimated Reading Time: 3 min

Kuantum hesaplamaya başlarken en kritik adımlardan biri, yazdığınız devreleri nerede çalıştıracağınızı bilmektir. Qiskit, hem simülasyon hem de gerçek kuantum cihazlarına erişim sağlayan esnek bir framework sunar. Bu yazıda, IBM Quantum Lab üzerinden bu backend'leri nasıl kullanacağınızı, simülasyon ile gerçek cihazlar arasındaki farkları örneklerle açıklayacağım.




1. Qiskit Backend Nedir?

Qiskit'te bir kuantum devresi tasarladığınızda, bu devreyi çalıştırmak için bir "backend" seçersiniz. Backend'ler iki kategoriye ayrılır:

  1. Simülatörler: Klasik bilgisayarlarda kuantum davranışını taklit eder.
  2. Gerçek Cihazlar: IBM'in fiziksel kuantum işlemcilerine (örneğin ibm_nairobi, ibm_kyoto) bağlanır.

2. Simülasyon ile Gerçek Cihaz Arasındaki Farklar


Özellik Simülatör Gerçek Cihaz
Hız: Küçük devrelerde hızlı Kuyruk nedeniyle yavaş
Doğruluk: Mükemmel (gürültüsüz) Gürültü ve hatalar mevcut
Kullanım Amacı: Test ve debug Gerçek dünya deneyimi
Qubit Sayısı 100+ qubit simüle edilebilir Genellikle 5-1000 qubit (cihaza bağlı)
Maliyet: Ücretsiz IBM Quantum Credits gerekebilir


3. Simülatör Kullanımı (Örnek Kod)

Qiskit Aer kütüphanesi ile yerel simülasyon yapabilirsiniz, simülasyon üzerinde koşan açıklamalı bir kod örneğini ikinci makalemden inceleyebilirsiniz:


4. Gerçek Cihaz Kullanımı (IBM Quantum Lab)

Adım 1: IBM Quantum Lab’a giriş yapın ve API token’ınızı alın.
Adım 2: Qiskit’te hesabınızı yükleyin:

from qiskit import QuantumCircuit, transpile, QuantumRegister, ClassicalRegister  # QuantumRegister eklendi
from qiskit_ibm_runtime import QiskitRuntimeService, Sampler
from qiskit.visualization import plot_histogram

# IBM Quantum hesabına bağlan
service = QiskitRuntimeService(channel="ibm_quantum", token="bb253074cfea8aab13ca797_XYZ")

# Kullanılabilir bir backend seç
backend = service.least_busy(operational=True, simulator=False)
print(f"Seçilen backend: {backend}"){codeBox}

Benim testleri yaptığım sırada boştaki backend:

Seçilen backend: <IBMBackend('ibm_kyiv')>

Şimdi bir hadamard kapısının gerçek bir quantum bilgisayar backendi üzerinde ne kadar doğru çalıştığına göz atacağız. Daha önceki yazılarımda anlattığım gibi hadamard kağısı bir qubiti süperpozisyona sokar ve 1 ila 0 olma olasılığını %50'ye eşitlemeye çalışır.

# Kuantum ve klasik register’ları açıkça tanımla
qr = QuantumRegister(1, 'q')  # 1 kubitlik kuantum register, adı 'q'
cr = ClassicalRegister(1, 'c0')  # 1 bitlik klasik register, adı 'c0'
circuit = QuantumCircuit(qr, cr)  # Devreye register’ları ekle
circuit.h(0)  # Hadamard kapısı ile süperpozisyon
circuit.measure(0, 0)  # 0. kubit’i c0’a ölç

# Devreyi backend’in ISA’sına uygun hale getir (transpile)
isa_circuit = transpile(circuit, backend=backend)

# Transpile edilmiş devreyi çiz (isteğe bağlı)
isa_circuit.draw(output='mpl')

# Sampler’ı oluştur
sampler = Sampler(mode=backend)

# Transpile edilmiş devreyi liste içinde çalıştır
job = sampler.run([isa_circuit], shots=1024)

# Sonuçları al
result = job.result()
quasi_dist = result[0].data.c0.get_counts()  # 'c0' artık tanımlı

# Sonuçları histogram olarak görselleştir
plot_histogram(quasi_dist){codeBox}


Çıktı: 

Bundan sonraki yazılarımda Python kernellerini de paylaşacağım. İlgili kerneli indirmek için:

{getButton} $text={Gerçek quantum bilgisayarda hadamard kapısı test kerneli} $icon={download} $color={Hex Color}

Sonuç olarak 536 kez 0 ve 488 kez 1 olmuş oldu. Quantum bilgisayarlarında hâlâ  çok fazla hata payı olduğunu gerçek bir quantum bilgisayar üzerinde test etmiş olduk. {alertSuccess}

Post a Comment

0 Comments