1. Ana sayfa
  2. İçerik planı
  3. Gözlemlenebilir oluşturma · Qiskit
Qiskit · Kuantum algoritma araçları

Ölçüm omurgası — Pauli gözlemlenebilirleri ve beklenen değer hattı

Bir kuantum deneyinde “ne ölçülüyor?” sorusunun yazılım cevabı, çoğu kez Pauli terimlerinin gerçel katsayılı bir toplamı olarak yazılır. Bu toplam, maliyet Hamiltonyeninde olduğu gibi SparsePauliOp ile temsil edilebilir; fakat rol farklıdır: burada odak, beklenen değer tahmini için ölçüm/ilkel tarafının nasıl düzenleneceği, hangi terimlerin aynı devre gezisinde gruplanabileceği ve shot bütçesinin nasıl kırılacağıdır. Terimlerin modelle eşlemesi Maliyet Hamiltonyenleri sayfasında vurgulanan cebirle aynıdır; bu sayfa ise Estimator/Sampler sözleşmesi ve üretimde tutulması gereken ölçüm kayıtları üzerinden ilerler.

  • Odak: Pauli · beklenen değer · gruplama
  • Ayrım: yalın optimizasyon teoremi değil
  • Çıktı: ölçüm manifesti şablonu

Çerçeve ve sayfa sınırı

“Gözlemlenebilir oluşturma” ifadesi, Pauli tabanlı bir operatörün ölçüm planına dönüştürülmesini ve bu planın ilkel çağrılarıyla nasıl beslendiğini kapsar. Maliyetin fiziksel anlamı (enerji, ceza fonksiyonu) ile ölçümün istatistiksel akışı aynı dosyada karıştığında, VQE raporlarında “hangi H?” ile “hangi ölçüm gezisi?” soruları birbirine yapışır.

Bu sayfa, aynı Pauli cebiri üzerinde çalışır fakat Maliyet Hamiltonyenleri sayfasındaki model kodlama vurgusundan ayrışır: burada merkezde Estimator/Sampler sözleşmesi, terim gruplaması ve shot politikası vardır.

Tanı kuralı Eğer tartışma “hangi Pauli toplamını, hangi ilkel ve hangi shot ile kestiriyoruz?” ise bu ünitedesiniz; tartışma “optimizasyon θ’yı nasıl güncelliyor?” ise Varyasyonel algoritmalar ve VQE çerçevesi tarafındadır.

Pauli gözlemlenebilir sözleşmesi

SparsePauliOp hem toplu maliyet hem de gözlemlenebilir listesi olarak kullanılabilir; ayrım rol ve rapor başlığındadır. Beklenen değer ⟨O⟩ birden fazla Pauli teriminin toplamıysa, ilkel çoğu zaman toplamı tek operatör olarak kabul eder; ayrı ayrı raporlamak istiyorsanız terimleri ayrı SparsePauliOp nesneleri olarak geçirmeniz gerekir.

Pauli ünite sayfası, dize gösterimi ve çarpım kuralları için arka plan sağlar.

Kübit sırası

Gözlemlenebilir ile devre aynı mantıksal kübit sırasını paylaşmalıdır; transpile sonrası fiziksel permütasyonlar, okunan beklenen değeri değiştirir. Bu yüzden “soyut operatör” ve “transpile edilmiş devre” aynı log satırında birleştirilmemelidir.

Beklenen değer ve ilkel seçimi

Estimator yolu, Pauli gözlemlenebilirleri beklenen değere indirger; Sampler yolu ise bit dizilimlerinin istatistiklerini üretir ve beklenen değeri klasik tarafta türetmeyi gerektirebilir. Hangi yolun seçildiği, shot bütçesi ve hata azaltma politikasını kökten değiştirir.

Estimator ilkeli, Sampler ilkeli ve İlkel iş akışları sayfaları, çağrı sözleşmesini üst katmanda tamamlar.

StatevectorEstimator

Geliştirme ve birim testlerinde ideal beklenen değer, ölçüm planının doğru bağlandığını doğrulamak için kullanılır; üretim histogramı ile karıştırılmamalıdır.

Gruplama fikri ve shot maliyeti

Birçok Pauli terimi, aynı ölçüm temelinde ortak bir devre gezisinde kestirilebilir; bu fikir literatürde yarılamalı ( qubit-wise commuting) gruplar üzerinden anlatılır. Uygulamada gruplama, toplam kuantum çağrı sayısını düşürerek shot bütçesini yeniden dağıtır; fakat gruplama algoritması ve ilkel sürümü değiştiğinde aynı θ altında bile sonuçlar küçük farklar gösterebilir.

Gruplama ayrıntıları Qiskit sürümüne ve seçilen yürütme yoluna bağlıdır; raporda “hangi gruplayıcı?” sorusu, “hangi H?” kadar kritik olmalıdır.

Shot paylaşımı

Terim başına shot eşitlemek ile grup başına shot toplamak farklı varyans profilleri üretir; politika değişince geçmiş eğrilerle karşılaştırma adil olmaz.

Temel dönüşüm ve ölçüm ağı

Pauli terimlerinin çoğu, ölçüm öncesi yerel Clifford dönüşümleriyle Z tabanına indirgenir; bu ağın derinliği, ansatzın kendisinden bağımsız bir maliyet katmanıdır. “Ölçüm ağı”nın transpile edilmiş hali, raporda ansatz derinliğiyle ayrı satırda yer almalıdır.

Ansatz devreleri sayfasındaki bağlanma seçimleri ile ölçüm ağının etkileşimi, özellikle sığ ansatz + ağır ölçüm senaryolarında belirginleşir.

Cihaz düzeni ve okuma katmanı

Fiziksel initial_layout, yalnızca kapı sayısını değil okuma hata matrisinin hangi kübitlere uygulanacağını da belirler. Beklenen değer düzeltmeleri ( readout mitigation) seçildiğinde, kalibrasyon verisi ve ilkel sürümü raporun parçasıdır.

Okuma hatası ve Routing sayfaları, ölçüm sonuçlarının donanım bağlamını tamamlar.

Histogram yorumu için Histogram görselleştirme sayfasına geçilebilir.

Ölçüm manifesti (izlenebilirlik)

Her üretim koşusu için önerilen minimum alanlar: gözlemlenebilirlerin sıralı listesi veya hash özeti, kullanılan ilkel ve sürüm, shot tablosu (terim veya grup başına), gruplama politikası, transpile özeti, okuma düzeltmesi politikası ve rastgele tohum.

Oturum sistemi, bulutta bu alanların hangilerinin platform tarafından otomatik doldurulduğunu belirlemenize yardım eder.

Kod stüdyosu

Aşağıdaki örnek, aynı devre üzerinde iki ayrı Pauli gözlemlenebilirin beklenen değerini tek Estimator çağrısında döndürür; amaç optimizasyon değil, çoklu gözlemlenebilir sözleşmesinin doğrulanmasıdır.

observable_multi_sparse_estimator.py Python
import numpy as np
from qiskit.circuit.library import RealAmplitudes
from qiskit.primitives import StatevectorEstimator
from qiskit.quantum_info import SparsePauliOp

obs_zz = SparsePauliOp.from_list([("ZZ", 1.0)])
obs_xx = SparsePauliOp.from_list([("XX", 1.0)])

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

estimator = StatevectorEstimator()
job = estimator.run([(bound, [obs_zz, obs_xx])])
evs = job.result()[0].data.evs
print("⟨ZZ⟩, ⟨XX⟩ ≈", list(map(float, evs)))
print("ok")
qiskit SparsePauliOp · StatevectorEstimator UTF-8 · LF

IBM Runtime Estimator (yorum)

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

observable_runtime_estimator_sketch.py Python
# from qiskit_ibm_runtime import Estimator, Session
# with Session(backend=backend) as session:
#     est = Estimator(session=session)
#     job = est.run([(bound, [obs_zz, obs_xx])])
#     evs = job.result()[0].data.evs
qiskit IBM Runtime · yorum UTF-8 · LF

Okuma ve köprüler

Pauli gözlemlenebilirleri hem maliyet hem ölçüm tarafında kullanırsanız, aynı dosyayı iki farklı başlıkla arşivleyin: biri “model”, diğeri “ölçüm manifesti”. Aksi halde aylar sonra hangi sürümün raporlandığı ayırt edilemez.

Bir cümlelik özet Gözlemlenebilirleri listele → ilkel ve shot politikasını seç → gruplama ve transpile özetini yaz → sonuçları manifestte topla.