Qiskit ile Tanışma
Kuantum hesaplamanın matematiğini önceki ünitelerde kurdun; şimdi sıra bu kavramları gerçek bir araçla denemede. Bu derste IBM'in açık kaynaklı Python kütüphanesi Qiskit ile tanışacak, ilk kuantum devreni yazıp çalıştıracak ve sonuçları okumayı öğreneceksin. Serinin tamamına Kuantum Hesaplama dersleri sayfasından ulaşabilirsin.
Qiskit Nedir, Ne İşe Yarar?
Qiskit, kuantum devreleri kurmayı, simüle etmeyi ve gerçek kuantum işlemcilerde çalıştırmayı sağlayan, Python ile yazılmış açık kaynaklı bir SDK'dır (yazılım geliştirme kiti). En kritik noktayı baştan söyleyelim: Qiskit'in kendisi bir kuantum bilgisayar değildir. Kuantum hesabı tarif eden bir dildir; hesabı ya kendi klasik bilgisayarındaki bir simülatör yürütür ya da tarifini bulut üzerinden gerçek bir kuantum işlemciye gönderirsin. Simülatör ile cihaz ayrımının merkezindeki kavramları Backend ve Cihaz Kavramı dersi işler.
Qiskit'in soyutlaması önceki derslerdeki matematiğinle birebir örtüşür: kübitler yaratır, kapıları (H, X, CNOT...) metot olarak uygular, ölçüm ekler ve sonucu okursun. Kodda çağırdığın her kapı, durum vektörüne uygulanan üniteryen bir matristir; norm korunduğu için olasılık toplamı daima 1 kalır. Ölçüm sonuçlarının klasik kayıtlarda tutulması fikrini zaten Klasik Kontrol dersinde görmüştün; Qiskit'te bu kayıtlar devrenin bildirilen parçalarıdır.
Kurulum ve İlk Devre: Bell Durumu
Kurulum sıradan bir Python kütüphanesi gibidir: komut satırında pip install qiskit demen yeterli, yerel simülatör için qiskit-aer paketi ayrıca kurulur. İçe aktarma da tek satırdır: from qiskit import QuantumCircuit. İlk devremiz iki kübitli Bell durumu hazırlığıdır; kuantum programlamanın "merhaba dünya"sı sayılır. Adımlar şöyle:
- İki kübitli bir devre yarat: QuantumCircuit(2).
- 0. kübite Hadamard uygula: qc.h(0). Bu kapı |0⟩'yu (|0⟩ + |1⟩)/√2 durumuna taşır; matrisi (1/√2)·[[1, 1], [1, −1]] biçimindedir.
- 0. kübit kontrol, 1. kübit hedef olacak biçimde CNOT uygula: qc.cx(0, 1). Kontrol 1 ise hedef kübit çevrilir.
- Tüm kübitleri ölç: qc.measure_all().
Sonucu adım adım doğrulayalım. Başlangıç durumu iki kübitin çarpımıdır: |0⟩ ⊗ |0⟩ = |00⟩. Hadamard'dan sonra ((|0⟩ + |1⟩)/√2) ⊗ |0⟩ = (|00⟩ + |10⟩)/√2. CNOT ilk kübit 1 iken ikincisini çevirdiğinden |10⟩ → |11⟩ olur ve durum (|00⟩ + |11⟩)/√2'ye ulaşır; iki genlik de 1/√2 olduğundan |1/√2|² + |1/√2|² = 1 ile normalizasyon korunur. Ölçtüğünde %50 |00⟩, %50 |11⟩ görürsün; "01" ile "10" hiç çıkmaz. İki kübit ayrı ayrı belirsiz ama daima aynı — işte dolanıklık. Kuantum Teleportasyon dersindeki Bell çifti tam da bu devrenin çıktısıdır; ölçüm yapmadan durum vektörünü doğrudan hesaplamak istersen Statevector Simülasyonu dersi tam bunu anlatır.
Devreden Sonuca: Qiskit'in İş Akışı
Her Qiskit çalışması aynı döngüyü izler. Önce devreyi yazarsın; çizim ve okunabilirlik inceliklerini Kuantum Devresi Yazımı dersi ayrıca işler. Sonra devre, hedef cihazın yerel kapı setine ve kübit bağlantı haritasına çevrilir: buna transpilasyon denir ve Devre Transpilasyonu dersinin konusudur. Çalıştırma adımında yerel bir simülatör seçebileceğin gibi gerçek işlemciye de gönderebilirsin; simülatör türlerini Kuantum Simülatörleri, donanıma göndermenin pratik adımlarını Gerçek Kuantum Donanımında Çalıştırma dersi anlatır.
Son adım sonuç okumaktır. Devre defalarca — her çalıştırmaya shot denir — koşturulur ve her ölçümün çıktısı sayılır; sonuç "00: 513, 11: 511" biçiminde bir sayaç sözlüğüdür. Tekrarlı çalıştırma fikrinin mekaniğini Shot Tabanlı Simülasyon, sayaçların grafiğe dökülmesini Ölçüm Histogramları, istatistiksel yorumunu Sonuçların İstatistiksel Analizi dersi verir. Qiskit ayrıca olasılık dağılımları (Sampler) ve beklenti değerleri (Estimator) hesaplamak için üst düzey arayüzler sunar.
Sık Yapılan Hatalar ve Yanılgılar
Yeni başlayanların en çok takıldığı noktalar var; baştan bilirsen saatlerce kafa yormazsın:
- "Qiskit kuantum bilgisayardır" sanmak. Değildir; yerel çalıştırmalar simülasyondur ve bu yüzden gürültüsüz, hızlıdır. Gerçek cihaz sonuçlarında ise gürültü belirir; bunun modellenmesini Gürültü Modelleri dersi işler.
- Bit sırasını tersine okumak. Qiskit sonuç bit dizilerini küçük endian (little-endian) yazar: "01" çıktısında sağdaki bit 0 numaralı kübittir. Yani bu çıktı, 0. kübitin 1, 1. kübitin 0 ölçüldüğü demektir; matematikteki |01⟩ yazımıyla aynı şey değildir.
- Tek çalıştırmadan kesin sonuç beklemek. Devrenin evrimi üniteryen ve kesindir; ölçüm ise olasılıksaldır. Tek shot tek örnek verir, güvenilir oranlar için yüzlerce hatta binlerce shot gerekir.
- "2ⁿ işlemi bedavaya yapar" abartısına inanmak. Üst üste binme 2ⁿ genliği aynı anda taşır ama ölçüm yalnızca tek sonuç döndürür; hızlanma, algoritmanın genlikleri doğru biçimde yoğunlaştırmasından gelir.
Bu arada Qiskit tek seçenek değildir: Google'ın Cirq kütüphanesi de aynı temel kavramlarla kuantum devreleri yazmanı sağlar; iki aracın ekosistem ve yaklaşım farklarını Cirq ile Tanışma dersinde yan yana göreceksin.
Özet: Bu Dersten Akılda Kalanlar
- Qiskit, kuantum devrelerini yazmayı, simüle etmeyi ve gerçek donanımda çalıştırmayı sağlayan açık kaynaklı bir Python SDK'sıdır; kendisi bir kuantum bilgisayar değildir.
- İlk devre: H + CNOT ile Bell durumu (|00⟩ + |11⟩)/√2; ölçümde yalnızca %50 |00⟩ ve %50 |11⟩ görülür.
- İş akışı dört adımdır: devre yaz → transpile et → simülatörde ya da donanımda çalıştır → sayaç sonuçlarını yorumla.
- Sonuç bit dizileri küçük endian okunur: sağdaki bit 0 numaralı kübittir.
- Evrim kesin, ölçüm olasılıksaldır; güvenilir oran için çok sayıda shot gerekir.
Kavramları artık bir aracın diline çevirdin; sıra bunları gerçek bir problemde kullanmakta. Sonraki ünitenin ilk durağı olan Deutsch Algoritması dersinde, buradaki tarzda küçük bir devrenin bir problemi nasıl çözdüğünü adım adım göreceksin. Bu ünitenin devamında ise devre yazımını derinleştirip simülatör çeşitlerini tanıyacaksın.
Sık Sorulan Sorular
Qiskit nedir ve ne işe yarar?
Qiskit, kuantum devreleri kurmayı, simülatörlerde çalıştırmayı ve gerçek kuantum işlemcilere göndermeyi sağlayan açık kaynaklı bir Python yazılım geliştirme kitidir. Kübit, kapı ve ölçümle kod düzeyinde çalışmanı sağlar; hesabı ya klasik bir simülatör ya da erişim sağladığın kuantum cihazı yürütür.
Qiskit ücretsiz mi, kullanmak için kuantum bilgisayar gerekir mi?
Qiskit açık kaynaklıdır ve ücretsiz kurulur; simülasyon kendi bilgisayarında yapılır, kuantum donanımı gerekmez. Gerçek işlemciler bulut üzerinden erişime açıktır; erişim koşulları zamanla değişebildiği için güncel durumu IBM Quantum'un resmî belgelerinden kontrol et.
Qiskit ile Cirq arasındaki fark nedir?
İkisi de kuantum devreleri yazmaya yarayan açık kaynaklı Python kütüphaneleridir; kübit, kapı ve ölçüm kavramları her ikisinde de aynıdır. Qiskit IBM ekosisteminin, Cirq Google ekosisteminin aracıdır; ayrıntılı karşılaştırma için Cirq ile Tanışma dersine bakabilirsin.
Qiskit çıktılarında "01" ne demektir?
Qiskit bit dizilerini küçük endian yazar: sağdaki karakter 0 numaralı kübittir. "01" demek, 0. kübitin 1, 1. kübitin 0 ölçüldüğü demektir; matematikteki |01⟩ gösterimiyle karıştırmamak için bit sırasını daima kontrol et.
Kaynaklar ve İleri Okuma
Qiskit — Vikipedi (İngilizce) — Kütüphanenin tarihçesi ve bileşenlerine genel bakış maddesi.
IBM Quantum Documentation — Qiskit'in resmî dokümantasyonu; kurulum, API referansı ve rehberler.
IBM Quantum Learning — Qiskit ekibinin resmî, ücretsiz kuantum hesaplama kursları.
A fast quantum mechanical algorithm for database search — arXiv:quant-ph/9605043 — Grover'ın özgün makalesi; Qiskit ile kodlayabileceğin klasik kuantum algoritmalarından biri.