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

Swap testi — durumlara dokunmadan benzerlik ölçmek

İki kuantum durumunu doğrudan ölçmek onları bozar; Swap testi, bir yardımcı kübit ve Fredkin (CSWAP) kapısı yardımıyla iki durumun örtüşmesini klasik bir olasılığa dönüştürür. Sonuç bir mesaj değildir; durumlar arasındaki geometrik mesafenin sayısal bir özetidir.

  • Çerçeve: Qiskit
  • 3 kübit (1 ancilla + 2 karşılaştırılan)
  • 3 kapı: H, CSWAP, H
  • ~6 dk okuma

Swap Testi Nedir? (derinlemesine analiz)

Swap testi, iki kuantum durumunun (state) birbirine olan yakınlığını ölçmek için kullanılan temel bir protokoldür. Bu yakınlığı Türkçede çoğu zaman sadakat ya da benzerlik derecesi diye düşünürüz; İngilizce kaynaklarda aynı rol için fidelity terimi geçer — iki durumun örtüşmesini tek bir sayıya indirger (saf durumlarda bu, sayfadaki olasılık formülündeki |⟨ψ|φ⟩|² ile özdeşleştirilebilir). Klasik dünyada iki dosyayı karşılaştırmak için bitlerini tek tek kontrol ederiz; ne var ki kuantum dünyasında bir durumu doğrudan ölçmek o durumu bozar. Swap testi tam da bu yüzden vardır: iki kaydı tam anlamıyla “okumadan”, aralarındaki örtüşmeyi dolaylı yoldan çıkarmayı hedefler.

Çıktı, karşılaştırılan kübitlerin içeriği değildir; yalnızca yardımcı (ancilla) kübitin ölçüm istatistiğidir. Bu istatistik, iki sistemin geometrik mesafesini klasik bir olasılığa çevirir; sayfa boyunca buna kısaca örtüşme (overlap) diyeceğiz.

Protokolün kabaca akışı

Üç hat vardır: ancilla (yardımcı kübit) ve iki karşılaştırılacak kayıt. Devre önce ancilla üzerinde süperpozisyon kurar; ardından kontrollü yer değiştirme (CSWAP / Fredkin) ile iki kaydı ancilla’nın durumuna bağlı şekilde birbirine “dokundurur”; son olarak yeniden girişim kurup yalnızca yardımcı kübiti ölçersiniz. Kapı sırası, olasılık formülü ve durum evriminin tamamını matematiksel temel ile reçete bölümlerinde veriyoruz; burada amaç yalnızca iskeleti oturtmaktır.

Tek bir çalıştırmada ancilla klasik olarak 0 veya 1 döner; güvenilir bir P(0) için deneyi çok kez tekrarlayıp histogram biriktirmek gerekir (sayfadaki Qiskit örneği bunu yapar). Böylece geometrik örtüşme, klasik bir istatistiğe “taşınmış” olur.

Anahtar fikir Swap testi “aynı mı?” sorusuna doğrudan evet/hayır yanıt vermez; iki durumun ne kadar üst üste bindiğini sayısal olarak söyler. Aynı durumlarda yardımcı kübitin ölçümü tutarlı biçimde 0 çıkar; tamamen dik durumlarda ise 0 ile 1 yaklaşık %50–%50 dağılır.

Neden kullanılır?

Örneğin kuantum makine öğrenmesinde — veriyi kuantum durumlarına kodlayıp kararı çekirdek (kernel) benzerlikleriyle veren sınıflandırma ve kümeleme modellerinde — ve kuantum hata düzeltme kodlarında üç tipik kullanımı vardır:

  • Kuantum benzerlik ölçümü

    İki kuantum verisi arasındaki mesafeyi sayısal bir overlap'e dönüştürmek; kuantum kernel yöntemlerinin temel taşıdır.

  • Durum karşılaştırma

    Bilinmeyen bir durumun, hazırlanmış bir referans duruma ne kadar yakın olduğunu — durumu okumadan — değerlendirmek.

  • Girişim ölçümü

    İki durumun üst üste binme (overlap) değerini Hadamard girişimi üzerinden hesaplamak.

Mesaj iletmez Swap testi yalnızca geometrik mesafeyi ölçer: iki durumun ne kadar benzeştiğini tek bir sayıya indirger. Bu sayının “yüksek” ya da “düşük” olması, |ψ⟩ ve |ϕ⟩ durumlarının birbirine yakınlığıyla ilgilidir; durumların içeriğini (hangi genlikler, hangi bit dizileri) size vermez.

En kritik nokta: Swap testinin çıktısı yalnızca ancilla ölçüm istatistiğidir. Karşılaştırılan kayıtlar (q1, q2) ölçülmediği için bu devre “uzaktan veri okuma” ya da “anında haberleşme” gibi bir kanal oluşturmaz. Sonucu yorumlamak için hâlâ klasik bir raporlama (klasik kanal) gerekir.

Dolanıklıkla karıştırmamak için pratik kural: Eğer ölçüm çıktısı size bir mesajın bitlerini değil, yalnızca P(0) gibi bir olasılığı veriyorsa, bu bir benzerlik ölçümüdür; iletişim protokolü değildir.

Matematiksel Temel

Swap testinde karşılaştırılacak iki kayıt doğrudan ölçülmez; araya bir Fredkin (CSWAP) ve onu denetleyecek yardımcı (ancilla) kübit girer. Karşılaştırmak istediğimiz durumlar ψ \ket{\psi} ve ϕ \ket{\phi} ; yardımcı hat 0 \ket{0} 'dan başlar. Aşağıdaki üç kapı, önce bu yardımcıyı iki klasik kontrol senaryosunun süperpozisyonuna sokar, sonra iki kaydı koşullu olarak yer değiştirir, en sonda girişimle ölçülebilir bir olasılığa bağlar.

Sezgi Yardımcı kübiti bir “kuantum hakem” olarak düşünün: iki yarışmacıyı ( ψ \ket{\psi} , ϕ \ket{\phi} ) doğrudan sınamaz; fakat CSWAP ile “yer değiştirildi mi?” sorusunu iki dalda paralel işletir. İkinci Hadamard bu dalları birleştirince, uyum (overlap) yüksekse yapıcı, düşükse yıkıcı girişim oluşur — ölçüm tek bir skaler olasılığa iner.
  1. Yardımcıya Hadamard H

    Fizik · matematik: Bu adımdaki Hadamard, Bell kurulumundaki gibi “ilk veri kübitini karıştırma” işi değildir; H yalnızca yardımcı hatta uygulanır, ψ \ket{\psi} ve ϕ \ket{\phi} kayıtları aynen kalır. Amacımız, Fredkin kapısı için klasikteki “kontrol 0 / kontrol 1” ayrımının kuantum süperpozisyonunu hazırlamaktır: bir dalda yer değiştirme tetiklenmeyecek, ötekinde tetiklenecek. Yardımcı kübit böylece 1 2 ( 0 + 1 ) \tfrac{1}{\sqrt{2}}\bigl(\ket{0}+\ket{1}\bigr) haline gelir — üçüncü hat, henüz iki kaydı karşılaştırmamış olsa da onları eşzamanlı olarak iki farklı kontrol politikasıyla denetlemeye hazırdır.

    Düz lisan: Önce yalnızca hakemin elinde iki komut kartı vardır: “değiştirmeden izle” ve “sırayı çevir”; hangisinin uygulanacağına henüz tek klasik karar verilmemiştir. İki yarışmacının kartları bu turda dokunulmadan kalır.

  2. Fredkin (CSWAP) CSWAP

    Fizik · matematik: Fredkin kapısı yardımcıyı kontrol, iki kaydı da yer değiştirilen çift olarak kullanır: yardımcı 1 \ket{1} iken ψ \ket{\psi} ile ϕ \ket{\phi} yer değiştirir; 0 \ket{0} dalında kayıtlar olduğu gibi kalır. Böylece üç hat birbirine dolanır: artık durum genelde ψ ⊗ φ çarpımı olarak yazılamaz; çünkü yardımcının iki dalı, aynı kübit çiftine farklı sıralama seçenekleri bağlar. Örtüşme bilgisi tam da bu “sırayı değiştirmek bir şey değiştirir mi?” sorusunun genliklerine kodlanır.

    Düz lisan: Ortadaki kapı şunu sorar: iki durumu yer değiştirerek yazarsak evren farklılaşır mı? Klasik mantıkta ya evet ya hayır; burada iki cevap aynı anda işlenir ve sonradan birbirine karıştırılır.

  3. İkinci Hadamard ve ölçüm H

    Fizik · matematik: İkinci H H , yardımcının 0 \ket{0} ve 1 \ket{1} bileşenlerini yeniden karıştırır; CSWAP sonrası oluşan iki dalın göreli fazı tek bir genlikte girişir. Değiş-tokuş altında iki durum çok benzer ise yapıcı girişim baskın çıkar ve 0 \ket{0} ölçümü daha olası hale gelir; dik durumlarda ise olasılık 1 2 \tfrac{1}{2} 'ye yaklaşır. Ölçüm, kuantum genliklerini klasik bir overlap istatistiğine indirger; kayıtların kendisi doğrudan okunmaz.

    Düz lisan: Son düğme, hakemin iki komutunu yeniden üst üste bindirir; “0 gördüm” çıktısı, iki durumun ne kadar çakıştığının tek sayılı özetidir — ama ψ ile φ’nin bit dizilerini size fısıldamaz.

Matematiksel “meali”

Yardımcı kübitin 0 \ket{0} ölçülme olasılığı tek bir kapalı formdadır:

P ( 0 ) = 1 2 + 1 2 ψ ϕ 2 P(0) = \tfrac{1}{2} + \tfrac{1}{2}\,\bigl|\langle\psi|\phi\rangle\bigr|^2

Geometrik bakış Bu formül, iki kuantum vektörü arasındaki açının kosinüs karesini hesaplamaya benzer. Vektörler aynı yöne bakıyorsa (aynı durumlar) aralarındaki açı 0 0 'dır, kosinüs 1 1 'dir ve örtüşme tamdır; birbirine dik (90°) iseler ortak yönleri yoktur, kosinüs 0 0 'dır ve örtüşme sıfırdır. Aradaki her açı, 0 0 ile 1 1 arasında bir kısmi benzerliğe karşılık gelir.

  • Aynı durumlar

    ψ = ϕ       P ( 0 ) = 1 \ket{\psi} = \ket{\phi} \;\Rightarrow\; P(0) = 1

    Meal: Overlap ψ ϕ 2 = 1 |\langle\psi|\phi\rangle|^2 = 1 olduğundan yardımcı kübit her zaman 0 ölçülür; histogramda yalnızca 0 sütunu görünür.

  • Tamamen dik durumlar

    ψ ϕ = 0       P ( 0 ) = 1 2 \langle\psi|\phi\rangle = 0 \;\Rightarrow\; P(0) = \tfrac{1}{2}

    Meal: Overlap sıfırdır; yardımcı kübit 0 ve 1'i ~%50–%50 dağıtır. Aradaki her ara değer kısmi benzerliğe karşılık gelir.

Geri çevirme formülü Ölçtüğümüz P ( 0 ) P(0) 'dan örtüşmeyi geri okumak için ψ ϕ 2 = 2 P ( 0 ) 1 |\langle\psi|\phi\rangle|^2 = 2P(0) - 1 . Kod tarafında overlap = 2 * p0 - 1 satırı tam olarak bunu yapar.

Algoritmanın Reçetesi

Üç kapılı tensör uzayında hangi terimin hangi aşamada belirdiğini görmek, P ( 0 ) P(0) formülünün neden iç çarpıma bağlı olduğunu yerinde gösterir. Yapı dört evrede özetlenir; üstteki matematiksel temel ile birlikte okuyun.

  • Hazırlık

    Fizik: Üç hat başlangıçta ayrışıktır: yardımcı bilinen 0 \ket{0} , iki kayıt karşılaştırılacak ama henüz tek tek ölçülmeyecek durumlardır — bunlar sırasıyla ψ \ket{\psi} ve ϕ \ket{\phi} ile bir ancilla kübit ( 0 \ket{0} ) belirlenir. Sistem 0 ψ ϕ \ket{0}\otimes\ket{\psi}\otimes\ket{\phi} ile başlar.

    Düz lisan: Üç şeritten biri “karar verecek hakem”, iki şerit ise henüz dokunulmamış iki numunedir; çarpım durumu, üçünün birlikte yazılmasıdır.

  • Hadamard sonrası (ancilla)

    Fizik: Bell kurulumunda olduğu gibi iki veri kübitini süperpozisyona atmıyoruz; burada tek yapılan, yardımcının klasik “hangi CSWAP politikası?” ikilisini kuantum süperpozisyonda taşımasıdır — ψ ile φ’nin genlikleri bu satırda değişmez. Yalnızca yardımcı kübite H H uygulanır; karşılaştırılan iki kayıt değişmez:

    1 2 ( 0 + 1 ) ψ ϕ \tfrac{1}{\sqrt{2}}\bigl(\ket{0}+\ket{1}\bigr)\otimes\ket{\psi}\otimes\ket{\phi}

    Düz lisan: Hakem iki komutu birden tutuyor; iki veri çizgisi ise aynı ψ ve φ ile devam ediyor — henüz yer değiştirme yok.

  • Fredkin (CSWAP) sonrası

    Fizik: Yer değiştirme işlemi SWAP olduğu için, iki kayıt özdeş veya çok yakın ise bazı genliklerde “yer değiştirmek hiçbir şey değiştirmez”; farklı iseler sıra önem kazanır ve üç hat dolanık hale gelir. Ancilla 1 \ket{1} iken ψ \ket{\psi} ile ϕ \ket{\phi} yer değiştirir; 0 \ket{0} iken sistem dokunulmadan kalır. Sistem ikiye dallanır:

    1 2 ( 0 ψ ϕ + 1 ϕ ψ ) \tfrac{1}{\sqrt{2}}\bigl(\ket{0}\ket{\psi}\ket{\phi}+\ket{1}\ket{\phi}\ket{\psi}\bigr)

    Düz lisan: Hakemin tek kolunda dünya eski sırada (ψ sonra φ), ötekinde yer değiştirilmiş sırada (φ sonra ψ) yaşanıyor; üç hat artık tek tek düşünülemeyecek kadar bağlıdır.

  • Girişim ve çöküş (ikinci H H )

    Fizik: İkinci H H , Bell örneğindeki ikinci kapıdan farklı olarak veri kübitlerine değil yine yardımcıya dokunur; Fredkin’den gelen iki dal burada belirli faz ilişkisiyle girişir. 0 \ket{0} ölçülmesinin olasılığı doğrudan iki durumun örtüşmesine bağlanır:

    P ( 0 ) = 1 2 + 1 2 ψ ϕ 2 P(0) = \tfrac{1}{2} + \tfrac{1}{2}\,\bigl|\langle\psi|\phi\rangle\bigr|^2

    Düz lisan: İki olası dünya çizgisinin olasılıkları tek bir “0 mı 1 mi?” sorusunda birleşir; 0’un şansı yüksekse ψ ile φ birbirine yakın, düşükse uzak sayılır — formül bunun tam hesabıdır.

Qiskit ile Uygulama

Aşağıdaki örnek uçtan uca bir Swap testi kurar: yardımcı kübiti hazırlar, iki kübiti dik bir konfigürasyona getirir, CSWAP ile girişimi tetikler ve ölçtüğü P(0)'dan overlap'i geri okur. AerSimulator üzerinde 2048 atış çalıştırılır.

swap_test.py Python
import numpy as np
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator

# 1. Devre Kurulumu: 1 yardımcı + 2 karşılaştırılacak + 1 klasik bit
qc = QuantumCircuit(3, 1)

# Karşılaştırılacak kübitleri hazırla:
# q1 = |0>, q2 = |1> (birbirine dik durumlar)
qc.x(2)
qc.barrier()

# 2. Swap Testi Başlıyor
qc.h(0)           # Yardımcı kübiti süperpozisyona al
qc.cswap(0, 1, 2) # Fredkin Kapısı (Controlled-SWAP)
qc.h(0)           # Girişimi oluştur

# 3. Ölçüm
qc.measure(0, 0)

# 4. Çalıştırma ve Sonuç
simulator = AerSimulator()
job = simulator.run(qc, shots=2048)
counts = job.result().get_counts()

print("\nSwap Testi Sonuçları:")
print(counts)

# Örtüşme (Overlap) Hesaplama: ||^2 = 2*P(0) - 1
p0 = counts.get('0', 0) / 2048
overlap = 2 * p0 - 1
print(f"Hesaplanan Benzerlik (Overlap): {max(0, overlap):.4f}")
qiskit Aer simülatörü · 2048 shot UTF-8 · LF

Kod analizi · satır satır

Importlar QuantumCircuit devre nesnemizi tutar; AerSimulator yerel makinemizde gürültüsüz bir kuantum donanımı taklit eder. numpy bu örnekte küçük bir hesap için (olasılık → overlap dönüşümü) kullanılır; daha karmaşık durum hazırlıklarında dizilerle çalışmak için Qiskit ile kol kola gider.

qc = QuantumCircuit(3, 1) Kayıt mimarisi şu: üç kübit ama yalnızca bir klasik bit. Üç kübitin ilki yardımcı (ancilla, q0); kalan ikisi karşılaştıracağımız durumları (q1, q2) tutar. Tek klasik bit, sadece ancillayı ölçeceğimiz için yeterlidir; karşılaştırılan iki kübit hiç ölçülmez — kuantum bilgileri korunur.

qc.x(2) Karşılaştırma için iki bilinen, kasten dik durum hazırlıyoruz: |0⟩ (q1, varsayılan) ve |1⟩ (q2, X kapısıyla çevrildi). Bu seçim algoritmanın doğru çalıştığını ölçmek için bir "kalibrasyon"dur: dik durumlarda overlap teorik olarak 0 olmalı; kod bunu doğruluyor mu kontrol ederiz. Üst satıra # koyarsanız iki taraf da |0⟩ kalır → aynı durumlar.

qc.barrier() Hesaplamaya etkisi yok; sadece görsel ve mantıksal bir ayraçtır. Devreyi qc.draw() ile çizdirdiğinizde "hazırlık", "swap testi" ve "ölçüm" aşamaları arasına dikey çizgi koyar. Optimizasyon (transpiler) sırasında kapıların barrier'ın iki tarafı arasında yer değiştirmesini de engeller — kontrollü deneylerde işe yarar.

qc.h(0) — ilk Hadamard Ancilla'yı (|0⟩ + |1⟩)/√2 süperpozisyonuna sokar. Bu, "kontrol kübitini her iki olasılıkta birden çalıştır" demektir; CSWAP'in iki farklı dünyayı (swap olmuş / olmamış) aynı anda üretmesini mümkün kılar. Algoritmanın klasik bir döngüden farkı tam olarak buradadır.

qc.cswap(0, 1, 2) — Fredkin Bu devrenin kalbi. Ancilla |0⟩ ise q1/q2 olduğu gibi kalır; |1⟩ ise yer değiştirirler. Ancilla süperpozisyonda olduğu için iki dünya birden gerçekleşir → tüm bu işlemden sonra ancilla'nın durumu, q1 ile q2'nin "ne kadar benzediğine" bağlı bir girişim (interference) deseni taşır.

qc.h(0) — ikinci Hadamard İlk Hadamard, ancillayı süperpozisyona soktu; ikincisi onu yine ölçülebilir bir tabana çevirir, ama bu sefer iki dünyanın girişiminin bilgisi taşınmış olur. Bunu fiziksel olarak Mach-Zehnder interferometresine benzetebilirsiniz: ışın ayırıcıdan geçirilip yine ayırıcıya geri gönderilir; sonuç, iki yolun ne kadar örtüştüğüne bağlıdır. Burada iki "yol" = q1/q2'nin değişip değişmemiş hâli.

qc.measure(0, 0) Sadece ancilla ölçülür. q1 ve q2'ye dokunulmaz; durumları korunur, dolayısıyla başka bir devrede tekrar kullanılabilirler. Ölçüm 0 verirse iki durum benzer; 1 verirse farklı yönde. Bir tek atış az bilgi taşır; istatistik için çok atış gerek.

shots=2048 Bell devresinde 1024 kullanmıştık; burada 2048 verdik çünkü overlap iki küçük olasılığın farkını okur. Daha fazla shot, hassasiyeti yaklaşık 1 / N 1/\sqrt{N} ile geliştirir: 2048, ~%2 hassasiyet sunar. Donanımda paranın/zamanın izin verdiği ölçüde shot artırmak, overlap tahminini yumuşatır.

p0 = counts.get('0', 0) / 2048 Klasik bir bölme: ancillanın 0 görünme oranı. counts.get('0', 0)'in iki avantajı var: anahtar yoksa (örn. tüm atışlar 1) 0 döner ve KeyError atılmaz; ayrıca okunması kolaydır.

overlap = 2 * p0 - 1 Tüm matematiği tek satıra indiren formül. p0 = (1 + |⟨ψ|φ⟩|²)/2 teorik ilişkisini geri çeviririz. Aynı durum (overlap = 1) için p0 = 1.0, dik durum (overlap = 0) için p0 = 0.5 beklenir. Sonlu shot ve gürültüde küçük negatife düşebilir; max(0, overlap) ile bunu fiziksel aralıkta kırparız.

Hızlı deney Koddaki qc.x(2) satırını başına # koyarak yorum satırına alın ve tekrar çalıştırın. İki kübit de 0 \ket{0} olduğu için yardımcı kübit yalnızca 0 sonucunu vermeye başlar; overlap ise 1 \approx 1 çıkar. Bu, algoritmanın iki durumun da aynı 0 \ket{0} olduğunu başarıyla fark ettiğinin doğrudan kanıtıdır.
Deep Dive · Kuantum kernel

Swap testi, Kuantum Kernel Metotları'nın temel hesap birimidir. Klasik bir SVM / kernel modelinde benzerlik (kernel) fonksiyonu, iki örneğin iç çarpımı ile tanımlanır; kuantum kernel ise iki örneği farklı kuantum durumlarına kodlar ( x ψ ( x ) x \to \ket{\psi(x)} ) ve aralarındaki örtüşmeyi ψ ( x 1 ) ψ ( x 2 ) 2 |\langle\psi(x_1)|\psi(x_2)\rangle|^2 olarak Swap testi ile ölçer.

Bu yaklaşım, klasik benzerlik fonksiyonlarıyla erişilemeyen yüksek boyutlu özellik uzaylarında — özellikle küçük veri rejimlerinde — alternatif sınıflandırma ve kümeleme stratejileri önerir.

Pratik notlar · çalıştırma ve donanım

Çalıştırma için qiskit ve qiskit-aer paketleri yeterlidir; kurulumun özeti ana sayfadaki IDE ve çalıştırma bölümündedir. Gerçek donanımda denemek için AerSimulator() satırını QiskitRuntimeService().backend("ibm_brisbane") gibi bir IBM cihazıyla değiştirin; Fredkin kapısı pahalı olduğu için NISQ donanımında beklenen overlap'tan ~%5–%10 sapma normaldir.

Aynı Devre (İki Temsil)

Qiskit print(qc) çıktısı üç kuantum hattını ve tek klasik kaydı soldan sağa sıralar; sütunu barrier() ile eklenen ayraçtır—hesaplamayı değiştirmez, görsel/denetim düzenini netleştirir. Sağdaki SVG, aşağıdaki geniş şema ile aynı geometriyi takip eder; üst sıradaki M0…M5 etiketleri terminaldeki ana zaman dilimlerine karşılık gelir.

terminal

print(qc) çıktısı

           ░ ┌───┐   ┌───┐┌─┐
q_0: ──────░─┤ H ├─■─┤ H ├┤M├
           ░ └───┘ │ └───┘└╥┘
q_1: ──────░───────X───────╫─
     ┌───┐ ░       │       ║ 
q_2: ┤ X ├─░───────X───────╫─
     └───┘ ░               ║ 
c: 1/══════════════════════╩═
                           0 

Moment 0 · X(q2) Moment 1 · bariyer Moment 2 · H(a) Moment 3 · CSWAP Moment 4 · H(a) Moment 5 · ölçüm

svg

Premium devre çizimi

M0 M1 M2 M3 M4 M5 a q1 q2 Hazırlık X q2 → |1⟩ H Hadamard Fredkin (CSWAP) H M Ölçüm

renk · kapı tipi çizgi · kontrol-hedef

Canlı devre paneli bu sayfada yok. Aşağıdaki terminal ve SVG (veya özet şema) tam referans görselidir; tarayıcıda simülatör veya örnek histogram çalışmaz. Canlı devre, moment turu ve örnek sayım şu an şu sayfalarda: Bell · Qiskit, GHZ · Qiskit, Bell · Cirq, QRNG · Qiskit, Süper yoğun kodlama, BB84, Teleportasyon, Bernstein–Vazirani ve Grover.
Ne öğreniyoruz? Üç hatlı çıktıda Fredkin bağlantısı ve ancilla üzerindeki çift H dizisi tek bakışta izlenir; klasik hat yalnızca yardımcı kübit ölçümünü taşır. Aynı iki panel düzenini iki kübitlik Bell örneğinde de kullandık: Bell durumu · iki temsil · Qiskit.

Devre ve Doğrulama

Bu şema, 5 · Aynı Devre (İki Temsil) bölümündeki akışı korur; sol uçta, kodun qc.x(2) satırını yansıtan turuncu çerçeveli minik X kapısı q2'yi 1 \ket{1} durumuna hazırlar — bu sayede karşılaştırılan iki durum dik (orthogonal) hâle gelir. Hemen ardından ancilla'ya H H , Fredkin (mor kontrol noktası + iki “×”), ikinci H H ve ölçüm gelir.

Swap testi · Fredkin merkezli İstemci tarafı SVG · 1 ancilla + 2 hedef · 1 ölçüm
a q1 q2 Hazırlık X q2 → |1⟩ H Hadamard Fredkin (CSWAP) H M Ölçüm
Doğrulama

Yardımcı kübit için: P ( 0 ) = 1 2 + 1 2 ψ ϕ 2 P(0) = \tfrac{1}{2} + \tfrac{1}{2}|\langle\psi|\phi\rangle|^2 . Örnek kodda ψ = 0 \ket{\psi} = \ket{0} , ϕ = 1 \ket{\phi} = \ket{1} olduğundan overlap = 0 = 0 ve P ( 0 ) 0,5 P(0) \approx 0{,}5 . Histogram 0 ve 1'i ~%50–%50 dağıtır.

  • 0 ≈ %50
  • 1 ≈ %50
  • Overlap = 2P(0) − 1 ≈ 0

Şemayı adım adım oku

  1. 1

    İki durumu hazırla

    Karşılaştıracağımız durumlar q1 ve q2 üzerinde durur: |ψ⟩ ve |ϕ⟩. Bu örnekte q1 varsayılan |0⟩ kalır; q2 ise X ile |1⟩ yapılır.

  2. 2

    Ancilla’ya Hadamard uygula

    Üstteki ancilla (a) üzerine H gelir. Bu, ancilla’yı “swap yap / swap yapma” seçeneklerini aynı anda taşıyan bir anahtar haline getirir.

  3. 3

    Fredkin (CSWAP) ile kıyaslamayı göm

    Ortadaki Fredkin bloğu (CSWAP), ancilla 1 ise q1↔q2 değiştirir; ancilla 0 ise dokunmaz. İki durum ne kadar benzerse, “swap” ve “no-swap” kolları o kadar iyi üst üste biner.

  4. 4

    Son Hadamard + ölçüm: tek bitlik sonuç

    Ancilla’ya ikinci H uygulanır ve sadece ancilla ölçülür. 0 oranı yüksekse iki durum daha benzerdir. Dik durumlarda 0/1 yaklaşık %50–%50 görünür.

  • Aynı durumda ne olur?

    Kodda qc.x(2) satırını silerseniz iki kübit de 0 \ket{0} olur; histogram yalnızca 0 gösterir, overlap 1 \approx 1 .

  • Atış sayısı önemlidir

    Overlap istatistiksel bir tahmindir. Düşük atışta 2P(0) − 1 küçük negatif değerler verebilir; örnek kod max(0, overlap) ile bunu kırpar.

  • Çoklu kübit

    İki kayıt birden fazla kübitten oluşuyorsa Fredkin, kübit-kübit eşleşmeleri için paralel CSWAP'lar olarak genişletilir; matematiksel form P ( 0 ) P(0) aynıdır.

  • Donanımda maliyet · NISQ

    Fredkin doğal kapı kümesinde olmadığı için ayrıştırma sonrası birden çok iki kübitlik kapıya açılır; bu derinlik artışı, NISQ donanımlarda gürültü sınırını belirler. Bu yüzden gerçek cihazda mükemmel bir 0,50 dağılımı yerine 0,480,52 arası küçük sapmalar görmek normaldir; bu sapmalar cihazın hata oranı (error rate) hakkında dolaylı bir okumadır.