کتاب Quantum Computing for Programmers یا پردازش کوانتوم برای برنامهنویسان، از جدیدترین منابع آموزش پردازش کوانتوم برای برنامهنویسان کامپیوتر است. این کتاب در 8 فصل علاوه بر آموزش مقدمات کوانتوم و علم آن به شما برنامهنویسی آن را نیز آموزش میدهد.
در ادامه مقدمهای از کتاب Quantum Computing for Programmers را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Quantum Computing for Programmers:
این مقدمه برای محاسبات کوانتومی از دیدگاه یک برنامه نویس کلاسیک برای دانشجویان و پزشکان به طور یکسان در نظر گرفته شده است. بیش از 25 الگوریتم اساسی با مشتقات کامل ریاضی و کد کلاسیک برای شبیهسازی، با استفاده از یک پایه کد منبع باز که از پایه در پایتون و ++C توسعه یافته است، توضیح داده شده است.
پس از ارائه مبانی محاسبات کوانتومی، نویسنده بر روی الگوریتمها و زیرساخت شبیهسازی کارآمد آنها تمرکز میکند که با تلهپورت کوانتومی، کدگذاری فوقچگال، الگوریتم برنشتاین وزیرانی و الگوریتم Deutsc-Jozsa آغاز میشود. پوشش الگوریتمهای پیشرفته شامل آزمایش برتری کوانتومی، تبدیل فوریه کوانتومی، تخمین فاز، الگوریتم شور، الگوریتم گروور با شمارش کوانتومی و تقویت دامنه، پیاده روی تصادفی کوانتومی، و الگوریتم Solovay-Kitaev برای برنامه دروازه است.
شبیهسازی کوانتومی با حل ویژه کوانتومی متغیر، بهینهسازی تقریبی کوانتومی، و الگوریتمهای Max-Cut و Subset-Sum با NP-complete بررسی میشود. کتاب Quantum Computing for Programmers همچنین در مورد مسائل مربوط به بهرهوری برنامهنویس، نویز کوانتومی، تصحیح خطا، و چالشهای زبانهای برنامهنویسی کوانتومی، کامپایلرها و ابزارها و بخش آخر در مورد تکنیکهای کامپایلر برای ترجمه بحث میکند.
رابرت هاندت یک مهندس ممتاز در گوگل است که در آنجا توسعه نرم افزار برای ابررایانههای TPU گوگل، کامپایلر XLA برای TensorFlow، یک کامپایلر CUDA منبع باز، و در حال حاضر زنجیره ابزار سنتز سطح بالا XLS را رهبری میکند. او بیش از 25 مقاله علمی دارد، بیش از 35 حق ثبت اختراع دارد و یکی از اعضای ارشد IEEE است.
فکر میکنم میتوانم با اطمینان بگویم که هیچ کس مکانیک کوانتومی را نمیفهمد.
فاینمن (1965)
من تحت تأثیر نمونههای متعددی از نظریههای ریاضی قرار گرفتهام که واقعاً در مورد الگوریتمهای خاص هستند. این تئوریها معمولاً با عبارات ریاضی فرموله میشوند که بسیار دست و پا گیرتر و طبیعی تر از فرمول معادلی است که دانشمندان رایانه امروزی از آن استفاده میکنند.
کنوت (1974)
کتاب Quantum Computing for Programmers مقدمه ای بر محاسبات کوانتومی از دیدگاه یک برنامه نویس کلاسیک است. بیشتر مفاهیم با کد توضیح داده میشوند، بر اساس این بینش که بسیاری از ریاضیات پیچیده که معمولاً در محاسبات کوانتومی یافت میشوند ممکن است در کد بسیار ساده به نظر برسند. برای بسیاری از برنامهنویسان، خواندن کد سریعتر از خواندن نمادهای پیچیده ریاضی است. کدگذاری همچنین اجازه آزمایش را میدهد، که به ایجاد شهود و درک مکانیسمهای اساسی محاسبات کوانتومی کمک میکند. من معتقدم که این رویکرد شروع را کارآمد و سرگرمکننده میکند.
بیشتر بخوانید: کتاب Quantum Physics For Beginners
برخلاف سایر منابع آموزشی، از چارچوبهای نرمافزاری موجود در این کتاب، مانند جعبه ابزار Qiskit به خوبی توسعهیافته از IBM یا Google’s Cirq استفاده نخواهیم کرد. در عوض، ما زیرساخت خود را از ابتدا، بر اساس کتابخانه numpy پایتون، میسازیم. به نظر میرسد که برای یادگیری اصول، تنها چند صد خط کد مورد نیاز است. این کد اولیه کند است، اما واضح است. اشکالزدایی و آزمایش با آن آسان است، که آن را به یک وسیله یادگیری عالی تبدیل میکند.
سپس زیرساخت را بهبود میدهیم، آن را با C++ تسریع میکنیم و یک نمایش ظریف و پراکنده را به تفصیل شرح میدهیم. ما مفاهیم اولیه کامپایلر را معرفی میکنیم که امکان انتقال مدارهای ما به آن پلتفرمهای دیگر – Qiskit، Cirq و دیگران را فراهم میکند. این امکان استفاده از ویژگیهای پیشرفته این سیستمها، مانند عملکرد مقیاسپذیر و مدلهای خطای پیشرفته را فراهم میکند.
به طور معمول، مقدمه ای بر محاسبات کوانتومی با معرفی مجدد قابل توجهی از جبر خطی پیچیده آغاز میشود. ما در اینجا از این الگو پیروی نمیکنیم. بسیاری از برنامهنویسان پایه محکمی در جبر خطی دارند، اما برخی دیگر فاقد پیشزمینه یا علاقه به این موضوع هستند.
هدف من این است که منبع یادگیری جذابی برای هر دو گروه باشم، بدون اینکه وارد جزئیات جبر خطی شوم. بنابراین من فقط آشنایی اولیه با اعداد مختلط، بردارها و ماتریسها را فرض میکنم. ما تعدادی از مفاهیم اصلی را در فصل 1 کتاب Quantum Computing for Programmers مرور میکنیم. همانطور که در متن پیش میرویم، تعداد کمی از مفاهیم ریاضی اضافی را اضافه میکنیم که برای درک الگوریتمها ضروری هستند. ما امیدواریم که این قالب برای جبر خطی به چالش کشیده شده مفید باشد در حالی که برای افراد معرفت خیلی کم عمق نباشد. پس از معرفی مفاهیم پایه ریاضی، کتاب Quantum Computing for Programmers در بخشهای اصلی زیر تنظیم شده است:
در فصل 2 کتاب Quantum Computing for Programmers مفاهیم اصلی محاسبات کوانتومی را معرفی کرده و آنها را با ماتریسها و بردارهای کامل در پایتون پیادهسازی میکنیم. ما در مورد حالتها، عملگرها، درهمتنیدگی و اندازهگیری بحث میکنیم. ما راههای مختلفی برای ساخت، توصیف و تحلیل کیوبیتها و مدارهای کوانتومی نشان میدهیم. مکانیک کوانتومی، برهمنهی، درهمتنیدگی و اندازهگیری همگی موضوعات پیچیده و عمیقاً فلسفی هستند. با این حال، در این متن، ما منحصراً بر جنبههای محاسباتی نظریه تمرکز میکنیم.
در فصل 3 کتاب Quantum Computing for Programmers با الگوریتمهای مقدماتی، با استفاده از زیرساختهای توسعه یافته تا کنون دنبال میشود. مطالب به روشی مفصل و با مشتقات ریاضی دقیق ارائه شده است. زیرساخت اولیه توسعهیافته تا این مرحله به تعداد کیوبیتهای بالاتری که برای الگوریتمهای پیچیده مورد نیاز است، نمیرسد.
در فصل 4، به جزئیات تکنیکهایی برای کاربرد سریعتر گیت و شتاب با C++ میپردازیم. ما نشان میدهیم که چگونه یک نمایش پراکنده میتواند بهترین نتایج را برای کلاس خاصی از الگوریتمها ایجاد کند. این بخشها منجر به ساخت یک شبیه ساز کوانتومی با کارایی بالا میشود. خوانندگانی که علاقهای به زیرساختها ندارند ممکن است این بخش را نادیده بگیرند یا حتی از آن بگذرند.
در فصل 5 کتاب Quantum Computing for Programmers ما خودمان را متقاعد میکنیم که کامپیوترهای کوانتومی واقعاً دارای قابلیتهایی هستند که فراتر از ماشینهای کلاسیک است.
با این بینش، فصل 6 کتاب Quantum Computing for Programmers در مورد الگوریتمهای پیچیده جزئیات مهمی را در مورد چندین الگوریتم اصلی محاسبات کوانتومی، از جمله جستجوی گروور، تبدیل فوریه کوانتومی، تخمین فاز، پیادهرویهای تصادفی کوانتومی، الگوریتم شور برای فاکتورسازی اعداد صحیح، و یک کوانتوم حل متغیر با برخی از ei ارائه میدهد. برنامههای کاربردی. این بخش همچنین الگوریتم اصلی Solovay-Kitaev را برای تقریب هر دروازه واحد از یک مجموعه دروازه جهانی کوچک توضیح میدهد. پایه و اساس ساخته شده در فصلهای قبلی برای پیادهسازی و درک کامل این الگوریتمهای شگفتانگیز کافی است.
فصلهای 7 و 8 کتاب Quantum Computing for Programmers سپس به مسائل عملی پیرامون بهرهوری برنامهنویس میپردازند. ما تصحیح خطای کوانتومی را لمس میکنیم، که برای امکانسنجی محاسبات کوانتومی ضروری است. ما همچنین در مورد طراحی زبان برنامهنویسی کوانتومی، کامپایلرها و ابزارهایی برای بهبود بیشتر بهرهوری برنامهنویس بحث میکنیم.
پیوست حاوی مطالب جالب دیگری است که با جریان متن اصلی مطابقت ندارد. به طور خاص، شامل شرح مفصلی از زیرساختهای شبیهسازی پراکنده است.
کد منبع
بسیاری از مطالب کتاب Quantum Computing for Programmers با ریاضی و کد توضیح داده شده است. با این حال، برای جلوگیری از تبدیل این کتاب به فهرست کدهای غولپیکر، کدهای کمتر جالب یا تکراری را با ساختارهایی مانند […] مخفف میکنیم. کدهای داربست، مانند دستورات واردات پایتون یا دستورات #include C++، معمولا حذف میشوند. منابع کامل تحت مجوز Apache مجاز در GitHub به همراه دستورالعملهایی در مورد نحوه دانلود، ساخت و اجرا میزبانی میشوند:
https://github.com/qcc4cp/qcc
مشارکت، نظرات و پیشنهادات همیشه پذیرفته میشود. تایپ کردن کد ممکن است باعث ایجاد خطا شده باشد، اما منبع حقیقت مخزن آنلاین است. همچنین احتمالاً کد فراتر از آنچه در اینجا منتشر شده است تکامل یافته است.
سرفصلهای کتاب Quantum Computing for Programmers:
- Frontmatter
- Dedication
- Contents
- Acknowledgements
- Introduction
- 1 The Mathematical Minimum
- 2 Quantum Computing Fundamentals
- 3 Simple Algorithms
- 4 Scalable, Fast Simulation
- 5 Beyond Classical
- 6 Complex Algorithms
- 7 Quantum Error Correction
- 8 Quantum Languages, Compilers, and Tools
- Appendix: Sparse Implementation
- References
- Index
فایل کتاب Quantum Computing for Programmers را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.