Aer simülatörü — yerel klasik arka uç ve yöntem seçimi
Qiskit Aer, kuantum devrenizi makinenizde klasik kaynaklarla yürüten yüksek performanslı simülatör ailesidir; devre metnini tanımlamak devre yapısı sayfasında, ölçüm satırlarının anlamı ölçüm mantığı sayfasında tutulur. Burada ise Aer’in yürütme modeli üzerinde duruyoruz: hangi arka uçların neyi garanti ettiği, simülasyon method ailesinin ne zaman seçildiği, shot ve tohumla tekrarlanabilirlik, sayımlar ve bellek çıktısı ile donanımdan beklenti farkı. Üstel büyüme ve maliyetin teorik çerçevesi klasik simülasyon maliyeti başlığında; Aer yalnızca o sınırın içinde pratik bir motor sunar.
Aer ve devre modeli arasındaki çizgi
QuantumCircuit nesnesi, hangi kapıların hangi kübitlere uygulanacağını ve ölçümlerin klasik bite nasıl yazılacağını tarif eder; Aer ise bu tarifi alıp durum uzayında veya eşdeğer bir temsilde evrim ettirir ve ölçüm örneklerini üretir. Bu ayrım, “devre doğru mu?” sorusu ile “simülatör doğru mu ve hangi varsayımlarla?” sorusunu ayırmanızı sağlar. Transpiler, geçiş haritası ve oturum yönetimi gibi konular bu sayfada işlenmez; odak yalnızca Aer’in sağladığı yerel simülasyon sözleşmesidir.
Neden ayrı bir paket?
Aer, C++ çekirdeği ve vektörleştirme ile donatılmıştır; amaç, araştırma ve eğitimde sık tekrarlanan yürütmeleri makul sürede bitirmektir. Çekirdek Qiskit API’si devreyi taşırken, Aer o devreyi klasik bilgisayarda yorumlayan arka uçları sunar. Bu yüzden sürüm notlarında Aer’in kendi yayın döngüsünü izlemesi beklenir; import yolları ve seçenek adları sürümler arasında ince farklar gösterebilir — üretim kodunda sabitlediğiniz sürümü belgelemek iyi bir alışkanlıktır.
AerSimulator ve yürütme sözleşmesi
AerSimulator, çoğu kullanıcı için Aer’in “genel amaçlı” giriş noktasıdır: devreyi kabul eder, seçilen dahili yöntemle yürütür ve bir Result nesnesi döndürür. Yürütme çağrısı, çalıştırıcı soyutlaması üzerinden de Aer’e bağlanabilir; burada önemli olan, aynı devre metninin farklı arka uçlarda farklı süre ve bellek profiline sahip olabileceği gerçeğidir. Ölçüm içermeyen deneylerde tek bir ünite dalgası hesaplanırken, ölçüm ve shot ile istatistiksel örnekleme devreye girer — ikisi aynı “simülasyon” etiketini taşısa da maliyet analizi farklıdır.
Seçenekler ve varsayılan davranış
Arka uç oluşturulurken iletilen seçenek sözlüğü, yöntem seçimi, hassasiyet, paralellik ve çıktı biçimini etkiler. “Otomatik” yöntem, devre yapısına göre uygun temsili seçmeye çalışır; fakat Clifford alt uzayında kalan devreler ile genel ünite devreleri aynı kaba sınıfta değildir. Şüpheye düştüğünüzde küçük bir alt devrede hem otomatik hem elle seçilen yöntemi karşılaştırmak, beklenen sayıların örtüşüp örtüşmediğini doğrular.
Simülasyon yöntemi: statevector’dan MPS’e
Aer’in gücü, aynı devre için birden fazla klasik temsil sunabilmesidir. Tam durum vektörü yolu, genel ünite + ölçüm senaryolarında doğrudan ve şeffaftır; fakat kübit sayısı arttıkça bellek üstel olarak büyür. Yoğunluk matrisi yolu, karışık (entangled olmayan klasik karışım) durumlar için anlamlıdır ve yine maliyetli olabilir. Stabilizatör formalizmi, Clifford grubunda kalan devrelerde çok düşük maliyet sağlar. Matrix product state (MPS) ise belirli yerel etkileşim desenlerinde tam vektörü açıkça tutmadan ilerlemenize izin verebilir; her yöntemin geçerli olduğu devre sınıfı farklıdır.
Yöntem seçerken sorulacak sorular
Devrenizde hangi kapı aileleri baskın? Ölçüm ara adımları var mı, yoksa yalnızca sonda mı toplanıyor? Dinamik klasik kontrol (dinamik devreler) kullanıyorsanız, seçilen yöntemin bu talimatları destekleyip desteklemediğini belgelerden doğrulamak gerekir. Yanlış yöntem, ya hata ya da sessizce beklenmedik bir yavaşlama üretebilir.
Shots, tohum ve tekrarlanabilirlik
Ölçüm içeren bir iş, çoğu zaman birden fazla shot ile çalıştırılır; her shot bağımsız bir örnekleme yoludur ve histogram frekansları bu yolların birleşimidir. Simülatör rastgele sayı üreticisi sabitlenmezse, aynı devre ve shot sayısıyla bile çalıştırmalar arasında küçük farklar görürsünüz — bu bir hata değil, beklenen davranıştır. Karşılaştırmalı testlerde ve birim deneylerinde tohum (seed) sabitlemesi, farkın yalnızca algoritmadan kaynaklandığını göstermenize yardım eder.
Shot sayısı ve istatistik
Shot arttıkça örneklenen frekanslar, teorik Born olasılıklarına yaklaşır; fakat “yeterli” shot her zaman ucuz değildir. Aer hızlı olsa da, her shot yine de tam bir yürütme veya eşdeğer bir maliyet içerir. İstatistiksel güven aralığı hesaplamayı dış analiz araçlarına bırakmak, simülatör sayfasını sade tutar.
Counts, bellek ve dinamik akış notu
Sonuç nesnesinden okunan counts, ölçülen klasik bitlere karşılık gelen ikili dizgilerin frekans tablosudur; dizgi sırasının devredeki kayıt düzenine nasıl oturduğu, ölçüm mantığı sayfasında vurgulanan sözleşmeyle bağlantılıdır. Shot başına ham klasik sonuç dizilerini saklamak istiyorsanız bellek çıktısı açılır; bu, hata ayıklamada değerlidir fakat G/Ç ve depolama maliyetini artırır. Dinamik devrelerde ara ölçümler ve klasik geri besleme varsa, yürütme modeli tek bir “sabit derinlikli” yürüyüş olmaktan çıkar — Aer bu senaryoları destekler, fakat yorumu yine devre metni sırasına bağlıdır.
Ölçüm olmayan deneyler
Yalnızca ünite evrim ve belirli bir durum çıktısı istiyorsanız, shot ve histogram yerine durum vektörü veya genlik okumasını tercih eden yardımcılar daha uygun olabilir; Aer ailesi içinde bu ihtiyaçlar için ayrı arka uçlar bulunur. Burada yalnızca şunu hatırlatıyoruz: ölçüm satırı eklendiğinde “tek ünite” resmi kapanır; analiz katmanını buna göre ayırın.
Gürültü ve ideal simülasyon sınırı
Varsayılan ideal simülatör, T1/T2 okuma hatası ve kapı kalibrasyon sapması eklemez; bu tür etkiler için gürültü modeli veya emülasyon katmanı gerekir. Kuantum kanal matematiği ve gürültü sınıflandırması Kraus ve CPTP gibi fizik odaklı sayfalarda tutulur; Aer ile birleştirildiğinde ise “hangi hatanın hangi parametreyle eklendiği” ayrı bir tasarım kararıdır. Bu sayfa, gürültü kurulumunun adım adım reçetesini vermez — yalnızca ideal ve gürültülü yürütmelerin farklı sorulara yanıt verdiğini netleştirir.
Performans ve kaynak ipuçları
Paralel shot yürütme, çok çekirdekli makinelerde duvar saatini iyileştirebilir; fakat bellek baskısı üstel olduğunda çekirdek sayısı sorunu çözmez. Devreyi transpile ederek gereksiz kapıları atmak hem donanım hem simülasyon için kazanç sağlar; fakat transpile’ın matematiksel eşdeğerlik altında bıraktığı devre sınıfı, kullandığınız geçiş ve optimizasyon seviyesine bağlıdır. Büyük deneylerde önce düşük kübit prototipi, sonra ölçek artırımı disiplinini korumak, Aer’i bir “sihirli büyütücü” gibi kullanmanın önüne geçer.
Bellek profilini izleme
İşletim sistemi düzeyinde bellek izleme, özellikle statevector yönteminde ani sıçramaları erken gösterir. MPS veya stabilizatör gibi alternatifler bazen dramatik kazanç sağlar, bazen de devre Clifford olmadığı için uygun değildir; otomatik seçim bu yüzden tam bir garanti değil, sezgisel bir başlangıçtır.
Kod laboratuvarı
İlk blok, tipik bir AerSimulator yürütmesi ve sayım çıktısı iskeletini gösterir (paket adları kurulumunuza göre qiskit_aer olabilir). İkinci blok, aynı devre için statevector yöntemini açıkça seçerek seçenek sözlüğünün nasıl iletildiğini özetler; sürümünüzde anahtar adları farklıysa resmi Aer belgeleriyle eşleştirin.
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
backend = AerSimulator()
job = backend.run(qc, shots=1000, seed_simulator=12345)
result = job.result()
print(result.get_counts())
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# Örnek: statevector yöntemini açıkça seçmek (sürümünüze göre anahtarlar değişebilir).
sim = AerSimulator(method="statevector")
job = sim.run(qc, shots=500, seed_simulator=7)
print(job.result().get_counts())
İleri okuma ve özet
Aer, devre metnini klasik dünyada yürüten motordur; devrenin kendisi ve ölçüm yazımı hâlâ devre modeli sayfalarının alanıdır. Bir sonraki adım olarak, bu dizide eklenecek kardeş konularda gürültü emülasyonu, donanım modeli ve sonuç analizi derinleştirilebilir.
- QuantumCircuit yapısı — Aer’e verilen talimat kuyruğu.
- Ölçüm mantığı — counts ve klasik eşlemenin okunması.
- Klasik simülasyon maliyeti — üstel sınırın teorik çerçevesi.