← Quantum Store · Rehberler · Dersler · Sözlük · Paketler · Öğrenme yolları · English
Qiskit kursu: gerçek kuantum programlama · Ders 1 / 6 · 10 dk
Qiskit’e giriş: ilk devreni Python’la yaz
Dünyada en çok kullanılan kuantum programlama kütüphanesi Qiskit’i kur, deneme alanında kurduğun Bell devresini Python koduyla yaz ve çizdir.
Qiskit nedir?
Qiskit, IBM’in geliştirdiği açık kaynak bir Python kütüphanesidir ve dünyada en çok kullanılan kuantum programlama aracıdır. Devre kurmayı, devreyi bilgisayarında simüle etmeyi ve aynı devreyi IBM’in gerçek kuantum bilgisayarlarına göndermeyi sağlar.
Önceki kurslarda devreleri deneme alanında fareyle kurdun. Bu kursta aynı devreleri Python koduyla yazacak, sonuçları kendin hesaplayacak ve kursun sonunda bir devreyi gerçek bir kuantum bilgisayarda çalıştıracaksın. Biraz Python bilmek işini kolaylaştırır ama kodlar satır satır açıklanıyor.
Kurulum
Bilgisayarında güncel bir Python 3 sürümü olması yeterli. Projeyi diğer kütüphanelerden ayırmak için önce bir sanal ortam (virtual environment) açıp Qiskit’i onun içine kurmanı öneririz. Son satır kurulan sürümü yazdırır; bir sayı görüyorsan kurulum tamamdır.
python -m venv .venv
.venv\Scripts\activate # macOS / Linux: source .venv/bin/activate
pip install qiskit
python -c "import qiskit; print(qiskit.__version__)"
İlk devre: Bell durumu
QuantumCircuit(2) iki kübitlik boş bir devre açar; kübitlerin ikisi de |0⟩ ile başlar. Kapılar küçük harfli metotlardır: h, x, y, z, s, t tek kübitlik, cx, cz ve swap iki kübitlik kapılardır. Kapılar yazdığın sırayla uygulanır.
qc.cx(0, 1) yazımında ilk sayı kontrol, ikinci sayı hedef kübittir. measure_all() bütün kübitlere ölçüm ekler ve sonuçları “meas” adlı klasik yazmaca yazar; bu ismi bir sonraki derste kullanacağız.
from qiskit import QuantumCircuit
qc = QuantumCircuit(2) # iki kübit, ikisi de |0⟩ ile başlar
qc.h(0) # q0'ı süperpozisyona sok
qc.cx(0, 1) # q0 kontrol, q1 hedef: dolanıklık
qc.measure_all() # bütün kübitleri ölç
print(qc.draw())
Devreyi çizdirmek
print(qc.draw()) devreyi metin olarak çizer: her satır bir kübittir ve q_0 en üsttedir. Jupyter defterinde qc.draw("mpl") daha güzel bir resim çizer; bunun için pip install matplotlib pylatexenc ile iki kütüphane daha kurman gerekir.
Deneme alanındaki “Bu devrenin Qiskit kodu” düğmesi, kurduğun her devreyi bu dersteki biçimde koda çevirir. Bir devreyi önce fareyle kurup sonra kodunu incelemek Qiskit’i öğrenmenin en hızlı yoludur.
Kendin dene
Bell devresinin altındaki “Bu devrenin Qiskit kodu” düğmesine bas: gördüğün kod bu dersteki kodla aynı. Sonra bir kapı ekle ve koda hangi satırın eklendiğine bak.
Tarayıcıda dene (kurulum yok)Akılda kalsın
- Qiskit, IBM’in açık kaynak Python kuantum programlama kütüphanesidir: pip install qiskit.
- QuantumCircuit(n) n kübitlik bir devre açar; bütün kübitler |0⟩ ile başlar.
- Kapılar qc.h(0), qc.cx(0, 1) gibi metotlarla, yazıldıkları sırayla eklenir; cx’te önce kontrol, sonra hedef yazılır.
- measure_all() bütün kübitleri ölçer, qc.draw() devreyi çizer.
Kendini sına
Qiskit’te q0 kontrol, q1 hedef olan bir CNOT nasıl yazılır?
- qc.cx(1, 0)
- qc.cx(0, 1)
- qc.cnot(q1)
Cevabı göster
qc.cx(0, 1). cx metodunda ilk sayı kontrol, ikinci sayı hedef kübittir: qc.cx(0, 1).