Ayrık zamanlı kuantum yürüyüşü — coin · döngüsel çizgi · girişim
Bu sayfadaki minimal DTQW modeli, bir coin kübiti ile iki kübitlik konum kaydını birlikte taşır: önce coin üzerinde Hadamard ile yön süperpozisyonu kurulur, ardından konum üzerinde döngüsel çizgide bir adım kaydırma uygulanır. Kavramsal çerçeve §1, tek adımın operatör sırası ve konum uzayı §2, Qiskit ile gerçekleme ve ölçüm ise §3–4 bölümlerindedir.
Ayrık zamanlı kuantum yürüyüşü (DTQW) nedir?
Klasik rastgele yürüyüşte bir adımda zar atılır ve konum buna göre güncellenir; olasılık dağılımı zamanla genellikle Gaussian’a yaklaşan bir difüzyon tablosu üretir. Kuantum yürüyüşünde ise coin genelde bir kübit (veya daha büyük bir kayıt) olarak tutulur ve her adımda önce üniter bir coin operatörü, sonra konumu taşıyan bir kaydırma (shift) operatörü uygulanır. Süperpozisyon ve girişim nedeniyle konum olasılığı profili klasik difüzyondan farklılaşabilir — bazı graflarda kuantum arama ve örnekleme bağlamında avantajlar analiz edilir.
Ayrık zaman ne demek?
DTQW adındaki “ayrık zaman”, zamanın sürekli bir parametre yerine t = 0, 1, 2, … sayacıyla ilerlediğini ifade eder; her tik bir ünite evrime karşılık gelir. Sürekli zaman kuantum yürüyüşünde ise başka bir matematiksel çerçeve (Hamiltonyen üzerinden) kullanılır — bu sayfa yalnızca ayrık zaman biçimine odaklanır (8 · Pratik notlar).
Klasik taraf: olasılık akışı
Bir çok basit klasik modelde konum, bir Markov zinciriyle güncellenir: bir sonraki dağılım, geçiş matrisi ile öncekinden türetilir ve her adımda olasılık vektörü güncellenir. Uzun zaman davranışında genişleme genellikle difüzyon düşüncesine yaklaşır — bu yüzden “Gaussian’a yaklaşan difüzyon tablosu” ifadesi bir özet olarak tutulmuştur.
Kuantum taraf: genlik ve girişim
Ölçüm yapılmadan önce sistem birçok yolun genliğini aynı anda taşıyabilir; konum olasılığı Born kuralıyla genliklerin mutlak karesinden okunur, ama genlikler birleşirken girişim (eksi işaretler, faz farkları) önem kazanır. Bu nedenle konum üzerindeki olasılık profili, aynı graf üzerinde bile klasik difüzyonla özdeş olmak zorunda değildir; grafa ve coin seçimine bağlı olarak yayılım rejimi klasik beklentiden belirgin şekilde sapabilir.
Bu sayfadaki rol dağılımı
Kavramsal çerçeve burada kalır; tek adımın operatör sırası ve döngüsel çizgi tanımı 2 · Bir adımın iskeleti bölümündedir. Bu dosya eğitim odaklı bir çekirdek sunar: dört düğümlü döngüsel çizgi (Z₄), Hadamard coin ve tek kaydırma adımı. Ölçüm öncesi evrim tamamen üniterdir; ölçüm yapılınca klasik bir sonuç örneği üretilir. QRNG · Qiskit tek ölçümde bit dizisi çıkarma ekseninde durur; burada ise önce çok kübitli ünite bir adım, sonra ölçüm zinciri anlatılır.
Bir adımın iskeleti
Hilbert uzayı ℋ = ℋc ⊗ ℋp biçiminde düşünülür: ℋc coin uzayı (dim ℋc = 2), ℋp ise konum uzayı — burada iki kübit ile kodlanan dört düğüm (dim ℋp = 4). Bütün sistem için dim ℋ = 2 × 4 = 8; bu yüzden tek adım genel olarak 8 × 8 bir ünite ile temsil edilir.
Konum etiketi ve tensör sırası
Konumu tam sayı etiketi x ∈ {0, 1, 2, 3} olarak düşünün; dört düğüm döngüsel çizgide sırayla bağlanır. İki kübitlik konum kaydı bu etiketi hesaplama tabanında kodlar — örnek dosyada sekiz boyutlu taban indeksinin bitleri, coin ve konum tellerine nasıl ayrıldığı 4 · Qiskit kod örneği içindeki cyclic_line_shift_unitary döngüsüyle sabittir; böylece sembolik x ile kod satırları çelişmez. Tensör sırası “coin ⊗ konum” seçilmiştir; Qiskit çiziminde q0 coin, q1 ve q2 konum kabloları olarak görünür (6 · Aynı devre ile uyumlu). Başlangıç konumu |00⟩ etiketi x = 0 düğümüne karşılık gelir.
Tek adımın operatör sırası
Yaygın yazılış:
Uadım = S · (C ⊗ Ip)
Burada çarpım “önce sağdaki, sonra soldaki” kuralıyla okunur: (C ⊗ Ip) yalnızca coin kübitine C uygular, konumu olduğu gibi bırakır; bu örnekte C = H (Hadamard). Ardından S, hem coin hem konum üzerinde tanımlı kaydırma ünitesidir — coin’in hesaplama tabanı projeksiyonuna göre konum etiketini kaydırır; çizgi döngüsel olduğu için artış ve azalış mod 4 ile sarınır.
Özet kurallar: coin |0⟩ iken konum bir adım ileri (x ↦ x+1 (mod 4)), coin |1⟩ iken bir adım geri (x ↦ x−1 (mod 4)). Böylece S, sekiz boyutlu uzayda bir permütasyon matrisi olarak seçilir (üniter ve gerçel). Bu eşlemenin tabloyla kurulması ve devreye yazılması 3 · Qiskit boru hattı ve 4 · Qiskit kod örneği bölümlerindedir — §2 yalnızca matematiksel iskeleti sabitler.
Başlangıç durumu ve çoklu adım
Başlangıç |ψ(0)⟩ = |0⟩c ⊗ |00⟩p seçilir: ürün durumu — coin ve konum hesaplama tabanında kesin, dolanıklık taşımaz. Çoklu zaman için aynı blok yinelenir: |ψ(T)⟩ = UadımT |ψ(0)⟩. Bu sayfa tek adımın iç yapısını şeffaf tutar; döngü ile çok adım çalıştırma notu 8 · Pratik notlar içindedir.
Qiskit boru hattı
Bu bölüm §2’deki tek adım tarifini Qiskit’in çalışma modeline çevirir: hangi soyut blokların hangi çalışma zamanı davranışına karşılık geldiği ve ölçümün yürüyüş okumasında neyi temsil ettiği — satır satır komut listesi 4 · Qiskit kod örneği, satır yorumu ise 5 · Kod analizi bölümlerindedir.
Tarife göre soyut akış
DTQW bir zaman diliminde iki soyut eylem taşır: önce coin üzerinde yön süperpozisyonu hazırlanır, ardından graf üzerinde bir adım kaydırma uygulanır. Qiskit modelinde bu, devre nesnesine sırayla eklenen iki mantıksal parçaya karşılık gelir: yerel coin kapısı ve konumu coin durumuna bağlı güncelleyen küresel bir “yürüyüş” adımı. Ölçüm eklendiğinde hem coin hem konum klasik kayda yazılır — böylece tek denemede “hangi yön bileşeni ve hangi konum etiketi gözlemlendi?” sorusu birlikte yanıtlanır.
Çalışma zamanı: örnekleme mi, durum mu?
Bu örnek örnekleyici bir arka uç düşünür: çok kez tekrarlanan çalıştırmada histogram, konum (ve dolayısıyla marjinal yürüyüş istatistiği) hakkında bilgi verir; tek tekrarda ise tek bir klasik sonuç çifti üretilir. Tam durum vektörü ile çalışmak aynı üniteyi analitik olarak izlemek içindir — farklı soru, farklı araç; burada öğretim çıktısı örnekleme tarafına bağlanır (7 · Demo ve doğrulama çok ve tek örnek beklentisini sabitler).
Tek blok ünite yerine ne olabilirdi?
Aynı matematiksel kaydırma, çok kübitli kontrollü artırma veya azaltma ağlarıyla da inşa edilebilir; graf büyüdükçe kapı sayısı ve geçiş haritası maliyeti belirginleşir. Tek ünite bloğu, bu sayfadaki bir adımın öznesini tek çizimde görmeyi kolaylaştırır; üretim donanımında böylesi bir blok nadiren tek yerel kapıdır — transpile ve bağlantı kısıtları ayrı mühendislik konusudur.
Tekrarlanabilirlik ve fiziksel çalıştırma
Simülatörde sabit tohum, iç örnekleme akışını bağlar; aynı devre ve tohumla aynı klasik sonuç zinciri yeniden üretilebilir. Gerçek kuantum donanımında adımın klasik çıktısı bu anlamda aynı deterministik kalıba oturmaz; gürültü ve kalibrasyon eklenir — bu içerik Aer ile kavramsal iskeleti sabitlediği sürece tutarlıdır.
Qiskit kod örneği
Aşağıdaki blok tek adımı somutlar: Hadamard coin, ardından kaydırma ünitesi, klasik ölçüm ve sabit tohumlu tek örnek — §7 ile uyumlu olarak shots=1, seed_simulator=42.
import numpy as np
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
def cyclic_line_shift_unitary():
U = np.zeros((8, 8), dtype=complex)
for idx in range(8):
bits = [(idx >> i) & 1 for i in range(3)]
c, p0, p1 = bits[0], bits[1], bits[2]
pos = p0 + 2 * p1
if c == 0:
pos_next = (pos + 1) % 4
else:
pos_next = (pos - 1) % 4
p0n = pos_next & 1
p1n = (pos_next >> 1) & 1
idx_out = p0n + 2 * p1n + 4 * c
U[idx_out, idx] = 1.0
return U
S = cyclic_line_shift_unitary()
qc = QuantumCircuit(3, 3)
qc.h(0)
qc.unitary(S, [0, 1, 2], label="Shift")
qc.measure(range(3), range(3))
counts = AerSimulator().run(qc, shots=1, seed_simulator=42).result().get_counts()
bit_string = next(iter(counts.keys()))
print(qc.draw(output="text", fold=-1))
print("Tek örnek (shots=1):", bit_string)
Kod analizi
İskeletin rolü
§4’teki blok yürütme sırasına göre okunur: önce S matrisi üretilir, ardından Hadamard ve kaydırma devreye yazılır, ölçüm eklenir ve Aer ile klasik örnek çekilir. Kavramsal boru hattı 3 · Qiskit boru hattı bölümündedir; çizim ve doğrulama için 6 · Aynı devre (iki temsil) ile 7 · Demo ve doğrulama birlikte kullanılmalıdır.
Veri akışı
numpy (8×8 ünite) → QuantumCircuit(3, 3) → h(0) · unitary(S) → measure → backend.run(…) → Result → get_counts() → tek shot’ta tek anahtarlı bit dizisi. shots=1 olduğunda histogram tek çubuktur; çok shot’ta iki yoğun çubuk beklenir (7 · Demo ve doğrulama).
import ve np.zeros((8, 8))
dtype=complex ünite matrisini karmaşık sayı alanında tutmak içindir; bu örnekte matris gerçel ve {0, 1} girişli olsa da Qiskit ünite kapısı karmaşık kabul eder.
for idx in range(8) döngüsü
idx, üç kübitlik hesaplama tabanında bir ket indeksidir (0…7). bits[i] = (idx >> i) & 1 satırı küçük endian düzeninde bitleri ayırır: bits[0] en düşük anlamlı bit — çizimdeki q0 ile uyumludur.
c, p0, p1 ve pos
Bu dosyada c coin (q0), p0 ve p1 iki konum kübitinin hesaplama tabanı değerleri olarak okunur. Konum etiketi pos = p0 + 2 * p1 ile 0…3 arası tam sayıya çevrilir; döngüsel çizgide bir sonraki düğüm c == 0 ise (pos + 1) % 4, aksi halde (pos - 1) % 4 ile bulunur — §2’deki ±1 adım kurallarının doğrudan kod karşılığıdır.
p0n, p1n, idx_out
pos_next ikilik olarak parçalanır: düşük bit p0n, yüksek bit p1n. Çıkış indeksi idx_out = p0n + 2 * p1n + 4 * c coin’i korur (4 * c terimi), yalnızca konum bitlerini günceller. U[idx_out, idx] = 1.0 satırı her taban ketini tek bir taban ketine eşleyen permütasyon matrisini doldurur; böylece S otomatik olarak üniter kalır.
S = cyclic_line_shift_unitary()
Matris bir kez hesaplanır; aynı S hem devreye hem olası unitary doğrulamasına (ör. başka bir ortamda) taşınabilir.
QuantumCircuit(3, 3)
Üç kuantum kablosu coin + iki konum kübitine karşılık gelir; üç klasik kablo ölçüm sonuçları için ayrılır — measure çağrısında hedef klasik bitler de bu üçlüye bağlanır.
qc.h(0)
Hadamard yalnızca q0 üzerinde çalışır; §2’deki C ⊗ Ip parçasıdır. Başlangıç durumu varsayılan |0⋯0⟩ olduğundan bu satırdan sonra coin süperpozisyondadır, konum henüz |00⟩’dır — kaydırma bir sonraki satırda gelir.
qc.unitary(S, [0, 1, 2], label=…)
[0, 1, 2] kapının etki ettiği kübit sırasını sabitler; etiket çizimde blok adını gösterir. Tam uzay üzerinde tek adım S · (H ⊗ I) ile uyum için devre sırası önce h(0) sonra unitary olmalıdır (§2 ile aynı sıra).
qc.measure(range(3), range(3))
Her kuantum kablosu aynı indeksli klasik bite yazılır; ölçüm sonrası sonuç nesnesi üç bitlik bir kelime olarak okunur — DTQW örneğinde hem coin hem konum aynı anda klasikleşir.
AerSimulator().run(…) ve result()
run bir iş nesnesi döndürür; result() örneklenmiş sonucu verir. seed_simulator simülatörün iç rastgele akışını sabitler; shots=1 tek ölçüm demektir. İş yükü Aer’de kalır — §3’te anılan fiziksel donanım akışı bu satırların bire bir aynısı değildir.
get_counts() ve bit_string
get_counts() her bit dizisi için tekrar sayısı döndürür; tek shot’ta tek anahtar vardır (örnek 111). next(iter(counts.keys())) bu anahtarı doğrudan alır — çok shot kullanıldığında histogram üzerinden konum marjinalleri çıkarılır.
print(qc.draw(…))
Metin çizim 6 · Aynı devre sol panelindeki sırayı doğrular; fold=-1 satır kaydırmayı azaltır.
Aynı devre (iki temsil)
Solda qc.draw(output="text", fold=-1); sağda coin + kaydırma özet şeması.
draw(text) · üç kübit
┌───┐┌────────┐┌─┐
q_0: ┤ H ├┤0 ├┤M├──────
└───┘│ │└╥┘┌─┐
q_1: ─────┤1 Shift ├─╫─┤M├───
│ │ ║ └╥┘┌─┐
q_2: ─────┤2 ├─╫──╫─┤M├
└────────┘ ║ ║ └╥┘
c: 3/════════════════╩══╩══╩═
0 1 2
H · coin Shift · kaydırma bloğu M · klasik kayıt
DTQW özet şema
mor · coin H yeşil kesik · Shift bloğu
Demo ve doğrulama
Geniş çerçeve aynı yerleşimi taşır; gradient qwalk-wide-g.
Şemayı adım adım oku
-
Üst kablo coin’i taşır; soldaki mor H kutusu §2’deki C ⊗ I parçasıdır.
-
Yeşil kesik çerçeve üç kübit üzerinde tek ünite olarak S kaydırmasını temsil eder — çizim bunu tek blokta toplar.
-
Örnek kodda seed_simulator=42 ve shots=1 ile tek örnek 111 üretilir; çok shot’ta ise yaklaşık iki sonuçtan biri baskın görünür (bir adım ve |000⟩ başlangıcı için).
Hedef: Hadamard coin ardından döngüsel kaydırmanın Aer ile tutarlı örneklemesi.
- tek örnek: shots=1 · seed 42 → 111
- çok örnek: ~½ · 001 ve ~½ · 111
- not: ünite matematik sabit; tohum yalnızca simülatör iç örneklemesi içindir
Devre — kısa analiz
Tek adım sonunda olasılık genlikleri iki klasik sonuç etrafında yoğunlaşır; bu da girişimin ünite evrim içinde korunduğunu, ölçümün ise Born dağılımına göre seçim yaptığını gösterir.
Pratik notlar
Bu bölüm §2–§5’te kurulan minimal DTQW çekirdeğini deney tasarımına taşırken sık karşılaşılan seçimleri özetler — matematiksel tanım ve kod satırı ayrıntısı ilgili bölümlerde kalır.
Çoklu zaman adımı
T adım için for ile her turda önce coin kapısı (h(0) veya daha genel bir C), sonra kaydırma ünitesi eklenir — mantık §2’deki Uadım yinelemesi ile aynıdır. Devreyi derinleştirmek yerine tek üniteyi çarpım olarak üretmek (çoğu zaman mümkün değildir) bazen analiz için kullanılır; Qiskit tarafında yaygın kalıp döngü ile blok eklemektir. Ölçümü her adımın sonunda yapmak “anlık klasik iz” üretir; yalnızca son adımda ölçmek tam ünite evrimin sonra tek örneklemi korur — araştırma sorusuna göre seçilir.
Simülasyon maliyeti ve boyut
Bu sayfadaki üç kübitlik Hilbert uzayı boyutu 8 olduğundan tek adım çekirdeği küçüktür; konum kübit sayısı np arttıkça boyut 21+np ile üstel büyür ve hem tam durum izlemesi hem örnekleme maliyeti patlar. Çok uzun T için dalga önü paketi düşünülürken klasikten farklı yayılım rejimlerini görmek mümkündür — bunun için önce çok shot ile histogram, gerektiğinde Statevector veya birimce doğrulama kullanılır.
Sınır koşulları ve graf
Döngüsel çizgi bu dosyada mod ile sarınır; uçları olan doğru çizgide ise uç düğümlerde yansıma (ör. |0⟩ altında dur veya yön değiştir) veya soğurma (ölçüm ile zinciri kes) gibi kurallar eklenir — bunların her biri yeni bir kaydırma ünitesi tasarımı demektir. Graf düğümü sayısı iki güç değilse konum kodlaması genelde fazladan boyuta veya kullanılmayan tabanlara ihtiyaç gösterir; kaydırma matrisi yine permütasyon olarak yazılabilir ama boyut ve yapı değişir.
Coin seçimi ve donanım
Hadamard yerine daha genel bir ünite C (ör. yönleri dengesiz bırakan veya faz atan bir döndürme) yürüyüşün yayılımını değiştirir — §2’deki çerçeve aynı kalır, yalnızca ilk blok değişir. Gerçek donanımda çok kübitli blokların doğası gereği transpile sonrası yerel kapılara açıldığı hatırlanır (3 · Qiskit boru hattı); hata modelleri eklenince histogram teorik idealden sapar.
Ayrık ve sürekli zaman
Sürekli zaman kuantum yürüyüşü başka bir Hamiltonyen dilinde formüle edilir; bu sayfa ayrık zaman adımı ile sınırlıdır — kavramsal ayrım 1 · DTQW nedir? bölümünde kısaca anılmıştı. İki formalizm farklı deneyler ve farklı simülasyon yolları gerektirir; burada yalnızca DTQW tarafı işlenmiştir.