1. Ana sayfa
  2. İçerik planı
  3. Gürültü modeli (NoiseModel) · Qiskit
Qiskit · gürültü ve hata azaltma

Gürültü modeli — Aer’de CPTP kanalları soyut devre talimatlarına bağlayan taşıyıcı nesne

NoiseModel, yürütülecek devrede hangi kapılara hangi kuantum hata nesnelerinin ekleneceğini tanımlayan Aer tarafındaki merkezi veri yapısıdır. Bu sayfa modelin sözleşmesini, hata ekleme API’lerini, basis_gates ile transpile uyumunu ve from_backend köprüsünü işler. Histogram üretimi, shot mantığı ve yoğunluk motoru seçimi gürültü simülasyonu başlığında kalır; burada “model nesnesini nasıl kurarım?” sorusu öne çıkar. CPTP arka planı Kraus ve CPTP sayfasında derinleşir.

  • Paket: qiskit_aer.noise
  • Çekirdek: NoiseModel · add_quantum_error
  • Sınır: Aer yürütüm ayrı sayfa

Kavram haritası ve sayfa sınırı

NoiseModel, Aer yürütmesine “hangi hatanın nereye ekleneceği” bilgisini taşır; yürütmenin kendisi (shot, seed, histogram, iç temsil) gürültü simülasyonu sayfasında işlenir. Aynı başlıkta yer alan NoiseModel mimarisi bölümü, modelin yürütme içindeki yerini özetler; burada ise API yüzeyi ve tasarım disiplini öne çıkar.

Yoğunluk ve kanal

Kanalın CPTP olması yoğunluk evriminin fiziksel kalması için gereklidir; Aer fabrikaları bu şartı pratikte sağlar. Yoğunluk matrisi soyutlaması yoğunluk matrisi başlığında tutarlıdır.

Bu seride devam

Depolarize ve Pauli tipi hata aileleri ayrı alt başlıklarda genişletilir; okuma hatası okuma hatası sayfasına bırakılır. Sıfır gürültü ekstrapolasyonu ve derleme tabanlı yöntemler ilerideki dosyalarda yer alır.

Mimari özet NoiseModel = eşleme tablosu; AerSimulator = motor; histogram = başka katman.

NoiseModel sözleşmesi ve durum

Boş bir NoiseModel() önce varsayılan taban kapıları ve topoloji bilgisini taşır; ardından add_quantum_error ve benzeri yöntemlerle kuantum hatalar talimat adları ve kübit konumlarıyla ilişkilendirilir. Model, yürütücüye verildiğinde transpile edilmiş devredeki kapı örüntüleriyle eşleştirilir; eşleşmeyen talimatlar sessizce hatasız geçebileceği için kontrol listesi şarttır.

Tekrar kullanım ve kopya

Aynı model nesnesini paylaşmak veya kopyalamak deneyleri hızlandırır; fakat paylaşılan nesneye yan etkili ekleme yapılırsa beklenmedik çapraz sızıntı oluşur. İzole deneyler için kopya veya taze model üretmek güvenlidir.

Sürüm notu

qiskit-aer sürümü ile birlikte fabrika ve model yüzeyi ince değişebilir; üretim kodunda sabitlenmiş sürüm ve küçük birim test önerilir.

Hata ekleme: tek ve çift kübit

add_all_qubit_quantum_error aynı tek kübit kanalını birden çok talimat adına yayar; add_quantum_error ise belirli talimat ve kübit konumlarına bağlar. İki kübitlik kapılar için kanal boyutu daima dört boyutlu Hilbert uzayına uygun olmalıdır.

Okuma hatası ayrımı

Klasik ölçüm sonrası bit çevirme matrisi ayrı API ile eklenir; kuantum kanalı ile karıştırma histogramı çarpıtır. Ayrıntılar okuma hatası sayfasında toplanacaktır.

Pauli ve depolarize köprüsü

Hazır fabrikaların anlamı ve parametre seçimi depolarize gürültü ve Pauli hataları dosyalarında genişletilir; burada yalnızca modele bağlama adımı vurgulanır.

basis_gates ve coupling map

basis_gates listesi, transpile sonrası beklenen temel talimat kümesini ifade eder; modelde tanımlı olmayan bir talimat eşleşmeyebilir. coupling_map ise iki kübitlik hataların hangi çiftlerde anlamlı olduğunu sınırlamak için kullanılır.

Transpiler ile hizalama

Taban kapı seçimi ve hedef sözlüğü taban kapıları sayfasında işlenir; gürültü modelindeki talimat adları bu seçimle örtüşmelidir.

Topoloji sınırı

Çift kübit hatasını bağlı olmayan bir çifte eklemek fiziksel olarak anlamsız olabilir; Aer çoğu durumda tutarlılığı korur fakat yorumu zorlaştırır. Sahte veya gerçek backend topolojisi coupling map başlığıyla ilişkilendirilebilir.

from_backend ve kalibrasyon köprüsü

NoiseModel.from_backend (sürüme göre isim küçük farklar gösterebilir) gerçek veya sahte cihazın kalibrasyon tablosundan başlangıç modeli üretmeyi amaçlar. Bu, “cihazı birebir kopyaladım” anlamına gelmez: yaklaşık ve lokal bir sentetik modeldir; tarih ve gate seti değiştikçe güncellenmelidir.

Backend özellikleri

Okunacak hata oranları ve gate süreleri backend özellikleri çizgisinde yorumlanır; model kurulumu bu veriyi filtreleyerek seçer.

FakeBackend ve Aer

Yerel doğrulama akışı fake backend sayfasıyla uyumludur; burada yine hesap gerektirmeyen yol tercih edilir.

Transpile ile tutarlılık

Model, yüksek seviye devre yerine transpile çıktısındaki talimat adlarına göre kurulmalıdır; aksi halde beklediğiniz kapıya hata eklenmez. Bu disiplin, gürültülü deneylerde en sık görülen sessiz hatadır.

Ölçüm ve reset

Ölçüm ve sıfırlama talimatları hata modeline farklı kanallarla bağlanabilir; devre–model eşlemesi ölçüm mantığı ile birlikte düşünülmelidir.

Markov dışı gerçeklik

Aer’nin öğretim modelleri çoğunlukla Markov ve lokal hataya yakındır; renkli spektrum veya uzun ölçek korelasyonları tam yakalamaz. Bu sınır fizik odaklı hata sayfalarında tartışılır; burada yalnızca modelin kapsam uyarısı anılır.

Kod laboratuvarı

Örnekler qiskit ve qiskit-aer kurulumunu gerektirir; bulut çağrısı yoktur. Devreler transpile edilerek seçilen simülatörle çalıştırılır.

qnm_noise_all_qubit_single.py Python
from qiskit import QuantumCircuit
from qiskit.compiler import transpile
from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel, depolarizing_error

noise_model = NoiseModel()
err = depolarizing_error(0.04, 1)
noise_model.add_all_qubit_quantum_error(err, ["id", "rz", "h", "x"])

qc = QuantumCircuit(1)
qc.h(0)
qc.measure_all()

sim = AerSimulator(noise_model=noise_model)
tqc = transpile(qc, sim)
counts = sim.run(tqc, shots=3000).result().get_counts()
print(counts)
qiskit-aer NoiseModel · depolarizing_error UTF-8 · LF
qnm_noise_cx_two_qubit.py Python
from qiskit import QuantumCircuit
from qiskit.compiler import transpile
from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel, depolarizing_error

noise_model = NoiseModel()
noise_model.add_quantum_error(depolarizing_error(0.12, 2), ["cx"], [0, 1])

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

sim = AerSimulator(noise_model=noise_model)
tqc = transpile(qc, sim)
print(sim.run(tqc, shots=2000).result().get_counts())
qiskit-aer add_quantum_error · CX UTF-8 · LF
qnm_noise_basis_gates.py Python
from qiskit_aer.noise import NoiseModel

nm = NoiseModel()
print("basis_gates:", nm.basis_gates)
qiskit-aer NoiseModel · basis_gates UTF-8 · LF

İleri okuma ve özet

NoiseModel, gürültülü simülasyonun yapı taşıdır; doğru eşleşme ve CPTP seçimi olmadan histogramlar yanıltıcı olabilir.

Özet NoiseModel = talimat→kanal; transpile sonrası adlar; Aer = çalıştırma; okuma ayrı dosya.