پروژه — ساخت یک شبیهساز کوانتومی کوچک از صفر
هدف. شبیهساز حالت-برداریِ خالص-numpy با جلوی متنی مدار، مرتبهها سریعتر از ضرب kron سادهلوحانه، آزمونشده در برابر هم پاسخهای دستحساب و هم Qiskit.
تحویلدادنیها.
- بستهٔ
qsim/:dense.py(موتور حالت-برداری، مبتنیبر tensordot)،sparse.py(مبتنیبر dict)،parser.py،sampling.py،__init__.py. - مجموعهدروازه: H، X، Y، Z، S، T، RX/RY/RZ(θ)، CX، CZ، SWAP، M (اندازهگیری)، بهاضافهٔ یونیتی دلخواه تککیوبیتی.
- CLI:
python -m qsim circuit.txt --shots 1024 --seed 7→ هیستوگرام؛--method dense|sparse. - مجموعهٔ آزمون (
test_qsim.py): آزمونهای تفاضلی علیه پیادهسازی kron سادهلوحانه (n≤8)؛ علیه توزیعهای همبذر Aer (n≤10)؛ آزمونهای ویژگی (یونیتی، تمیزی ancilla)؛ نشانگرهای رگرسیون کارایی. - گزارش محک (
BENCHMARK.md): زمان-بهازای-دروازه و حافظه بر حسب n برای موتور شما و Aer، یک شکل بهازای هرکدام.
نقاط عطف.
- M1: دروازههای تککیوبیتی درست (17.3 و 17.4)، آزمونشده در برابر ماتریسهای دستی.
- M2: CX/CZ/SWAP کارکننده (17.5)، توزیع ۵۰/۵۰ حالت بل راستیآزماییشده.
- M3: بازنویسی tensordot (17.7) همهٔ آزمونهای M1–M2 را رد کند، ≥۱۰۰ برابر سرعت در n=20.
- M4: تجزیهگر + CLI + نمونهگیری (17.8 تا 17.10).
- M5: موتور اسپارس موافق متراکم روی ۵+ مدار (17.13).
- M6 (امتداد): موتور پایدارنده با جدول خودتان یا
stim(17.14).
معیارهای پذیرش. همهٔ آزمونها سبز؛ اعمال دروازه در n=26 < ۱ ثانیه؛ توزیعهای بل، GHZ (n=8)، QFT (n=4) با Aer در ۲σ در ۴۰۹۶ شات بخوانند؛ هر ماژول docstringی دارد که پیچیدگیاش در n را بیان میکند.