Taban kapıları — cihazın anladığı yerel dil ve transpiler sözleşmesi
Taban (basis), bir kuantum işlemcisinin doğrudan ve güvenilir biçimde uyguladığı kapı kümesidir. Kullanıcı QuantumCircuit içinde geniş bir soyut paletten yazar; transpiler ise bu ifadeyi seçilen hedefin tabanına indirger. Bu sayfa; soyut ile fiziksel model arasındaki köprüyü, tipik süperiletken taban ailelerini, tek ve iki-qubit taraflarını, basis_gates ile kullanıcı kısıtını ve Target üzerinden okuma disiplinini açıklar. Kapıların birbirine nasıl açıldığı Kapı ayrıştırması başlığında derinleştirilir; burada odak kümenin kendisi ve mimari rolüdür.
Kavram haritası ve sözleşme
Klasik derleyicide olduğu gibi, kuantum transpiler da sonunda hedef makinenin yerel komut kümesine iner. Bu küme, donanım kontrol katmanının ürettiği mikrodalga paketleri veya benzeri gerçek dünya eylemleriyle bire bir ilişkilidir; soyut bir h veya ccx ifadesi, o kümede yoksa önce tabana çevrilir, sonra topoloji ve zamanlama kısıtları uygulanır. Taban kapıları konusu, bu ilk dil indirgeme adımının sözlüğünü tanımlar: hangi isimler yasal, hangi qubit çiftlerinde tanımlı, hangi süre ve hata ile?
Bu sayfanın sınırı
Bir unitary'nin rz–sx–rz zincirine açılması, KAK ayrıştırması veya özel üç-qubit şablonları kapı ayrıştırması sayfasının işidir. Boru hattının tam sırası transpiler pipeline başlığında çerçevelenir. Burada kümenin tanımı, tipik üyeler ve hedefle nasıl eşleştiği anlatılır; matematiksel ayrıştırma adımlarına girilmez.
Neden tek başına “kapı listesi” yetmez?
Aynı isimli kapı farklı cihazlarda farklı kalibrasyon ve farklı izin verilen qubit çiftleriyle bulunur. cx bir hedefte yönlü ve yalnızca belirli yönde ucuzken, başka bir hedefte simetrik olabilir. Bu yüzden taban sorusu yalnız “hangi harfler?” değil, hangi (kapı, qubit demeti) çiftleri Target'ta kayıtlı? sorusudur.
Soyut devre ve fiziksel taban
QuantumCircuit katmanı, matematiksel olarak geniş bir kapı cebine izin verir: Pauli rotasyonları, kontrollü kapılar, bazı durumlarda blok üniteler ve ölçüm. Bu cebirsel zenginlik, algoritma yazımını kolaylaştırır. Fiziksel taban ise sonlu ve kısıtlıdır: her kapı her qubit üzerinde tanımlı değildir, süreleri vardır, bazıları yalnızca komşu çiftlerde yürütülebilir. İki dünya arasındaki çeviri, kuantum derleyicinin en görünür işidir.
Tam grup ile üretilebilir alt küme
Çok-qubit sisteminde teorik olarak ulaşılabilir unitarylerin uzayı büyüktür; gerçek cihaz ise belirli bir tabanın ürettiği alt yarım grubun içinde (ve gürültüyle yaklaşık olarak) çalışır. Bu yüzden “aynı matematiksel algoritma” bile, farklı tabanlarda farklı uzunluk ve farklı hata birikimiyle somutlaşır. Soyut ünite ve Pauli cebiri kapılar ve ünite mantığı sayfasında temellenir.
Ölçüm ve klasik geri besleme
Taban tartışması çoğu zaman unitary kapılarla sınırlanır; oysa yürütülebilir program ölçüm ve klasik kontrol içerir. Bu işlemlerin devre modeli semantiği ölçüm mantığı ve klasik kontrol sayfalarında açılır; burada yalnızca şu not düşülür: measure de hedefin desteklediği bir işlem olarak Target'ta yer alır.
Tipik süperiletken taban aileleri
IBM Quantum süperiletken cihazlarında yaygın görülen taban, tek-qubit tarafında sx, x, rz (ve kimlik) ile iki-qubit tarafında cx veya ecr kombinasyonlarıdır. Bu aile, sürekli rotasyonları rz ile ayrıkleştirip, genlik taşıyan işi sx / x üzerinden yürütme felsefesine dayanır. Başka üreticiler cz, iswap, rzz gibi farklı doğal iki-qubit kapıları seçebilir; taban “evrensel” değil, ticari ve kalibrasyon tarihine bağlıdir.
Kontrol–hedef ayrımı
İki-qubit kapılarında çoğu zaman kontrol ve hedef rolleri donanım çizgelerine bağlıdır. Yönlü bir cx için ters yönde ihtiyaç, ek tek-qubit kapıları ile düzeltme gerektirir; bu düzeltme hem taban çevirisine hem yönlendirme maliyetine sirayet eder.
Simülatör ve gerçek taban farkı
AerSimulator gibi araçlar geniş tabanlara izin verebilir; gerçek cihaz ise
dar. Aynı betiğin simülatörde kısa, donanımda uzun çıkması çoğu zaman taban ve topoloji
farkının birleşimidir. Ortak sözleşme
backend
mimarisi sayfasında çerçevelenir.
Tek-qubit tabanı: faz ve rotasyonlar
Tek-qubit tarafında taban genelde Pauli eksenleri etrafında rotasyonlar ve birkaç ayrık kapı ile kurulur. rz sürekli bir faz ailesidir; sx ise π/2 etrafında sabit bir genlik rotasyonudur. Bir h veya y kapısı, bu tabanda kısa bir eşdeğer diziye açılır; açılımın uzunluğu ve sırası hedefin tercih ettiği Euler ailesine bağlıdır. Bu ayrıştırmanın matematiksel içeriği yine kapı ayrıştırması dosyasındadır.
Fazın fiziksel anlamı
rz taban seviyesinde “ucuz” sayılabilir çünkü süperiletken mimarilerde genellikle sanal Z rotasyonu olarak derlenir; yine de toplam süre ve zamanlama çizelgesi hesabına girer. Bu ayrım zamanlama sayfasıyla birleştiğinde anlam kazanır.
U ve diğer soyut tek-qubit kapılar
Kaynak devrede doğrudan u veya parametrik rotasyonlar kullanılabilir; taban çevirisi bunları hedefin izin verdiği süreksizliklere projekte eder. Parametrik devre modeli parametrik devreler başlığında işlenir.
İki-qubit tabanı ve yönlülük
İki-qubit tabanı, algoritmanın entanglement üretme biçimini donanımın doğal etkileşimine bağlar. cx evrenseldir; ancak donanımda “doğal” olan çoğu zaman ecr veya benzeri süperiletken özgü kapıdır. Taban çevirisi, önce algoritmik cx ağını bu doğal kapıya indirger; ardından layout ve routing aşamaları aynı iki-qubit işlemleri yasal çiftlere taşır. SWAP ekleme sayfasında görüldüğü gibi, bir SWAP da tipik olarak üç iki-qubit işlemiyle açılır; taban seçimi bu üçlünün hangi isimle sayılacağını belirler.
Simetri ve izinli çiftler
Bazı iki-qubit kapıları teoride simetriktir; yine de hedef Target yalnızca belirli yönleri veya çiftleri kayıtlı tutabilir. Bu yüzden soyut devrede cx(0,1) ile cx(1,0) aynı matematiksel nesne olsa bile, transpile çıktısı farklı uzunlukta olabilir.
Üç-qubit ve daha yüksek arity
ccx gibi yüksek arity kapılar doğrudan tabanda yoksa, iki qubit tabanı + ancilla veya özel şablonlarla açılır. Bu genişleme kapı ayrıştırması ve devre optimizasyonu devre optimizasyonu ile kesişir.
transpile ve taban kısıtı
transpile çağrısında basis_gates parametresi, hedef backend verilmiş olsa bile kullanıcıya dar bir taban zorlama imkânı verir. Bu, “şu küçük dilde derle” denemeleri veya eğitim amaçlı kıyaslama için kullanılır; ancak basis_gates ile backend birlikte verildiğinde çelişen kombinasyonlar hata veya beklenmedik genişleme üretebilir. Üretimde önce hedefin gerçek Target'ını okuyup, gerekirse yalnızca üst seviye optimizasyon parametreleriyle oynamak daha güvenlidir.
Geçersiz veya eksik kombinasyonlar
Örneğin yalnızca cx ve rz verip tek-qubit genlik döndürmeyi unutmak, genel unitary için yetersiz kalır. Taban seçimi hem evrensellik hem hedefle uyum testinden geçmelidir.
Preset pass ile ilişki
Preset boru hatları, basis çevirisini belirli pass sıralarına gömülü çalıştırır; ince kontrol pass manager ve optimization seviyeleri başlıklarında anlatılır.
Target sözlüğü ve okuma disiplini
Modern BackendV2 yolunda tabanın kanonik kaynağı Target nesnesidir: her işlem adı, izin verilen qubit demetleri ve o demet için süre ile hata tahmini. Bu sözlük, transpiler'ın yalnızca “hangi harfler” değil, nerede ve ne kadar güvenilir sorularına da cevap verir. Aynı cx adı, farklı çiftlerde farklı süre ve hata ile listelenebilir; maliyet modeli bu yüzden çift başına tanımlıdır.
Raporlama ve sürüm kontrolü
Makale veya ürün logunda, kullanılan backend sürümü ile birlikte sorted(backend.target.operation_names) çıktısının bir anlık görüntüsünü saklamak, tekrarlanabilirlik için faydalıdır. Kalibrasyon zaman damgası backend özellikleri başlığıyla ilişkilendirilir.
Fake backend ve gerçek cihaz
FakeBackend, gerçek bir cihazın Target
taklidini taşır; taban kümesi açısından gerçek donanıma yakın deney yapmayı hesapsız
mümkün kılar. Ayrıntı
fake backend
kullanımı sayfasındadır.
Kod laboratuvarı
Örnekler yerel FakeManilaV2 ile çalışır: native işlem adları, hedefe göre
transpile ile basis_gates kısıtının karşılaştırması ve
seçili bir iki-qubit kenarın InstructionProperties okuması.
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
backend = FakeManilaV2()
names = sorted(backend.target.operation_names)
print("Native işlem adları:", names)
print("Qubit sayısı:", backend.num_qubits)
from qiskit import QuantumCircuit, transpile
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
backend = FakeManilaV2()
by_backend = transpile(qc, backend=backend, optimization_level=2, seed_transpiler=0)
by_basis = transpile(
qc,
backend=backend,
basis_gates=["cx", "rz", "sx"],
optimization_level=2,
seed_transpiler=0,
)
print("Hedef varsayılanı:", dict(by_backend.count_ops()))
print("Zorlanmış taban :", dict(by_basis.count_ops()))
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
backend = FakeManilaV2()
target = backend.target
inst = target["cx"][(0, 1)]
print("cx(0,1) duration:", getattr(inst, "duration", None))
print("cx(0,1) error :", getattr(inst, "error", None))
İleri okuma ve özet
Taban kapıları, soyut algoritma ile gerçek cihaz komutları arasındaki sözlük anlaşmasıdır. İsim listesi tek başına yeterli değildir; Target hangi qubit demetinde hangi süre ve hata ile tanımlı olduğunu taşır. basis_gates deneyleri için backend ile çelişmeyi ve evrensellik eksiklerini göz önünde bulundurun.
- Kapı ayrıştırması — taban içine matematiksel açılım.
- Transpiler pipeline, pass manager, optimization seviyeleri.
- Kapılar ve ünite mantığı, devre ayrıştırması (soyut model).
- Layout seçimi, yönlendirme, SWAP ekleme, zamanlama — taban sonrası kısıtlar.
- Backend mimarisi, fake backend.