1. Ana sayfa
  2. Algoritmalar
  3. Bell ve iletişim
  4. Bell durumu · Qiskit
Bell ve iletişim · Qiskit

Bell durumu — maksimum dolanıklık için iki kapılık reçete

İki kübitlik bir sistemde, ölçüm sonuçlarının uzaktan da olsa %100 korelasyonlu olduğu dört durumun nasıl üretildiğini, hangi taban'ı kurduklarını ve klasik korelasyondan neden ayrıldığını adım adım inceliyoruz. Reçete tek Hadamard ve tek CNOT'tan ibaret; ancak bu iki adım kuantum bilişimin en sık kullanılan yapı taşlarını ortaya çıkarır.

  • Çerçeve: Qiskit
  • 2 kübit
  • 2 kapı: H, CNOT
  • ~5 dk okuma

Bell durumları nedir? (derinlemesine analiz)

Bell durumları, iki kübitlik bir sistemde oluşturulabilen maksimum düzeyde dolanık dört farklı kuantum durumunu temsil eder. Burada “maksimum dolanıklık” şu anlama gelir: Bir kübit üzerinde yapılan ölçüm, diğer kübitin durumu hakkında — aradaki mesafe ne olursa olsun — anında %100 kesin bilgi verir.

Bu durumlar, iki kübitlik Hilbert uzayında bir ortonormal baz oluşturur. Klasik fizikte bir sistemin durumu parçaların durumlarının toplamıyken; Bell durumlarında bütün hakkında bilgimiz tamdır ancak parçalar (tekil kübitler) hakkında belirsizlik maksimumdur.

Anahtar fikir Tekil kübitlerin gözlem değerleri yarı yarıya rastgele görünür; ne var ki iki kübitin ölçümü birlikte değerlendirildiğinde sonuçlar her zaman birbirini doğrular ya da birbirinin tam zıttı çıkar.

Klasik korelasyondan farkı

Sayfanın girişinde değindiğimiz ayrımın özü şudur: klasik bir korelasyon, bilginin önceden “paketlenmiş” olduğu bir düzendir; Bell dolanıklığı ise ölçüm anına kadar tek tek kübitler için kesin bir renk / değer önceden tanımlı değildir.

EPR tarzı düşünce deneyi Klasik dünyada iki çoraptan birinin rengini biliyorsanız diğeri zaten o renktedir — bilgi önceden belirlenmiştir. Kuantum dünyasında ise kübitler ölçülene kadar klasik anlamda bir “etiketli” değere sahip değildir; ölçüm anında sonuç seçilir ve bu seçim, dolanıklık nedeniyle diğer kübitin istatistikleriyle tutarlı kalır — mesafe veya ışık hızı üzerinden “bilgi gönderimi” ile karıştırılmamalıdır (yerel gizli değişken tabanlı klasik açıklamalar Bell eşitsizlikleriyle ayıklanır).

Dört temel Bell durumu

Matematiksel olarak bu durumlar β x y \ket{\beta_{xy}} şeklinde gösterilir; alttaki dört durum iki kübitlik uzayda standart, dik ve maksimum dolanık bir bazdır. Formüller göz korkutabilir — her birinin altında “bu bize ne söylüyor?” mealini okuyarak hem gösterimi hem sezgiyi birlikte tutabilirsiniz.

Katsayı 1 2 \tfrac{1}{\sqrt{2}} Buradaki 2 \sqrt{2} , durumun normalize olmasını sağlar: olasılıkların toplamı 1 çıkar. Kareleri alındığında ( 1 2 ) 2 = 1 2 \bigl(\tfrac{1}{\sqrt{2}}\bigr)^2 = \tfrac{1}{2} olduğundan, 00 \ket{00} ve 11 \ket{11} (veya ilgili baz çiftleri) için ölçüm olasılıkları matematiksel olarak %50–%50 olur.

  • Φ⁺ · simetrik aynı

    Φ + = 1 2 ( 00 + 11 ) \ket{\Phi^+} = \tfrac{1}{\sqrt{2}}\bigl(\ket{00} + \ket{11}\bigr)

    Meal: Artı işareti, 00 \ket{00} ile 11 \ket{11} terimlerinin aynı fazda toplandığını gösterir — yapıcı girişim. Ölçümde iki kübitin aynı bit değerini verme olasılıkları eşittir; bu iki yol birbirini güçlendirir.

    İki kübit her zaman aynı sonucu verir: 00 ya da 11.

  • Φ⁻ · faz işaretli aynı

    Φ = 1 2 ( 00 11 ) \ket{\Phi^-} = \tfrac{1}{\sqrt{2}}\bigl(\ket{00} - \ket{11}\bigr)

    Meal: Eksi işareti, tek tek ölçüm sonuçlarının dağılımını (yine hep aynı çıkar) değiştirmez; fakat 11 \ket{11} dalının göreli fazını çevirir. Bu fark, kuantum girişim deneylerinde — özellikle faz duyarlı devrelerde — kritik rol oynar.

    Sonuçlar yine aynıdır; ancak 11 dalı bir faz farkı taşır.

  • Ψ⁺ · simetrik zıt

    Ψ + = 1 2 ( 01 + 10 ) \ket{\Psi^+} = \tfrac{1}{\sqrt{2}}\bigl(\ket{01} + \ket{10}\bigr)

    İki kübit her zaman zıt sonucu verir: 01 ya da 10.

  • Ψ⁻ · singlet (anti-simetrik)

    Ψ = 1 2 ( 01 10 ) \ket{\Psi^-} = \tfrac{1}{\sqrt{2}}\bigl(\ket{01} - \ket{10}\bigr)

    Sonuçlar zıttır ve durum anti-simetriktir; rotasyon altında değişmez kaldığı için “singlet” olarak da anılır.

Algoritmanın mantığı: dolanıklık nasıl oluşturulur?

Bir Bell durumu oluşturmak için standart bir “reçete” uygulanır. En yaygın olan |Φ⁺⟩ durumunu üretmek için yalnızca iki temel kapı yeterlidir.

  1. Hadamard kapısı H

    İlk kübiti süperpozisyona alır: kübit artık hem |0⟩ hem de |1⟩ durumundadır. Sistem 1 2 ( 0 + 1 ) 0 \tfrac{1}{\sqrt{2}}\bigl(\ket{0} + \ket{1}\bigr)\otimes\ket{0} haline gelir.

  2. Controlled-NOT CNOT

    İlk kübit kontrol, ikinci kübit hedeftir. Kontrol |1⟩ ise hedef ters çevrilir; aksi hâlde dokunulmaz. Sonuç doğrudan 1 2 ( 00 + 11 ) = Φ + \tfrac{1}{\sqrt{2}}\bigl(\ket{00} + \ket{11}\bigr) = \ket{\Phi^+} .

Kapı kapı durum evrimi

Hadamard ile CNOT arasındaki adım, okuyucunun zihninde netleştiğinde “sihir” yerini cebire bırakır. Aşağıda tam durum vektörü her kapıdan sonra nasıl güncelleniyor?

  • Başlangıç

    İki kübit de 0 \ket{0} : sistem 00 \ket{00} ile başlar (yani 0 q 0 0 q 1 \ket{0}_{q_0} \otimes \ket{0}_{q_1} ).

  • Hadamard sonrası ( q 0 q_0 )

    Yalnızca ilk kübite H H uygulanır; ikinci kübit hâlâ 0 \ket{0} :

    1 2 ( 0 + 1 ) 0 = 1 2 ( 00 + 10 ) \tfrac{1}{\sqrt{2}}\bigl(\ket{0}+\ket{1}\bigr)\otimes\ket{0} = \tfrac{1}{\sqrt{2}}\bigl(\ket{00}+\ket{10}\bigr)

    İlk kübit artık klasik anlamda “0 veya 1” etiketli değildir; ikinci kübit ise henüz dokunulmamıştır.

  • CNOT sonrası ( q 0 q_0 kontrol, q 1 q_1 hedef)

    Kontrol 1 \ket{1} iken hedef çevrilir: 10 \ket{10} terimi 11 \ket{11} olur, 00 \ket{00} olduğu gibi kalır. Sonuç:

    1 2 ( 00 + 11 ) = Φ + \tfrac{1}{\sqrt{2}}\bigl(\ket{00}+\ket{11}\bigr) = \ket{\Phi^+}

Bu iki işlemden sonra kübitler artık bağımsız iki varlık değildir; tek bir sistem olarak davranırlar. Tekil ölçüm istatistikleri rastgele görünse de çift ölçüm her zaman tutarlıdır.

Diğer üç durumu nasıl elde ederiz?

Aynı reçeteye Hadamard'dan önce/sonra X ya da Z eklemek yeterlidir: X hedef kübiti çevirir ve |Ψ⁺⟩'e geçer; Z ilk kübitin fazını çevirir ve |Φ⁻⟩'i verir; ikisi birden uygulandığında |Ψ⁻⟩'e ulaşılır.

Qiskit ile uygulama

Aşağıdaki örnek tek dosyada Bell durumunu kurar, ölçer ve histogramı yazdırır. Devre H ve CNOT ile dolanıklığı oluşturur; ardından AerSimulator üzerinde 1024 atış çalıştırılır.

bell_state.py Python
import numpy as np
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram

# 1. Kuantum Devresini Oluşturma
# 2 Kübit ve 2 Klasik bit (ölçüm sonuçları için) içeren devre
qc = QuantumCircuit(2, 2)

# 2. Algoritma Adımları
# Adım 1: İlk kübiti (q0) süperpozisyona sok
qc.h(0)

# Adım 2: q0 kontrolünde q1'e CNOT uygula (Dolanıklık oluşturma)
qc.cx(0, 1)

# 3. Ölçüm
# Kübitlerdeki veriyi klasik bitlere aktar
qc.measure([0, 1], [0, 1])

# 4. Devreyi Çalıştırma
simulator = AerSimulator()
job = simulator.run(qc, shots=1024)
result = job.result()

# 5. Sonuçları Almak
counts = result.get_counts(qc)
print("\nÖlçüm Sonuçları (00 ve 11 beklenir):")
print(counts)

# Devre Şemasını Çizdirme (Opsiyonel)
# print(qc.draw())
qiskit Aer simülatörü · 1024 shot UTF-8 · LF

Kod analizi · satır satır

Importlar QuantumCircuit, devre nesnesini taşıyan ana sınıftır; AerSimulator ise yerel makinemizde gürültüsüz bir kuantum bilgisayarı taklit eder. numpy bu örnekte doğrudan kullanılmasa da Qiskit ekosistemi neredeyse her durumda diziler ve olasılıklarla çalıştığı için alışkanlık olarak en üste konur. Histogram çizimi isterseniz plot_histogram da hazır bekler — ama terminalde sayıları görmek için onu çağırmak zorunda değiliz.

qc = QuantumCircuit(2, 2) Bu satır "iki kübitlik bir kuantum kayıt + iki klasik bitlik bir not defteri" diyor. Kübitler hesaplamayı yapacak; klasik bitler ise ölçüm sonuçlarının düşeceği yer. Ölçmediğiniz sürece klasik bitler boş kalır, devreyi yeniden çalıştırdığınızda sıfırlanır. İndeksleme her zaman 0'dan başlar (q0, q1).

qc.h(0) — Hadamard q0 başlangıçta |0⟩ durumundadır; Hadamard onu (|0⟩ + |1⟩)/√2 süperpozisyonuna sokar. Yani q0 artık "yarı 0, yarı 1" gibi davranır. Ölçseydik 0 ve 1'i ~%50 görürdük; fakat şu anda ölçmüyoruz, sadece kuantum durumunu kuruyoruz. Bu, devrenin "yakıtı"dır.

qc.cx(0, 1) — CNOT Birinci argüman kontrol (q0), ikincisi hedef (q1). Klasik mantıkta "q0 = 1 ise q1'i ters çevir" demektir; ama q0 burada hem 0 hem 1 durumunda olduğu için CNOT iki olasılığı birden bağlar. Sonuç: kübitler artık ayrı ayrı tanımlanamaz, tek bir dolanık sistem oluşur. Tam olarak şu duruma vardık: |Φ⁺⟩ = (|00⟩ + |11⟩)/√2.

qc.measure([0, 1], [0, 1]) Ölçüm kuantum durumunu klasik bir bilgiye dönüştürür ve süperpozisyonu yıkar (collapse). Listenin ilk argümanı hangi kübitin ölçüleceğini, ikincisi sonucun hangi klasik bite yazılacağını söyler. Ölçümü kasıtlı olarak en sona koyduk: önce dolanıklığı kurup sonra okumak gerekiyor, tersi olsa istatistik çıkmaz.

simulator.run(qc, shots=1024) shots aynı devreyi kaç kez çalıştırıp ölçeceğimizdir; kuantum sonuçları olasılıksal olduğundan bir tek atışın anlamı yoktur, histogram çıkarmamız gerekir. 1024 makul bir başlangıç: hem hızlı, hem de ~%3 hassasiyetle olasılıkları görmeye yeter. Donanımda parayı/zamanı arttıracaksanız önce burayı büyütmek gelir.

result.get_counts(qc) Bize {"00": ~512, "11": ~512} gibi bir sözlük döndürür. Anahtar, klasik bitlerin Qiskit konvansiyonuna göre tersten okunmuş halidir (en sağdaki bit c0); ama Bell devresi simetrik olduğu için bu detayı bu örnekte fark etmezsiniz. 01 veya 10 görüyorsanız ya devre sırası bozulmuştur ya da donanım gürültülüdür.

Histogramda ne görüyoruz? Çıktıda yalnızca 00 ve 11 sütunlarının yükselmesi, sistemin Φ + \ket{\Phi^+} gibi dolanık bir durumda ölçüldüğünün doğrudan bir kanıtıdır: ölçüm çiftleri bağımsız iki rastgele bit gibi dağılmaz. Kübitler birbirinden kopuk olsaydı (ürün durumu), 01 ve 10 kombinasyonlarını da sık görürdük; ideal simülatörde bu sapma sıfırdır — gerçek donanımda ise çoğu zaman küçük bir “kaçak” olarak belirir.
Hızlı deney Koddaki qc.cx(0, 1) satırını başına # koyarak yorum satırına alın. Artık dolanıklık kurulmuyor, sadece q0 süperpozisyonda kalıyor. Çıktıda 00, 01, 10, 11 dördünü de göreceksiniz — ama dağılım simetrik değildir: q0 her atışta yazı/tura gibi davranırken, q1 ölçüm öncesi |0⟩ kalır, dolayısıyla 00 ve 10 ~%50–%50; 01 ve 11 ise ~0 çıkar. Bu fark, CNOT'un dolanıklık yaratmadaki rolünü doğrudan gözler önüne serer.

Çalıştırma için tek bir Python ortamında qiskit ve qiskit-aer paketlerinin kurulu olması yeterlidir; kurulumun tek bakışta özeti ana sayfadaki IDE ve çalıştırma bölümündedir. Gerçek donanımda denemek isterseniz AerSimulator() satırını QiskitRuntimeService().backend("ibm_brisbane") gibi bir IBM cihazıyla değiştirmek; geri kalan akış aynıdır.

Devre ve doğrulama

Aşağıdaki şema iki kübitlik en yalın Bell devresidir: birinci kübite Hadamard, ardından iki kübit arasına CNOT, son olarak iki klasik kayıtla ölçüm.

Bell devresi · |Φ⁺⟩ İstemci tarafı SVG · 2 kapı · 2 ölçüm
q0 q1 c H M M Hadamard CNOT Ölçüm
Doğrulama

Şema |Φ⁺⟩ üretir: Φ + = 1 2 ( 00 + 11 ) \ket{\Phi^+} = \tfrac{1}{\sqrt{2}}\bigl(\ket{00} + \ket{11}\bigr) . Kod çıktısında 00 ve 11 yaklaşık %50–%50 görünür ve gürültüsüz bir simülatörde 01 ile 10 sıfıra yakın kalır — böylece devre ve kod birbirini doğrular.

  • 00 ≈ %50
  • 11 ≈ %50
  • 01 / 10 → 0 (ideal sim.)
  • Beklenen sonuç

    Yeterli atışta histogram yalnızca 00 ve 11 sonuçlarını ~%50 ile gösterir; gürültüsüz bir simülatörde diğer iki sonuç sıfırdır.

  • Pratik not

    Donanımda dekoherens nedeniyle 01 ve 10 küçük oranlarda görünebilir; bu fark “dolanıklık tanığı” olarak kalibrasyon kalitesini ölçer.

  • Alternatif bazlar

    İki kübiti ölçmeden önce her birine bir Hadamard daha uygulamak, ölçümü X tabanı'na çevirir; korelasyon yine korunur, bu CHSH testinde kullanılan farklı tabanların temelidir.

  • İletişim mi?

    Dolanıklık tek başına bilgi taşımaz; klasik bir kanal olmadan mesaj iletilemez. Bu yüzden teleportasyon ve süper yoğun kodlama protokolleri Bell çiftine ek olarak klasik bitleri de gerektirir.