1. Ana sayfa
  2. İçerik planı
  3. Ansatz devreleri · Qiskit
Qiskit · Kuantum algoritma araçları

Ansatz devreleri — Parametreli şablon, bağlanma ve cihaz uyumu

Ansatz, varyasyonel kuantum algoritmalarında klasik olarak optimize edilen parametreli kuantum devre şablonudur: aynı kapı iskeleti, farklı θ vektörleriyle farklı ünite aileleri üretir. Qiskit’te bu şablonlar TwoLocal, RealAmplitudes, EfficientSU2 gibi hazır sınıflarla veya özel ParameterVector tabanlı devrelerle kurulur; kritik mühendislik kararları bağlanma deseni ( linear, full, circular vb.), tekrar sayısı ( reps) ve transpile sonrası gerçek derinliktir. Beklenen değer döngüsü, Hamiltonyen seçimi ve ilkel çağrıları VQE çerçevesi sayfasında kalır; burada yalnızca ansatzın yazılım sözleşmesi, parametre bağlama ve cihaz grafiğiyle hizalama derinleştirilir. Sabit katmanlı QAOA şablonu QAOA çerçevesi ile karşılaştırmalı okunmalıdır.

  • Odak: NLocal · bağlanma · reps
  • Ayrım: ⟨H⟩ optimizasyonu değil
  • Risk: barren plateau · derinlik

Kavram haritası ve sayfa sınırı

Ansatz; varyasyonel yöntemlerde kuantum tarafının parametre uzayını taşıyan devredir. Bu sayfa Qiskit’teki hazır ansatz ailelerinin ortak desenini ( rotation_blocks + entanglement_blocks + reps), parametrelerin nasıl bağlandığını ve bağlanma seçiminin derinliği nasıl şekillendirdiğini işler; klasik optimizasyon algoritması, öğrenme oranı veya Estimator çağrı akışı VQE çerçevesi ve Varyasyonel algoritmalar sayfalarında kalır.

Pauli tabanlı maliyetin inşası Maliyet Hamiltonyenleri ve Gözlemlenebilir oluşturma başlıklarında derinleşir; burada yalnızca devrenin hangi kapı ailesiyle üretildiği vurgulanır.

Ne vaat edilmez

Her problem için otomatik en iyi ansatz; seçim deneysel ve donanım bağlıdır.

Faz tahmini veya Grover iskelesi; Faz tahmini araçları ve Grover araçları ayrı konulardır.

Mimari özet Parametreli şablon üret → assign_parameters ile bağla → transpile ile gerçek derinliği ölç → VQE/QAOA döngüsüne devret.

Parametreler ve bağlama

Ansatzlar Parameter veya ParameterVector nesneleri taşır; assign_parameters hem sözlük hem dizi kabul eder. Üretimde aynı θ vektörünün klasik optimizasyon adımı ile ilkel çağrısında bire bir eşlendiği loglarda doğrulanmalıdır; aksi halde enerji eğrisi izlenemez.

decompose() veya transpile sonrası devre, soyut ansatz ile aynı matematiksel aileyi temsil eder fakat yerel kapı sayısı farklıdır; “derinlik” raporlarında hangi aşamanın ölçüldüğü açık yazılmalıdır.

Bağımsız deneyler

Aynı ansatz sınıfı, farklı rastgele başlangıçlarla farklı yerel minimumlara düşebilir; çok başlangıçlı arama ansatz seçiminden bağımsız bir klasik katmandır fakat raporda ayrıştırılmalıdır.

Kütüphane ailesi ve NLocal deseni

TwoLocal ve türevleri, dönüşüm blokları ile bağlanma bloklarını reps kez yineler; RealAmplitudes genlikleri gerçek eksende parametreler, EfficientSU2 ise daha sık kullanılan SU(2) tabanlı bir şablondur. Özel sorunlar için QuantumCircuit içinde doğrudan Parameter eklemek mümkündür; kütüphane sınıfları tutarlı isimlendirme ve parametre sayısı için tercih edilir.

Pauli cebiri, dönüşüm bloklarının hangi eksenlerde döndüğünü okumak için arka plan sağlar; ansatzın kendisi Pauli toplamı değildir.

Özel ansatz

Uygulamaya özel kapılar (ör. simetri koruyan katmanlar) gömüldüğünde, parametre sayısı ile serbestlik derecesi dokümantasyonda açıkça listelenmelidir.

Bağlanma ve tekrar (reps)

entanglement="linear" çoğu cihazın doğrusal zincirine uyar; "full" teorik olarak daha zengin etkileşim sunar fakat derinlik ve SWAP maliyeti hızla artar. reps arttıkça ifade gücü artarken gradyan sinyali zayıflayabilir ( barren plateau riski); küçük reps ile prototip, büyük reps ile donanım bütçesi karşılaştırması yapılır.

Bağlanma deseni, Hamiltonyenin etkileşim grafiği ile hizalanmadığında aynı parametre sayısı bile anlamsız arama alt uzayları üretebilir; bu yüzden Maliyet Hamiltonyenleri sayfasındaki grafik yapısı ile ansatz grafiğinin karşılaştırılması önerilir.

Derinlik, parametre sayısı ve arama zorluğu

num_parameters ile depth() birlikte okunmalıdır: yüksek parametre sayısı düşük derinlikle de gelebilir (geniş açı parametrizasyonu); düşük parametre sayısı yüksek transpile derinliği üretebilir (çok kontrollü açılım). Raporlarda ikisi ayrı sütun olmalıdır.

Barren plateau literatüründe ansatz ve maliyet birlikte ele alınır; burada yalnızca derinlik–parametre–bağlanma üçlüsünün deney tasarımını nasıl kısıtladığı not edilir; tam teori Varyasyonel algoritmalar anlatımına bırakılır.

Transpile ve cihaz grafiği

Aynı soyut ansatz, farklı coupling_map ve optimization_level ile farklı yerel devrelere dönüşür. Üretimde “soyut derinlik” yerine transpile sonrası CNOT sayısı ve kritik yol raporlanmalıdır.

Optimization seviyeleri ve Routing sayfaları, ansatzın donanıma oturtulmasını tamamlar.

Hata azaltma politikası seçilirken ansatz derinliği doğrudan gürültü birikimini etkiler.

VQE ve QAOA ile ilişki

Genel VQE’de ansatz serbestçe seçilir; VQE çerçevesi bu seçimin Estimator ve optimizasyonla nasıl birleştiğini işler. QAOA’da ansatz çoğu zaman QAOAAnsatz ile maliyet ve karıştırıcıya kilitlenir; QAOA çerçevesi bu özel şablonu anlatır. İki uç arasında “yarı özel” katmanlar (ör. problem düzenlenmiş bağlanma) yaygındır ve sürüm notlarında ayrılmalıdır.

Estimator ilkeli sayfası, bağlanmış ansatzın ilkel çağrısına nasıl geçirildiğini üst katmanda özetler.

Ansatz kod laboratuvarı

İlk örnek RealAmplitudes ile parametre sayısı ve assign_parameters sonrası decompose().depth() ölçümü gösterir. İkinci örnek aynı kübit sayısında EfficientSU2 için linear ve full bağlanmanın derinliğe etkisini karşılaştırır.

RealAmplitudes + bağlama

ansatz_real_amplitudes_depth.py Python
import numpy as np
from qiskit.circuit.library import RealAmplitudes

ansatz = RealAmplitudes(num_qubits=2, reps=2, entanglement="linear")
theta = np.zeros(ansatz.num_parameters)
bound = ansatz.assign_parameters(theta)

print("Parametre sayısı:", ansatz.num_parameters)
print("Derinlik (decompose):", bound.decompose().depth())
print("ok")
qiskit RealAmplitudes · assign_parameters UTF-8 · LF

EfficientSU2 · bağlanma karşılaştırması

ansatz_efficient_su2_entanglement.py Python
from qiskit.circuit.library import EfficientSU2

for ent in ("linear", "full"):
    qc = EfficientSU2(3, reps=1, entanglement=ent)
    d = qc.decompose().depth()
    print(ent, "| params", qc.num_parameters, "| depth", d)
print("ok")
qiskit EfficientSU2 · entanglement UTF-8 · LF

IBM Runtime Estimator (yorum)

Aşağıdaki satırlar bilinçli olarak yorumdadır; bağlanmış ansatzı ilkele geçirmek için oturum ve backend kimliği ortama göre doldurulur.

ansatz_runtime_estimator_sketch.py Python
# from qiskit_ibm_runtime import Estimator, Session
# with Session(backend=backend) as session:
#     est = Estimator(session=session)
#     bound = ansatz.assign_parameters(theta)
#     job = est.run([(bound, [hamiltonian])])
qiskit IBM Runtime · yorum UTF-8 · LF

Özet ve ileri okuma

Ansatz katmanı; parametreli şablon, bağlanma ve tekrar seçimleriyle tanımlanır; bağlama ve transpile sonrası metrikler üretimde zorunlu rapor alanlarıdır. Enerji yüzeyi ve klasik optimizasyon VQE çerçevesi içinde birleşir.

Özet Şablonu seç; reps ve bağlanmayı sabitle; assign_parameters ile bağla; transpile derinliğini ölç; VQE/QAOA boru hattına parametre sayısıyla birlikte aktar.