1. Ana sayfa
  2. İçerik planı
  3. QAOA çerçevesi · Qiskit
Qiskit · Kuantum algoritma araçları

QAOA çerçevesi — Maliyet ve karıştırıcı katmanlarla yaklaşık optimizasyon

Kuantum yaklaşık optimizasyon algoritması (QAOA), kombinatorik bir maliyeti Pauli tabanlı bir maliyet Hamiltonyeni HC olarak kodlar; ardından alternatif olarak uygulanan maliyet ve karıştırıcı ( HM) üniterlerinin p katmanlı tekrarıyla parametreli bir devre üretir. Beklenen değer ⟨HC⟩(γ,β) klasik optimizasyonla düşürülür; bu yapı VQE çerçevesi ile aynı kuantum–klasik döngü ailesindedir fakat ansatz soruya özel sabit bir şablondur. Tam algoritma anlatımı ve örnek devre akışı Kuantum yaklaşık optimizasyon (QAOA) · Qiskit algoritma sayfasında kalır; burada Qiskit araçları, Hamiltonyen inşası ve mimariyi yazılım üzerinden denetleme disiplini derinleştirilir.

  • Odak: HC · HM · p
  • Ayrım: kesin kombinatorik çözücü değil
  • Sınır: donanım grafiği ve yaklaşıklık oranı

Kavram haritası ve sayfa sınırı

QAOA; graf kesimi, kısıtlı tatmin edilebilirlik veya benzeri kombinatorik görevleri İzing / Pauli maliyetine çevirerek kuantum devre üzerinde yaklaşık arama yapar. Bu sayfa Qiskit’teki çerçeve bileşenleri (maliyet operatörü, karıştırıcı, QAOAAnsatz, ilkel çağrıları) ve yazılım hattında dikkat edilmesi gereken sözleşmeleri işler; problem sınıfına özel matematiksel indirgeme algoritma notlarında kalabilir.

Genel varyasyonel çerçeve Varyasyonel algoritmalar; genel özdeğer minimizasyonu VQE çerçevesi sayfalarında desteklenir.

Ne vaat edilmez

Her örnek için polinom zamanda yakın-optimal klasik çözüm; QAOA ampirik ve donanım bağlıdır.

Grover arama veya faz tahmininin yerine geçen “tek devre” çözüm; Grover araçları ve Faz tahmini araçları ayrı başlıklardır.

Mimari özet QAOA = HC kodlaması + HM ile karıştırma + p katman + ⟨HC⟩ tahmini + klasik (γ, β) optimizasyonu.

Maliyet Hamiltonyeni ve karıştırıcı

Maliyet, genelde SparsePauliOp olarak verilir; her kenar veya kısıt bir veya daha fazla Pauli terimine açılır. Karıştırıcı, maliyetin diagonal tabanında donmuş durumları dağıtmak için genelde X rotasyonları veya problem düzenlenmiş üniterler içerir; varsayılan seçim Qiskit sürümüne ve QAOAAnsatz argümanlarına bağlıdır.

Hamiltonyen inşası ve toplama disiplini Maliyet Hamiltonyenleri ve Gözlemlenebilir oluşturma sayfalarında derinleşir; burada yalnızca QAOA katmanlarıyla arayüz vurgulanır.

Pauli cebiri, terimlerin ölçüm iletişimine nasıl dönüştüğünü anlamak için temel tekrar noktasıdır.

Başlangıç durumu

initial_state ile süperpozisyon veya problem ön bilgisi enjekte edilebilir; maliyet–karıştırıcı sırası ve toplam faz etkisi raporda yazılmalıdır.

p derinliği ve parametre yüzeyi

p katman sayısı arttıkça devre derinliği ve parametre sayısı ( 2p tipik eşleme) büyür; ifade gücü artarken transpile maliyeti ve barren plateau riski de artabilir. Küçük p ile prototip, büyük p ile donanım bütçesi karşılaştırması üretimde sık yapılır.

Klasik optimizasyon (γ, β) vektöründe yerel minimumlara düşebilir; çok başlangıçlı arama veya düzenlenmiş başlangıç devresi yaygın pratiklerdir.

Optimization seviyeleri, aynı p için farklı yerel kapı sayıları üretebilir; “hangi transpile ile hangi enerji eğrisi?” sorusu loglarda ayrılmalıdır.

VQE ve QAOAAnsatz ile ilişki

QAOA, VQE’nin özel bir ansatz ailesiidir: QAOAAnsatz(cost_operator=..., reps=p, mixer_operator=...) devresi, maliyet ve karıştırıcı için sabit bir şablon üretir. Genel VQE’de ansatz Ansatz devreleri sayfasındaki gibi serbestçe seçilir; QAOA’da şablon problem maliyetine kilitlenir.

İlkel tarafı aynıdır: Estimator ile ⟨HC tahmini; fark, devre yapısının ve parametre anlamının literatürle uyumlu etiketlenmesidir.

Hibrit kuantum iş akışı disiplini, aynı döngünün üretim boru hattı dilinde özetidir.

Estimator, shot ve transpile

Donanımda Estimator çağrıları shot ve hata azaltma politikasına bağlıdır; Pauli terim gruplaması maliyeti düşürür. Transpile, maliyetteki uzun menzilli etkileşimleri cihaz coupling_map kısıtına uydurur; SWAP eklenmesi enerji yüzeyini değiştirir.

Estimator ilkeli, Oturum sistemi ve İlkel iş akışları sayfaları yürütme katmanını tamamlar.

Routing seçimi, QAOA devresindeki CNOT ağırlığını doğrudan etkiler.

Yaklaşıklık, gürültü ve topoloji

QAOA’nın klasik yaklaşık algoritmalarla karşılaştırıldığında “yaklaşıklık oranı” gibi metrikler literatürde tartışmalıdır; pratikte donanım gürültüsü ve örnekleme sınırı baskındır. Küçük örneklerde iyi sonuç, büyük örneklerde genelleme vaat edilmez.

Hata azaltma ve Okuma hatası sayfaları, histogram ve enerji tahminindeki sapmaları bağlamlandırır.

Yazılım üzerinden denetim

Her deney için p, başlangıç vektörü, transpile özeti, ilkel sürümü ve kullanılan HC dosya özeti (hash) arşivlenmelidir; aksi halde sonuçlar yeniden üretilemez.

QAOA kod laboratuvarı

Aşağıdaki örnek, basit bir Pauli maliyeti için QAOAAnsatz üretir ve StatevectorEstimator ile ⟨HC enerjisini scipy.optimize.minimize ( COBYLA) ile düşürür. Donanım veya Runtime gerektirmez.

SciPy + QAOAAnsatz + StatevectorEstimator

qaoa_statevector_estimator_min.py Python
import numpy as np
from scipy.optimize import minimize
from qiskit.circuit.library import QAOAAnsatz
from qiskit.primitives import StatevectorEstimator
from qiskit.quantum_info import SparsePauliOp

cost_h = SparsePauliOp.from_list(
    [("ZZ", 1.0), ("ZI", 0.35), ("IZ", 0.35)]
)
ansatz = QAOAAnsatz(cost_operator=cost_h, reps=2)
estimator = StatevectorEstimator()


def energy(theta):
    bound = ansatz.assign_parameters(theta)
    job = estimator.run([(bound, [cost_h])])
    return float(job.result()[0].data.evs[0])


theta0 = np.zeros(ansatz.num_parameters)
result = minimize(energy, theta0, method="COBYLA", options={"maxiter": 200})
print("⟨H_C⟩_min ≈", result.fun)
print("Başarılı:", result.success, "| iterasyon:", result.nit)
qiskit QAOAAnsatz · StatevectorEstimator · SciPy UTF-8 · LF

IBM Runtime (yorum)

Aşağıdaki satırlar bilinçli olarak yorumdadır; oturum ve backend kimliği ortama göre doldurulur.

qaoa_runtime_estimator_sketch.py Python
# from qiskit_ibm_runtime import Estimator, Session
# with Session(backend=backend) as session:
#     est = Estimator(session=session)
#     def energy_hw(theta):
#         job = est.run([(ansatz.assign_parameters(theta), [cost_h])])
#         return float(job.result()[0].data.evs[0])
qiskit IBM Runtime · yorum UTF-8 · LF

Özet ve ileri okuma

QAOA çerçevesi; kombinatorik maliyetin Pauli temsili, katmanlı maliyet–karıştırıcı devresi ve beklenen maliyetin klasik optimizasyonu ile özetlenir. Tam algoritma anlatımı algoritma rehberi sayfasında; Pauli ve transpile ayrıntıları ilgili Qiskit ünitelerinde kalır.

Özet HC’yi SparsePauliOp’ta tut; QAOAAnsatz ile p katman üret; Estimator ile ⟨HC⟩ ölç; (γ, β)’yı klasik optimize et; transpile ve shot’u logla.