کتاب Quantum Computing: From Concepts to Code (محاسبات کوانتومی: از مفاهیم تا کد) یک راهنمای جامع و کاربردی برای یادگیری اصول و روشهای برنامهنویسی کوانتومی است. این کتاب به دو بخش تقسیم شده است: بخش اول به معرفی مفاهیم پایه، اصطلاحات و ریاضیات مرتبط با محاسبات کوانتومی میپردازد، در حالی که بخش دوم به بررسی برخی از مهمترین و مشهورترین الگوریتمهای کوانتومی میپردازد و با استفاده از ابزارها و ایدههای معرفی شده، به خوانندگان کمک میکند تا برنامههای کوانتومی خود را بنویسند. با استفاده از تمرینات و مثالهای عملی، این کتاب به یادگیرندگان این امکان را میدهد که از تئوری به کاربرد عملی برسند و مهارتهای لازم برای کار در دنیای کوانتومی را توسعه دهند.
در ادامه مقدمهای از کتاب Quantum Computing: From Concepts to Code را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Quantum Computing: From Concepts to Code:
صد هزار خوش آمدید!
—ویلیام شکسپیر، تراژدی کوریولانوس، ۱۶۰۵ [۱۹۲]
خوش آمدید! هدف این کتاب ارائه تمام اطلاعات مورد نیاز برای نوشتن و اجرای برنامهها بر روی کامپیوترهای کوانتومی است. خواهید دید که این سفر، ذهنی، هیجانانگیز، چالش برانگیز و ارزشمند است. مغزتان از این پاداش سپاسگزار خواهد بود و تا پایان این کتاب، مهارتهایی را کسب خواهید کرد که شما را برای انقلاب بزرگ بعدی در برنامهنویسی کامپیوتر آماده میکند.
این موضوع فوقالعاده است، به همین دلیل در وهله اول به سمت آن جذب شدم. از آنجایی که دوست دارم چیزهای جالب را با افراد جالب به اشتراک بگذارم، این کتاب را برای کمک به شما برای پیوستن به این جمع و کشف و تسلط بر این ایدههای جدید و هیجانانگیز نوشتهام.
کامپیوتر کوانتومی چیست؟
اصطلاح “کامپیوتر کوانتومی” مطمئناً عجیب به نظر میرسد، اما معنای آن چیست؟
کامپیوتر کوانتومی یک روش کاملاً جدید برای تفکر و اجرای الگوریتمها است. این شامل نوعی برنامهنویسی است که بر روی یک رایانه کوانتومی اجرا میشود، یک دستگاه الکترونیکی که به طور خاص برای دستکاری اشیاء در مقیاس کوانتومی بسیار کوچک طراحی شده است. اشیاء در این مقیاس به گونهای رفتار میکنند که شبیه به آنچه که به آن عادت داریم نیست. ما میتوانیم برنامههایی بنویسیم که از این رفتارهای کوانتومی برای انجام کارهایی استفاده میکنند که به طور گستردهای فراتر از محدوده کارهایی است که میتوانیم بر روی رایانههای معمولی انجام دهیم.
به عنوان مثال، میتوانیم یک الگوریتم را با استفاده از میلیاردها، تریلیونها یا حتی تریلیونها تریلیون ورودی به طور همزمان ارزیابی کنیم. نکته اینجاست که هر بار که برنامه را اجرا میکنیم، فقط یک نتیجه از این نتایج به عنوان خروجی در دسترس ما است. اما اگر باهوش باشیم، میتوانیم احتمال خروجی مورد نظرمان را افزایش دهیم.
مقالات رایج در مورد کامپیوترهای کوانتومی گاهی اوقات نشان میدهند که این سیستمها جایگزین محاسبات معمولی خواهند شد و اساساً همه چیز را سریعتر میکنند. اینطور نیست! این نوع جدید از سختافزار، انواع جدیدی از برنامهها را اجرا میکند که اغلب برای کلاسهای جدیدی از مشکلات طراحی شدهاند که فراتر از توانایی رایانههای معمولی هستند. این یک روش کاملاً جدید برای تفکر در مورد محاسبات است.
چرا باید کتاب Quantum Computing: From Concepts to Code را بخوانید؟
اگر کامپیوتر کوانتومی برای شما جذاب به نظر میرسد، یا اگر میخواهید برنامههای خود را برای تحقق ایدههای خود بنویسید، باید این کتاب را بخوانید. این زمان بسیار هیجانانگیزی برای ورود به این زمینه است. این هنوز به ندرت در رادار اکثر افراد قرار دارد، بنابراین شانس خوبی وجود دارد که هر کاری که میخواهید با کامپیوتر کوانتومی انجام دهید، اولین کسی باشید که آن را انجام میدهید.
در حال حاضر، تنها چند کامپیوتر کوانتومی واقعی در جهان وجود دارد و اکثر آنها قدرت محاسباتی زیادی ندارند. اما این کامپیوترها واقعی هستند و کار میکنند. برخی از آنها حتی در وب هستند، جایی که میتوانید از آنها به صورت رایگان استفاده کنید! مردم سخت در تلاش هستند تا با تلاشهای مهندسی فوقالعادهای که به ما امکان میدهد این ماشینها را گسترش دهیم تا قدرتمندتر، قابل اعتمادتر و آسانتر برای استفاده شوند.
بسیاری از مردم (از جمله من) معتقدند که زمینه کامپیوتر کوانتومی مسیری مشابه مسیر کامپیوترهای کلاسیک را طی میکند. کامپیوترهایی که امروزه به آنها عادت داریم، از دستگاههای فیزیکی عظیم الجثهای شروع شدند که کار با آنها باورنکردنی دشوار و گران قیمت بود. اکنون به میکروچیپهایی تبدیل شده اند که در همه چیز از سرور ابری مورد علاقه شما گرفته تا ساعت مچی و تستر شما وجود دارد.
چه چند سال، چه چند سال دیگر، کامپیوترهای کوانتومی قدرتمند، قابل اعتماد و مقرون به صرفه ظهور خواهند کرد. آنها نه تنها بر محاسبات بلکه بر کل جامعه تأثیر زیادی خواهند گذاشت، زیرا مشکلاتی که میتوانند به حل آنها کمک کنند، از نظر وسعت و مقیاس گسترده هستند. هنگامی که این اتفاق میافتد، بسیاری از مردم ناگهان تمرکز خود را بر کامپیوتر کوانتومی معطوف میکنند و این زمینه شکوفا خواهد شد. با آشنایی با این موضوع در حال حاضر، از منحنی پیشی خواهید گرفت و آماده خواهید بود که راه را برای دیگران هموار کنید.
محاسبات کوانتومی کاملاً متفاوت از برنامهنویسی معمولی است: هیچ حلقهای، هیچ تابعی و هیچ ساختار دادهای وجود ندارد! حتی نمیتوانیم نسخههایی از متغیرها ایجاد کنیم! تقریباً هر چیزی که برنامهنویسی کلاسیک را تشکیل میدهد، کنار گذاشته میشود و ما باید با مفاهیم کاملاً جدید که به روشهای کاملاً جدید سازمانیافتهاند، از نو شروع کنیم.
این موضوع شگفتانگیز و چالش برانگیز است که هم هوش و هم تخیل شما را به کار میگیرد.
اگر عاشق ایدههای جدید هستید و دوست دارید دنیا را به شیوههای جدید ببینید، عاشق این موضوع خواهید شد. این فقط تکنولوژی آیندهنگر نیست، بلکه سرگرم کننده هم هست.
کتاب Quantum Computing: From Concepts to Code برای چه کسانی است؟
این کتاب برای افرادی است که میخواهند محاسبات کوانتومی را درک کنند و حتی الگوریتمهای کوانتومی خود را طراحی و بنویسند. اگر در کتاب ورق زدهاید و از آنچه به نظر میرسد ریاضیات دلهرهآوری است، ناامید شدهاید، لطفا نگران نباشید! همانطور که در ادامه توضیح خواهم داد، سعی کردهام آن را راحت کنم، حتی اگر در گذشته بهترین رابطه را با ریاضیات و نمادهای آن نداشتهاید. نکته کلیدی ریاضیات، انتقال ایدهها است، بنابراین من بر رویکرد غیررسمی تمرکز میکنم که برای برقراری ارتباط با شما طراحی شده است.
آرام پیش خواهیم رفت و خواهید دید که زمانی که با جداسازی عبارات ریاضی به اجزای تشکیل دهنده آنها آشنا شوید، همه چیز به طور روان و بدون رمز و راز در کنار هم قرار میگیرد.
اگرچه نمادهای استفاده شده در محاسبات کوانتومی و در نتیجه در این کتاب ممکن است ناآشنا به نظر برسند، اما بیشتر آنها خلاصههایی برای لیستهای مختلف اعداد هستند. اگر کمی ریاضیات دبیرستان را به خاطر دارید، آماده هستید.
تا زمانی که کارمان تمام شود، باید بتوانید تقریباً به هر یک از ریاضیات کتاب نگاه کنید، آن را به صورت کلامی بیان کنید و بلافاصله تایید کنید و فکر کنید: “بله، مطمئناً، این منطقی است.” این فقط به دانستن معنای نمادها و نحوه تفسیر آنها در متن مربوط میشود.
چه چیزهایی در کتاب Quantum Computing: From Concepts to Code یاد خواهید گرفت؟
کتاب Quantum Computing: From Concepts to Code به شما نشان میدهد که الگوریتمهای کوانتومی چگونه کار میکنند و چگونه میتوانید الگوریتمهای خودتان را بنویسید.
کامپیوترهای کوانتومی میتوانند به طور همزمان میلیاردها راه حل برای یک مشکل را محاسبه کنند. آنها به ما امکان میدهند تا حالت یک شی کوانتومی را به طور آنی به شی کوانتومی دیگری در هر نقطه از جهان منتقل کنیم. و آنها میتوانند نرمافزار رمزگذاری که امروزه از اکثر اسرار آنلاین جهان محافظت میکند را بشکنند.
آنها همچنین محدودیتهای منحصر به فردی دارند. به عنوان مثال، نمیتوانیم یک نسخه از یک قطعه دلخواه اطلاعات کوانتومی ایجاد کنیم. گاهی اوقات خروجیهای نادرست دریافت میکنیم. و در حالی که یک کامپیوتر کوانتومی میتواند تعداد زیادی ورودی را به طور همزمان ارزیابی کند، ما فقط میتوانیم یک خروجی را به عنوان نتیجه هر اجرای برنامه دریافت کنیم و معمولاً نمیتوانیم حتی انتخاب کنیم که کدام یک از خروجیهای ممکن را دریافت خواهیم کرد (اگرچه، همانطور که قبلاً ذکر شد، با کمی تلاش میتوانیم احتمال دریافت پاسخ مفید را افزایش دهیم).
این یک دنیای کاملاً جدید است!
نمای کلی کتاب Quantum Computing: From Concepts to Code
کتاب Quantum Computing: From Concepts to Code به دو بخش تقسیم شده است. بخش اول، تمام ایدهها، اصطلاحات، تصاویر و ریاضیاتی را که برای درک و نوشتن برنامههای کوانتومی نیاز دارید، ارائه میدهد. بخش دوم، برنامهنویسی کوانتومی را با مرور برخی از مشهورترین و مهمترین الگوریتمهای کوانتومی آموزش میدهد.
پس از یادگیری آن الگوریتمها، آماده خواهید بود تا برنامههای کوانتومی خود را بنویسید.
در اینجا مروری بر محتوای هر فصل کتاب Quantum Computing: From Concepts to Code آمده است:
بخش اول: حالات، عملگرها و سیستمها
بخش اول کتاب Quantum Computing: From Concepts to Code از سطح مقدماتی شروع میشود و به تدریج ایدهها، زبان، گرافیک و ریاضیات تشکیل دهنده محاسبات کوانتومی را ارائه میدهد.
این پایه بسیار مهم است، زیرا زمانی که با اشیاء کوانتومی کار میکنیم که فراتر از شهود ما هستند، به عنوان سنگ بنای ما عمل خواهد کرد. تا پایان بخش اول، تمام ریاضیات و مفاهیم اصلی محاسبات کوانتومی را خواهید دانست.
فصل اول کتاب Quantum Computing: From Concepts to Code: یک دسته کارت عجیب قبل از اینکه به جزئیات محاسبات کوانتومی بپردازیم، یک استعاره برای توضیح اینکه چه چیزی این زمینه را از محاسبات کلاسیک متمایز میکند، ارائه خواهم داد. به چهار ایده اساسی به نامهای برهمنهی، درهمتنیدگی، تداخل و اندازهگیری خواهیم پرداخت. این مقدمه غیررسمی به شما کمک میکند تا ببینید چه چیزی در این ایدهها در یک محیط راحت و روزمره خاص است.
فصل دوم کتاب Quantum Computing: From Concepts to Code: حالات کوانتومی درست همانطور که هسته برنامهنویسی کلاسیک بیت است، هسته برنامهنویسی کوانتومی کیوبیت (تلفظ میشود کیو-بیت) است. توصیف اطلاعات در یک کیوبیت، حالت آن نامیده میشود. خواهیم دید که چگونه حالتها نمایش داده میشوند و از چه قوانینی پیروی میکنند. در این مسیر، برخی از ایدهها و ریاضیات کلیدی را که مبنای توصیف یک کیوبیت هستند، پوشش خواهیم داد.
فصل سوم کتاب Quantum Computing: From Concepts to Code: عملگرها برنامهنویسی در مورد تغییر است: تبدیل ورودیها به خروجیها. در برنامهنویسی کوانتومی، ما یک سری تبدیل را بر روی کیوبیتها اعمال میکنیم تا آنها را از حالتهای ورودی پیشفرض خود به حالتهای خروجی مفید تبدیل کنیم. این تبدیلها توسط اشیایی که عملگر مینامیم انجام میشوند. خواهیم دید که چگونه عملگرها را توصیف کنیم و چگونه حالت کیوبیتهایی را که تبدیل میکنند، تغییر میدهند.
فصل چهارم کتاب Quantum Computing: From Concepts to Code: کار با کیوبیتها اکنون که میدانیم کیوبیتها چیستند و عملگرها چگونه آنها را تبدیل میکنند، این ایدهها را با هم ترکیب خواهیم کرد. با چند عملگر مهم آشنا خواهیم شد و خواهیم دید که چرا آنها برای دستکاری حالتهای کوانتومی مفید هستند.
فصل پنجم کتاب Quantum Computing: From Concepts to Code: سیستمها برنامههای کلاسیک مفید به تعداد زیادی بیت نیاز دارند. برنامههای کوانتومی مشابه هستند و به تعداد زیادی کیوبیت نیاز دارند. خواهیم دید که چگونه میتوان بسیاری از کیوبیتها را در یک نمایش واحد به نام سیستم جمعآوری کرد.
خوشبختانه، همان تکنیکها به ما امکان میدهند تا چندین عملگر را در سیستمهای خود ترکیب کنیم. این نمایشهای جدید به ما امکان میدهند تا به طور موثری توصیف کنیم که چگونه گروههایی از عملیات، گروههایی از کیوبیتها را تبدیل میکنند، که این یک روش رایج برای تفکر در مورد برنامهنویسی کوانتومی است.
فصل ششم کتاب Quantum Computing: From Concepts to Code: اندازهگیری آخرین مرحله یک برنامه در هر نوع کامپیوتری، دریافت خروجی است. در محاسبات کوانتومی، میگوییم که خروجی خود را با اندازهگیری حالتهای کیوبیتها در انتهای یک الگوریتم به دست میآوریم. در نهایت، یک رشته بیت کلاسیک از 0 و 1 را به دست میآوریم.
اما حتی با داشتن دانش کامل از حالتهای کیوبیتها، معمولاً نمیتوانیم با قطعیت پیشبینی کنیم که در خروجی چه چیزی را اندازهگیری خواهیم کرد. ما بررسی خواهیم کرد که چرا اینطور است، چگونه میتوان آنچه را که ممکن است اندازهگیری کنیم، نشان دهیم و چگونه میتوانیم همچنان الگوریتمهایی ایجاد کنیم که نتایج مفیدی تولید کنند.
بخش دوم: الگوریتمهای کوانتومی
در بخش دوم کتاب Quantum Computing: From Concepts to Code، از ابزارهای بخش اول برای نوشتن برنامههای کوانتومی استفاده خواهیم کرد!
به چندین الگوریتم کوانتومی مشهور، که معمولاً به نام مخترعان آنها نامگذاری شدهاند، نگاه خواهیم کرد. هر یک از این الگوریتمها یک یا چند ایده جدید را معرفی میکنند که به بخشی از جعبه ابزار برنامهنویسی کوانتومی تبدیل شدهاند.
فصل هفتم کتاب Quantum Computing: From Concepts to Code: انتقال این الگوریتم کوانتومی چیزی را به معنای معمول محاسبه نمیکند. در عوض، یک حالت کوانتومی را از یک شی کوانتومی به شی کوانتومی دیگر، که در هر نقطه از جهان قرار دارد، منتقل میکند یا به اصطلاح تلهپورت میکند. و این کار را به طور آنی، سریعتر از سرعت نور انجام میدهد. اگرچه به نظر میرسد این امر یکی از قوانین اساسی نظریه نسبیت را نقض میکند، اما این پدیده بارها به صورت تجربی تایید شده است. دنیای کوانتومی پر از شگفتی است!
فصل هشتم کتاب Quantum Computing: From Concepts to Code: الگوریتم دویچ اولین برنامه کوانتومی واقعی ما یک مسئله کوچک را حل میکند. در هر رایانه کلاسیک، حل این مسئله به فراخوانی تابع دو بار، یک بار برای هر یک از دو ورودی، نیاز دارد. هیچ راهی برای دور زدن آن وجود ندارد. اما در یک کامپیوتر کوانتومی، فقط نیاز به فراخوانی آن تابع یک بار داریم، زیرا کامپیوترهای کوانتومی میتوانند هر دو ورودی را به طور همزمان ارزیابی کنند. حیرتانگیز است.
فصل نهم کتاب Quantum Computing: From Concepts to Code: الگوریتم دویچ-یوزا برنامه در فصل 8 کتاب Quantum Computing: From Concepts to Code فقط از کیوبیتهای منفرد به عنوان ورودی و خروجی استفاده میکند. خواهیم دید که چگونه میتوان آن را برای رسیدگی به چندین کیوبیت گسترش داد.
فصل دهم کتاب Quantum Computing: From Concepts to Code: الگوریتم برنشتاین-وازیرانی ما با یک اوراکل (پیشگویی) شروع میکنیم، نامی که برای یک برنامه کوانتومی کوچک که میتوانیم آن را اجرا کنیم اما مجاز به بررسی آن نیستیم، استفاده میکنیم. این اوراکل حامل یک رشته بیت مخفی است. خواهیم دید که چگونه با پرسوجو از اوراکل فقط یک بار، میتوانیم کل رشته مخفی را کشف کنیم.
فصل یازدهم کتاب Quantum Computing: From Concepts to Code: الگوریتم سایمون اکنون از یک اوراکل پیچیدهتر استفاده خواهیم کرد، که هنوز مجاز به بررسی آن نیستیم. این اوراکل همچنین حاوی برخی اطلاعات مخفی است که میخواهیم آن را کشف کنیم. از یک الگوریتم کوانتومی به همراه یک الگوریتم کلاسیک که بر روی یک کامپیوتر معمولی اجرا میشود، استفاده خواهیم کرد. در کنار هم، این تیم میتواند راز اوراکل را بسیار سریعتر از هر الگوریتم کلاسیکی به تنهایی کشف کند.
فصل دوازدهم کتاب Quantum Computing: From Concepts to Code: الگوریتم گروور مسائل جستجو همواره در علوم کامپیوتر وجود دارند. فرض کنید به ما گفته شده است که در یک پایگاه داده از اشیاء، یک شیء وجود دارد که مجموعه ای از شرایط را برآورده میکند. کار ما پیدا کردن آن است. این الگوریتم دقیقا همین کار را انجام میدهد. هر بار کار نمیکند، اما معمولاً فقط به چند اجرا نیاز داریم تا پاسخ صحیح را به دست آوریم، صرف نظر از اینکه پایگاه داده چقدر بزرگ است. این الگوریتم (و تغییرات آن) به جزئی از بسیاری از برنامههای کوانتومی تبدیل شده است.
فصل سیزدهم کتاب Quantum Computing: From Concepts to Code: الگوریتم شور خب، شما تمام آن اسرار موجود در اینترنت را میدانید؟ آنها از طریق روشی به نام رمزنگاری ایمن نگه داشته میشوند، که اطلاعاتی را به گونهای رمزگذاری میکند که برای همه غیر از کسی که روش مخفی بازگشایی آن را میداند، بیمعنی میشود. اکثر اطلاعاتی که امروزه از آنها استفاده میکنیم توسط الگوریتمهایی محافظت میشوند که گامی از رمزگذاری را انجام میدهند که هیچ کس راه عملی برای لغو آن پیدا نکرده است، مگر اینکه کلید مخفی به شما داده شده باشد.
این تکنیک برای رمزگذاری موجودی حسابهای بانکی، پیامهای مستقیم، اسرار صنعتی، اسرار نظامی، نامههای عاشقانه، برنامههای تجاری و تقریباً همه چیز در اینترنت استفاده میشود. اگر بتوانیم این رمزنگاری را بشکنیم، این حفاظت از هم خواهد پاشید. با کامپیوترهای کوانتومی، میتوانیم دقیقا همین کار را انجام دهیم.
این روش یک الگوریتم ترکیبی دیگر است که یک الگوریتم کوانتومی در وسط دو الگوریتم کلاسیک قرار دارد. بخش کوانتومی این الگوریتم به کامپیوترهای کوانتومی نیاز دارد که به طور قابل توجهی بزرگتر و قابل اعتمادتر از آنچه که اکنون داریم باشند. بنابراین، در حال حاضر، حریم خصوصی ما امن است. اما روزی، سختافزار کوانتومی به اندازهای قدرتمند خواهد شد که تمام اسرار رمزگذاری شده با استفاده از سیستمهای امروزی را فاش کند.
فصل چهاردهم کتاب Quantum Computing: From Concepts to Code: گامهای بعدی اکنون که میتوانید برنامههای کوانتومی خود را بنویسید، مرحله بعدی چیست؟ من تعدادی از راههایی را که میتوانید بر روی مباحث پوشش داده شده در کتاب بسازید، پیشنهاد میدهیم.
همچنین منابعی را برای مراحل بعدی شما ارائه خواهم داد، مانند منابع برای یادگیری، شبیهسازهای نرمافزاری رایگان کامپیوترهای کوانتومی برای دانلود و استفاده، و برخی از سرویسهای آنلاین که سختافزار کوانتومی واقعی را برای اجرای برنامههای شما ارائه میدهند.
سپس برخی از برنامهها مانند حل ماز، ایجاد تصاویر و حتی چند بازی کوانتومی را بررسی خواهیم کرد.
ضمیمه: نمادها ضمیمه تمام نمادهای ریاضی، متغیرها و گرافیکهایی را که در کتاب Quantum Computing: From Concepts to Code برای مرجع آسان استفاده میکنم، خلاصه میکند. اگر تا به حال فراموش کردید که هر نماد، حرف یا شکل به چه چیزی اشاره دارد، میتوانید آن را در اینجا بیابید.
سرفصلهای کتاب Quantum Computing: From Concepts to Code:
- About the Author
- Brief Contents
- Contents in Detail
- Acknowledgments
- Introduction
- What is Quantum Computing?
- Why Should You Read This Book?
- Who This Book is For
- What You’ll Learn
- How We’ll Do It
- Is Quantum Weird?
- What You’ll Need
- Who Wrote This Book?
- Overview
- Part I: States, Operators, and Systems
- Chapter 1: A Curious Deck of Cards
- Chapter 2: Quantum States
- Chapter 3: Operators
- Chapter 4: Working with Qubits
- Chapter 5: Systems
- Chapter 6: Measurement
- Part II: Quantum Algorithms
- Chapter 7: Teleportation
- Chapter 8: Deutsch’s Algorithm
- Chapter 9: Deutsch-Jozsa’s Algorithm
- Chapter 10: Bernstein-Vazirani’s Algorithm
- Chapter 11: Simon’s Algorithm
- Chapter 12: Grover’s Algorithm
- Chapter 13: Shor’s Algorithm
- Chapter 14: Next Steps
- Appendix: Notation
- Bibliography
- Index
- Blank Page
جهت دانلود کتاب Quantum Computing: From Concepts to Code میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.