- عنوان کتاب: Quantum Programming in Depth Solving problems with Q and Qiskit
- نویسنده: Mariia Mykhailova
- حوزه: برنامه نویسی کوانتومی
- سال انتشار: 2025
- تعداد صفحه: 290
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 2.23 مگابایت
من در اوایل سال ۲۰۱۷ به مایکروسافت کوانتوم و به تبع آن، به دنیای محاسبات کوانتومی پیوستم، درست زمانی که تیم شروع به توسعه زبان برنامهنویسی کوانتومی کرد که بعدها به Q# تبدیل شد. بخش بزرگی از هشت سال بعدی را خودم صرف یادگیری محاسبات کوانتومی و کمک به دیگران برای انجام همین کار کردم، چه به عنوان بخشی از شغلم در مایکروسافت و چه در دورهای که در دانشگاه نورث ایسترن تدریس میکنم. و در حین انجام این کار، متوجه چندین شکاف در نحوه آموزش محاسبات کوانتومی شدم. اول، بسیاری از مطالب مربوط به محاسبات کوانتومی فقط بر جنبههای ریاضی آن متمرکز بودند. من یک ریاضیدان کاربردی هستم، بنابراین با ریاضی راحت هستم. اما من یک مهندس نرمافزار هستم و وقتی میتوانم الگوریتمها را پیادهسازی و با اجرای آنها آزمایش کنم، با آنها بسیار راحتتر هستم! اولین پروژه من در آموزش محاسبات کوانتومی، Quantum Katas، بر معرفی اصول اولیه – حالتها و گیتهای کوانتومی، اندازهگیریها و الگوریتمهای ساده – از طریق مجموعهای از مسائل برنامهنویسی که یادگیرنده برای درونی کردن نظریه حل میکرد، متمرکز بود. شکاف دوم بعداً در سفر یادگیری خود را نشان میدهد. منابع زیادی با عنوان «محاسبات کوانتومی ۱۰۱» وجود دارد که بر مفاهیم مقدماتی تمرکز دارند. اما، وقتی اصول اولیه را یاد گرفتید، قدم بعدی چیست؟ «محاسبات کوانتومی ۲۰۱» چگونه است؟ اگر تا به حال فقط مدارهای ساده را اجرا کردهاید، چگونه شروع به پیادهسازی الگوریتمهای کوانتومی واقعی میکنید؟ چگونه کد کوانتومی که مینویسید را آزمایش میکنید؟ در مورد برنامهنویسی کوانتومی برای رایانههای کوانتومی مقاوم در برابر خطا در آینده چه چیزی باید بدانید؟ و در نهایت، چگونه متوجه میشوید که آیا راهحل کوانتومی شما برای مسئلهای که به دنبال آن هستید، بهتر از یک الگوریتم کلاسیک عمل خواهد کرد یا خیر؟ هدف این کتاب پاسخ به این سؤالات است. این کتاب مجموعهای از مسائل را از ساخت کتابخانههای برنامهنویسی کوانتومی گرفته تا حل مسائل کلاسیک با استفاده از الگوریتمهای کوانتومی به شما ارائه میدهد و شما را در حل راهحلها راهنمایی میکند. به عنوان بخشی از بحث، گردش کار توسعه نرمافزار کوانتومی را معرفی میکنم، از کشف الگوریتم مناسب برای حل مسئله مورد نظر گرفته تا پیادهسازی راهحل، آزمایش آن و ارزیابی عملکرد آن. هر مسئله در نهایت به عنوان یک پروژه نرمافزاری سرتاسری پیادهسازی میشود. در سراسر کتاب، من از Qiskit و Q# – دو زبان برنامهنویسی کوانتومی که امروزه برای تحقیقات محاسبات کوانتومی استفاده میشوند – استفاده میکنم تا مطمئن شوم ابزارها و روشهایی که در مورد آنها صحبت میکنم با چشمانداز فعلی برنامهنویسی کوانتومی مرتبط هستند. البته، مباحث زیادی وجود دارد که نتوانستم در کتاب بگنجانم: کاربردهای خاص دامنه، معماری رایانههای کوانتومی مقاوم در برابر خطا و پشته نرمافزاری که برای آنها میسازیم، و اشکالزدایی الگوریتمهای کوانتومی در مقیاس بزرگ، و موارد دیگر. امیدوارم این کتاب به شما نشان دهد که چگونه به عنوان یک مهندس نرمافزار و حلکننده مسئله در مورد محاسبات کوانتومی فکر کنید و در نتیجه شما را با طرز فکری که برای ادامه جستجوی دانش خود نیاز دارید، مجهز کند!
I joined Microsoft Quantum and, by extension, the world of quantum computing in early 2017, just as the team started developing the quantum programming language that later became Q#. I spent a big part of the next eight years learning quantum computing myself and helping others do the same, both as part of my job at Microsoft and in the course I teach at Northeastern University. And, while doing this, I noticed several gaps in the way quantum computing was taught. First, a lot of material on quantum computing focused on its mathematical aspects only. I am an applied mathematician by training, so I’m comfortable with math. But I’m a software engineer by trade, and I’m a lot more comfortable with algorithms when I can implement them and experiment with running them! My first project in quantum computing education, the Quantum Katas, focused on introducing the basics—quantum states and gates, measurements, and simple algorithms—through a series of programming problems that the learner would solve to internalize the theory. The second gap shows up later in the learning journey. There are plenty of “quantum computing 101” resources that focus on introductory concepts. But, once you’ve mastered the basics, what’s next? What does “quantum computing 201” look like? If you’ve only ever run simple circuits, how do you start implementing real quantum algorithms? How do you test the quantum code you write? What do you need to know about quantum programming for future fault-tolerant quantum computers? And, ultimately, how do you figure out whether your quantum solution to the problem you’re looking at is going to do better than a classical algorithm? This book aims to answer these questions. The book offers you a selection of problems, from building quantum programming libraries to solving classical problems using quantum algorithms, and walks you through the solutions. As part of the discussion, I introduce the quantum software development workflow, from figuring out the algorithm suitable to solve the problem at hand to implementing the solution, testing it, and evaluating its performance. Each problem ends up being implemented as an end-to-end software project. Throughout the book I use Qiskit and Q#—two of the quantum programming languages used for quantum computing research today—to make sure the tools and methods I talk about are relevant to the current quantum programming landscape. There are, of course, plenty of topics I could not include in the book: domainspecific applications, the architecture of fault-tolerant quantum computers and the software stack we’re building for them, and debugging large-scale quantum algorithms, among others. I hope that this book will show you how to think about quantum computing as a software engineer and problem solver and thus equip you with the mindset you’ll need to continue your pursuit of knowledge!
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: Quantum Programming in Depth Solving problems with Q and Qiskit
نظرات کاربران