Donanım topolojisi — hangi qubit çiftlerinde iki-qubit işlem yasal?
Donanım topolojisi (coupling topolojisi), işlemcinin fiziksel qubitlerini düğüm, izin verilen iki-qubit etkileşimlerini kenar olarak modelleyen graftır. Transpiler bu grafiği “yasallık tahtası” olarak kullanır: soyut devrede ardışık yazılmış bir cx, yalnızca haritada komşu olan fiziksel çiftlere oturtulabilir; aksi hâlde yer değiştirme veya ek kapılar gerekir. Bu sayfa grafiğin kendisini, CouplingMap nesnesini ve hedeften okuma disiplinini işler. Mantıksal oturma layout seçimi, kenar üzerinde akış yönlendirme ve darbe zamanlaması zamanlama başlıklarında kalır.
Kavram haritası ve sınırlar
Topoloji sorusu yalnız şudur: hangi fiziksel qubit çiftlerinde doğrudan iki-qubit kapısı tanımlıdır? Cevap, kütüphanenin CouplingMap veya backend nesnesi üzerinden sunduğu kenar listesidir. Bu bilgi, algoritmanın mantıksal sırasından bağımsız bir donanım gerçeğidir; layout ve routing ise bu gerçeğe uyum sağlamak için devreye girer. Boru hattı çerçevesi transpiler pipeline sayfasında özetlenir.
Topoloji ≠ layout ≠ routing
Layout mantıksal indeksleri fiziksel düğümlere oturtur; routing aynı graf üzerinde geçici yer değiştirmelerle yasal komşuluğu sağlar. Topoloji üçüncü bir şey değildir; ikisinin paylaştığı zemindir. Bu yüzden aynı algoritma, farklı çiplerde farklı SWAP yükü üretir; suçlayacağınız katman önce topoloji raporudur.
Bu sayfanın sınırı
SWAP üretim kuralları ve kısmi optimizasyonlar SWAP ekleme sayfasında; kenar başına süre ve hata alanları taban kapıları ve backend özellikleri ile kesişir. Burada öncelik bağlanıklık grafiği okumasıdır.
İzinli çiftler ve CouplingMap
Qiskit tarafında topoloji çoğu zaman bir CouplingMap örneğiyle temsil edilir: yönlü çiftler listesi, çoğu donanımda her iki yön de kayıtlıdır. Kenar yoksa, o çift için cx veya doğal iki-qubit işlemi doğrudan yürütülemez; ara hareket şarttır. Liste, soyut devredeki indeks adlandırmasından bağımsızdır; eşleme layout ile gelir.
Yönlülük ve simetri
Kütüphane listeyi yönlü tutsa da, süperiletken cihazlarda pratikte her iki yön de tanımlı olabilir. Yine de hedef Target satırında bir yönün süresi veya hatası daha iyi olabilir; bu ayrım routing maliyetini etkiler ve yönlü donanım bölümüyle birleşir.
Çelişen veya eksik harita
Elle yazılan coupling_map listelerinde yazım hatası, kopuk alt graf veya qubit sayısından büyük indeks sık görülür. Üretimde haritayı backend nesnesinden okumak ve birim testle doğrulamak en güvenli yoldur.
Tipik geometriler ve fabrika yardımcıları
CouplingMap statik fabrika yöntemleriyle üretilebilir: çizgi (from_line), halka (from_ring), ızgara (from_grid) ve IBM Quantum literatüründeki heavy-hex örüntüsü (from_heavy_hex). Bunlar gerçek bir çipin tam kopyası olmak zorunda değildir; fakat algoritma ve routing stratejisini topolojiye karşı test etmek için yararlıdır.
Heavy-hex ve parametre sınırı
from_heavy_hex(d, ...) çağrısında d tek sayı olmalıdır; aksi hâlde kütüphane hata verir. Üretilen qubit sayısı ve kenar sayısı d ile hızla büyür; belgelerinizde kullandığınız d değerini kaydedin.
Tam bağlı simülatör illüzyonu
Bazı simülatörler mantıksal olarak her çiftte iki-qubit işlemine izin verir; bu, gerçek cihazın kısıtlı grafiğini maskeleyebilir. Üretim öncesi mutlaka hedef coupling ile yeniden transpile edin.
Graf mesafesi ve maliyet sezgisi
CouplingMap.distance(i, j) en kısa yol uzunluğunu verir; komşu değilse değer birden büyür. Bu, routing için alt sınır sezgisi sağlar: uzak çiftler arasında sık etkileşim gereken bir devre, aynı algoritma genişliğinde bile daha derin transpile çıktısı üretir. Çap ve derece dağılımı, algoritma sınıfının donanıma uygunluğu hakkında hızlı bir ön okumadır.
Kökler ve dar boğazlar
Yüksek dereceli bir düğüm “trafik polisi” gibi paylaşılır; düşük dereceli uçlar ise uzun yürüyüş gerektirir. Bu görüş, neden bazı layout skorlarının grafik merkeziyetine benzediğini sezdirir; skor formülleri layout seçimi sayfasında işlenir.
Mesafe tek başına yeterli değil
Aynı graf uzunluğunda birden fazla eşderece yol olabilir; routing sezgiselleri hata, kuyruk ve ileri bakışla hangi yolu seçeceğine karar verir. Bu yüzden mesafe yalnızca ilk keşif için kullanılmalıdır.
Backend ve Target üzerinden okuma
BackendV2 yolunda topoloji çoğu zaman backend.coupling_map ile erişilir; aynı bilginin Target içinde kenar başına süre ve hata alanlarıyla zenginleştirilmiş görünümü vardır. Transpiler maliyet modeli ikinci katmana dayanır; yalnızca kenar varlığı birinci katmandır. Okuma disiplini taban kapıları · Target bölümüyle uyumludur.
Sahte backend ve gerçek cihaz
FakeBackend veya GenericBackendV2, gerçek bir cihazın
coupling yapısını taklit eder; topoloji testlerini hesapsız yürütmek için idealdir.
Kalibrasyon zaman damgası ve özellik okuma
fake
backend kullanımı ile ilişkilidir.
Ölçüm ve klasik hatlar
Coupling grafiği yalnızca iki-qubit kapıları için anlamlıdır; ölçüm ve klasik kontrol farklı kısıtlar taşır. Devre modeli ölçüm mantığı sayfasında ayrıntılanır.
Deneysel coupling_map ve riskler
transpile çağrısında coupling_map vermek, backend topolojisini geçici olarak değiştirmenize izin verir: algoritma tasarımı, kıyaslama veya “yarın çıkacak çip için erken deneme” için kullanılır. Risk, üretimde yanlışlıkla gerçek cihazdan kopuk bir graf ile derlemek ve sahada sessizce kötü sonuç almaktır.
Backend ile çelişen harita
backend ve coupling_map birlikte verildiğinde, ikinci argümanın önceliği veya birleşim kuralı sürüme göre değişebilir. Deneysel betiklerde hangi nesnenin kazanacağını açıkça belgeleyin.
Taban ile birlikte düşünmek
Dar bir basis_gates listesi ile geniş bir coupling haritası kombinasyonu, yürütülebilir ama verimsiz transpile üretebilir. Taban sözleşmesi kapı ayrıştırması ile birlikte okunmalıdır.
Tekrarlanabilirlik ve raporlama
Yayınlanan bir sonuçta topoloji bilgisi eksikse, aynı algoritma farklı çiplerde yeniden üretilemez. Makale veya ürün notunda en azından: qubit sayısı, kenar sayısı, örnek bir çift listesi veya CouplingMap özeti, backend adı ve sürümü yazılmalıdır. Rastgele routing içeren pass'ler için seed_transpiler sabitlemesi optimization seviyeleri ile birlikte anılır.
Görselleştirme
Küçük grafler elle çizilebilir; büyük çiplerde otomatik çizim veya dışa aktarma hatayı azaltır. Önemli olan, okuyucunun hangi çiftlerin yasak olduğunu bir bakışta görebilmesidir.
Sürüm ve API değişimi
Backend soyutlama sınıfları ve coupling erişim yolları sürümler arasında değişebilir; betiklerinizi tek modülde toplayıp yükseltme notu tutmak taşınabilirliği artırır.
Kod laboratuvarı
Örnekler çekirdek Qiskit ile çalışır: CouplingMap fabrikaları, mesafe okuma ve aynı mantıksal devre için farklı topolojilerde transpile kıyası. Sürümünüze göre import yollarını resmi belgeyle doğrulayın.
from qiskit.transpiler import CouplingMap
cm = CouplingMap.from_line(6)
print("qubit sayısı:", cm.size())
print("0-5 mesafe:", cm.distance(0, 5))
print("örnek kenarlar:", list(cm.get_edges())[:6])
from qiskit.transpiler import CouplingMap
# d tek pozitif tam sayı olmalı (ör. 3 → 19 qubit heavy-hex iskeleti).
d = 3
cm = CouplingMap.from_heavy_hex(d, bidirectional=True)
print("d =", d, "qubit:", cm.size(), "kenar:", len(list(cm.get_edges())))
print("0-1 mesafe:", cm.distance(0, 1))
from qiskit import QuantumCircuit, transpile
from qiskit.transpiler import CouplingMap
qc = QuantumCircuit(3)
qc.cx(0, 2)
basis = ["cx", "rz", "sx", "id"]
layout_fix = [0, 1, 2] # mantıksal i → fiziksel layout_fix[i]
line = CouplingMap.from_line(3)
ring = CouplingMap.from_ring(3)
t_line = transpile(
qc,
coupling_map=line,
basis_gates=basis,
initial_layout=layout_fix,
optimization_level=3,
seed_transpiler=0,
)
t_ring = transpile(
qc,
coupling_map=ring,
basis_gates=basis,
initial_layout=layout_fix,
optimization_level=3,
seed_transpiler=0,
)
print("çizgi :", dict(t_line.count_ops()), "depth", t_line.depth())
print("halka :", dict(t_ring.count_ops()), "depth", t_ring.depth())
İleri okuma ve özet
Donanım topolojisi, transpiler'ın yasallık zemini olarak coupling grafiğidir. Kenar listesini okumak, mesafe ve geometri sezgisi kazanmak ve sonuçları raporlamak, layout ve routing tartışmalarından önce gelen disiplindir. Simülatörün tam bağlılığı ile gerçek çipin kısıtlılığı arasındaki farkı her zaman belgeleyin.
- Layout seçimi — mantıksal indeksleri düğümlere oturtma.
- Yönlendirme, SWAP ekleme — kenar üzerinde akış.
- Zamanlama — süre alanları ve yürütme çizelgesi.
- Taban kapıları, kapı ayrıştırması — kenar başına işlem sözlüğü.
- Özel pass — hedefe özgü topoloji kuralları genişletme.
- Backend mimarisi — soyutlama katmanları.
- Coupling haritası (yürütme API) — sağlayıcıdan ham okuma.