Simülasyon vs. Gerçek Cihaz: Qiskit'te Quantum Backend'leri Kullanma Rehberi - 3
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…
İçindekiler 0%
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?
- Simülatörler: Klasik bilgisayarlarda kuantum davranışını taklit eder.
- 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)
4. Gerçek Cihaz Kullanımı (IBM Quantum Lab)
from qiskit import QuantumCircuit, transpile, QuantumRegister, ClassicalRegister # QuantumRegister eklendifrom qiskit_ibm_runtime import QiskitRuntimeService, Samplerfrom qiskit.visualization import plot_histogram# IBM Quantum hesabına bağlanservice = 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}
Seçilen backend: <IBMBackend('ibm_kyiv')>
# Kuantum ve klasik register’ları açıkça tanımlaqr = 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ı eklecircuit.h(0) # Hadamard kapısı ile süperpozisyoncircuit.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ştursampler = Sampler(mode=backend)# Transpile edilmiş devreyi liste içinde çalıştırjob = sampler.run([isa_circuit], shots=1024)# Sonuçları alresult = job.result()quasi_dist = result[0].data.c0.get_counts() # 'c0' artık tanımlı# Sonuçları histogram olarak görselleştirplot_histogram(quasi_dist){codeBox}
Çıktı:
Bundan sonraki yazılarımda Python kernellerini de paylaşacağım. İlgili kerneli indirmek için:
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}
Tartışma
Yorumlar
Bu yazıya ilk yorumu siz bırakın.
Yorum bırakın