علی شکیبا

دفتر یادداشت دیجیتال برای هر چیز مفید!
۳۰ خرداد ۹۵ ، ۰۰:۳۸

درباره‌ی محاسبات کوانتومی


تذکر: در هنگام نوشتن این مقاله، اکیدا سعی کرده‌ام از هیچ فرمولی استفاده نکنم و صرفا بیانی عامیانه از محاسبات کوانتومی داشته باشم. این احتراز، مطمئنا منجر به گزاره‌های نادرست می‌شود. بنابراین خواهش می‌کنم در صورتی که چنین ایرادی را مشاهده فرمودید؛ از طریق نظرات خود؛ بنده را در اصلاح مطلب کمک کنید.

محاسبات کوانتومی را می‌توانیم یکی از پرچمداران آینده در علوم کامپیوتر، به خصوص در زمینه‌ی پیچیدگی محاسباتی و رمزنگاری بدانیم! البته همه چیز بسته به این است که بتوان یک رایانه‌ی کوانتومی در مقیاس رایانه‌های امروزی خارج از فضای آزمایشگاه پیاده‌سازی کرد. البته، حتی داشتن چنین رایانه‌ای در محیط آزمایشگاهی هم یک دستاور استراتژیک برای صاحبان آن محسوب می‌شود.

اما راز محبوبیت و آینده‌دار بودن این زمینه چیست؟ پاسخ خیلی کوتاه است: «محاسبات در رایانه‌های کوانتومی بر اساس قواعد مکانیک کوانتوم انجام می‌شوند؛ نه بر مبنای قواعد فیزیک کلاسیک». اگر معنی و اثرات این جمله را متوجه شدید، تبریک می‌گویم! اما بنده‌ی نوعی، در اولین مواجهه با این جمله؛ همانقدر فهمیدم که یک کودک یک ماهه از غزل حافظ می‌فهمد! پس لازم است تا ابتدا معنی این عبارت را بفهمیم و بعد تاثیر آن را بر قدرت محاسباتی یک رایانه‌ی کوانتومی متوجه شویم.

برای به تصویر کشیدن توان محاسباتی رایانه‌های کوانتومی، آن را با معادل کلاسیکَ‌ش مقایسه می‌کنم. پایه‌ای ترین جز برای نمایش داده در رایانه‌های کلاسیک امروزی یک بیت است که می‌توان در آن یکی از حالت‌های 0 یا 1 را نمایش داد. از کنار هم قرار دادن چند بیت، به ثبّات می‌رسیم. در یک ثبّات N بیتی، به وضوح می‌توان 2N حالت مختلف را نمایش داد. می‌دانیم که با استفاده از عملگر NAND منطقی، می‌توان هر مدار متشکل از ضرب و جمع را پیاده‌سازی کرد و اضافه بر آن، عملگرهای جمع و ضرب، تورینگ-کامل هستند (یعنی هر ماشین تورینگ را می‌توانیم با استفاده از مداری که صرفا از عملگرهای جمع و ضرب استفاده می‌کند؛ پیاده‌سازی نمود). خًب! این‌ها را که می‌دانستیم!

در کامپیوتر‌های کوانتومی، به جای بیت از مفهوم کیوبیت یا بیت‌کوانتومی استفاده می‌شود و ترکیب چند کیوبیت را یک ثبّات کوانتومی می‌نامند. در هر کیوبیت دو حالت پایه داریم: یکی 0 و دیگری 1 که به ترتیب به <0| و <1| نمایش می‌دهیم. اما یک کیوبیت، و به تبع آن یک ثبّات کوانتومی، یک تفاوت کلیدی با بیت، و ثبّات، کلاسیک دارد که منشا قدرت آن نیز محسوب می‌شود: «یک کیوبیت می‌تواند به صورت همزمان در هر دو حالت پایه قرار داشته باشد؛ در صورتی که یک بیت صرفا می‌تواند در آن واحد، در یکی از حالت‌های پایه قرار داشته باشد1». بنابراین، در یک ثبّات n کیوبیتی می‌توان به صورت همزمان هر 2حالت مختلف را نشان داد. عالی است! اما عالی‌تر آنکه با اِعمال یک مدار کوانتومی روی این ثبّات، این مدار روی همه‌ی حالت‌هایی که ثبّات در آن قرار دارند؛ اعمال می‌شود. به این ویژگی، توازی کوانتومی یا quantum paralellism گفته می‌شود.

با خواندن پاراگراف بالا، اولین چیزی که به ذهن یک برنامه‌نویس می‌رسد؛ خلاص شدن از الگوریتم‌های پیچیده است! برای مثال، می‌توانیم برای تجزیه‌ی یک عدد مانند N که حاصلضرب دو عدد اول است به عوامل اول آن؛ تمام اعداد مثبت کوچکتر یا مساوی $$\sqrt{P}$$ را در دو ثبات قرار داده، حاصل‌ضرب دو‌به‌دوی آنها را محاسبه کنیم و سپس به سادگی، بررسی کنیم که حاصل ضرب کدام دو عدد برابر با N است. تمام!

قبل از اینکه به سراغ یادگیری برنامه‌نویسی کوانتومی بروید؛ کمی صبر کنید و بردبار باشید! ماجرا به همین سادگی نیست! برای شروع، چگونه مشخص می‌کنید که هر حاصل‌ضرب‌ به ازای کدام دو مقدار است؟ کمی پیچیده شد ....

این بخش بسیار ساده‌تر از آن چیزی است که فکرش را بکنید. پاسخ در در‌هم‌تنیدگی کوانتومی یا quantum entanglement نهفته است. برای توضیح در‌هم‌تنیدگی کوانتومی، از مثالی از [L06] با کمی تغییرات استفاده می‌کنم. فرض کنید دو برادر دوقلو داریم که با هم درهم‌تنیدگی کوانتومی نسبت به نوشابه دارند (کمی صبر کنید؛ معنی این جمله را توضیح خواهم داد). منظور از درهم‌تنیدگی کوانتومی نسبت به نوشابه در این است که اگر ارتباط بین این دو برادر با یکدیگر را قطع کنیم و یکی در کرمان و دیگری در تبریز به یک فروشگاه در زمان‌های مختلفی مراجعه نمایند؛ اگر اولین نفر نوشابه‌ی مشکی خریداری کند؛ برادر دوم؛ حتما در صورت مراجعه به یک فروشگاه، در صورتی که نوشابه سفارش دهد؛ حتما حتما نوشابه‌ی مشکی سفارش خواهد داد2.

بنابراین اگر عدد اول را در ثبّات <p| و عدد دوم را در ثبّات <q| قرار دهیم؛ ثبات حاصل‌ضرب را می‌توان با این دو ثبّات، درهم‌تنیده قرار داد. به عبارت دیگر، هر مقدار در ثبات حاصل‌ضرب، با مقادیر مرتبط در <p| و <q| در تناظر قرار دارد3. خوب! این مشکل حل شد! حالا برویم سر وقت مشکل آخِر! چگونه مقادیر متناظر با مقدار N را در ثبّات‌های <p| و <q| بیابیم؟ برای پاسخ به این سوال؛ بیایید کمی در مورد خود کیوبیت و محتوای آن دقیق‌تر شویم! وقتی می‌گوییم کیوبیت می‌تواند به صورت همزمان در هر دو حالت پایه قرار داشته باشد؛ منظورمان چیست؟ اگر از منظر حساب احتمالات به آن نگاه کنیم؛ می‌توان گفت با یک احتمالی در حالت 0 و با احتمال دیگر در حالت 1 است. اما این ضرایب احتمالی چه‌گونه تعیین می‌شوند؟ پاسخ در مقادیر دامنه یا amplitude است که اعداد مختلط هستند که اندازه‌ی آن ضریب به توان دو، برابر با احتمال رویت حالت متناظر با آن ضریب است. این بدان معنی است که در صورت اندازه‌گیری کیوبیت، یک مقدار تصادفی متناظر با توزیع احتمال آن کیوبیت، رویت می‌شود. 

مشکل اصلی در همین جا است! در صورتی که یک کیوبیت مورد اندازه‌گیری قرار گیرد، بعد از آن، هر چندبار هم که مورد اندازه‌گیری قرار گیرد؛ مقدار یکسانی (همان مقدار رویت شده در اندازه‌گیری اولیه) را نشان می‌دهد. بنابراین، لازم است تا احتمال رویت جواب را بالا ببریم و به یک نزدیک کنیم. در این صورت، انتظار داریم با چندین بار تکرار محاسبات و اندازه‌گیری، پاسخ مطلوب محاسبه شود4. خوب! چگونه این کار را می‌توان انجام داد؟ با استفاده از تداخل کوانتومی یا quantum interference. ساده‌تر بگویم، لازم است تکنیک‌هایی را به کارگیری کنیم که احتمال رویت پاسخ مطلوب را افزایش  و احتمال رویت پاسخ‌های نامطلوب را کاهش دهد و این ممکن نیست جز از طریق دستکاری در مقادیر دامنه. قبل از اینکه ایده‌ی جدیدی به ذهن شما برسد؛ ذکر کنم که مقادیر دامنه را نداریم! یعنی نمی‌توان به سادگی آن‌ها را دستکاری کرد! تنها راه دستکاری آن‌ها؛ استفاده از عملگرهای کوانتومی است.

عملگرهای کوانتومی، بنا به دلایلی نمی‌توانند داده‌ها را به صورت غیربرگشت‌پذیری پاک کنند! به عبارت ساده‌تر، با داشتن خروجی در یک مدار کوانتومی؛ می‌توان محاسبات را به منظور یافتن مقادیر ورودی مدار؛ برگرداند. برای درک بهتر، فرض کنید به شما گفته می‌شود خروجی یک دروازه‌ی AND در رایانه‌های امروزی برابر با 1 شده است! مقادیر ورودی چه هستند؟ به سادگی می‌گویید همه آن‌ها 1 هستند. اما فرض کنید بگوییم مقدار خروجی 0 است؟ آیا می‌توانید ورودی را معین کنید؟ برای حل این مشکل و برگشت‌پذیر کردن محاسبات؛ از راهکار افزایش حافظه استفاده می‌کنیم. می‌دانیم که عملگر Toffoli برای تمام مدارات برگشت‌پذیر، کامل است.

تلاش‌های زیادی برای حل این مساله، یعنی افزایش احتمال رویت پاسخ، ارائه شده که الگوریتم‌های جستجوی گرور و الگوریتم تجزیه‌ی شور دو الگوریتم معروف در این زمینه هستند. الگوریتم گرور، مساله‌ی جستجو در بین N شی نامرتب را در زمان $$sqrt{N}$$ انجام می‌دهد و الگوریتم شور نیز مساله‌ی تجزیه‌ی عدد N به عوامل اول را در زمان چندجمله‌ای نسبت به تعداد بیت‌های لازم برای نمایش عدد N حل می‌کند.

مطمئناْ یکی از دلایل اهمیت و استراتژیک بودن رایانش کوانتومی، الگوریتم تجزیه‌ی شور است. دلیل آن هم واضح است! بسیاری از الگوریتم‌های رمزنگاری کلید عمومی یا مبتنی بر دشواری مساله‌ی لگاریتم گسسته یا تجزیه‌ی اعداد به عوامل اول هستند و در صورت وجود یک رایانه‌ی کوانتومی در مقیاس رایانه‌های امروزی، این سیستم‌ها دیگر امن نخواهند بود.

با این مقدمه؛ امیدوارم شما را به این زمینه علاقه‌مند کرده باشم. برای ادامه؛ لازم است تا ابتدا پشتکار فراوان داشته باشید و زود خسته نشوید. یکی از مهم‌ترین و کلاسیک‌ترین منابع در زمینه‌ی محاسبات کوانتومی و نظریه‌ی اطلاع کوانتومی؛ کتاب [NC10] است. این کتاب رویکردی مرجع‌گونه به مباحث داره و این یعنی نیاز ندارید تا همه‌ی صفحات اون رو مطالعه کنید. اما برای شروع؛ کتاب [RP11] رو توصیه می‌کنم. این کتاب با استفاده از مثال‌های فراوان؛ درک صحیح و زیبایی رو به خواننده ارائه می‌کنه و البته پیش‌نیاز خاصی هم به غیر از آشنایی با جبرخطی عددی ندارد. 

بعد از مطالعه‌ی کتاب [RP11]؛ می‌توانید کم‌کم شروع به مطالعه‌ی مقالات مرتبط کنید. برای نمونه؛ یکی از مدل‌هایی که سرمایه‌گذاری زیادی روی اون انجام شده و گوگل‌ هم تلاش داره از اون برای بهبود هوش مصنوعی استفاده کنه، مدل محاسبات بی‌دَررو کوانتومی یا adiabatic quantum computing است. البته مراجع دیگری هم برای مطالعه در این زمینه وجود داره که یکی از زیباترین اون‌ها؛ به نظر بنده البته؛ مرجع [KLM07] است. یکی از نویسندگان این کتاب، M. Mosca، دارای کارهای فراوانی در زمینه‌ی علوم کامپیوتر است و جزو 40 دانشمند برتر زیر 40 سال کانادا است و یکی از بنیانگذاران IQC در دانشگاه واترلو، یکی از مراکز پیشرو در محاسبات کوانتومی در جهان، است. البته مراجعی مانند [W10] را بیشتر به خاطر بازکردن مساله‌ها و قضایا می‌پسندم؛ برای مثال، کره‌ی بلاخ را در این مرجع بسیار عالی توضیح داده است. و در نهایت؛ پیوست مکانیک کوانتومی مرجع [H13] به نظر برای یک کامپیوتری که قصد دارد با محاسبات کوانتومی آشنا شود؛ کافی است.

مرکز IQC به عنوان یکی از پیشروان محاسبات کوانتومی در دنیا، همایش‌ها و کارگاه‌های بسیاری را برگزار می‌کند و ویدئوهایی از آن را در کانال رسمی خود در یوتیوب قرار می‌دهد. برای نمونه، ویدئوهای کارگاه رمزنگاری کوانتومی را (البته کمی قدیمی است) می‌توانید در کانال تخته‌سفید بنده مشاهده کنید (با توجه به اینکه دسترسی به یوتیوب ممکن نیست؛ با استفاده از تخته سفید این لینک‌ها را مستقیم کرده‌ام - لینک فیلم‌ها در تخته سفید):

http://takhtesefid.org/watch?v=714652874502
http://takhtesefid.org/watch?v=920651643067
http://takhtesefid.org/watch?v=60520059838
http://takhtesefid.org/watch?v=00714204102754
http://takhtesefid.org/watch?v=986742650771
http://takhtesefid.org/watch?v=667791928401
http://takhtesefid.org/watch?v=281653890247
http://takhtesefid.org/watch?v=947399876708
http://takhtesefid.org/watch?v=677378236958
http://takhtesefid.org/watch?v=677378236958
http://takhtesefid.org/watch?v=628932118588
http://takhtesefid.org/watch?v=224893596953
http://takhtesefid.org/watch?v=905389170879
http://takhtesefid.org/watch?v=957960561106
http://takhtesefid.org/watch?v=517774477198
http://takhtesefid.org/watch?v=545620660512

البته دوره‌های دیگری نیز وجود دارند که می‌توانید با مراجعه به کانال IQC در یوتیوب از آن‌ها استفاده کنید.

در ایران نیز گروه پژوهشی جناب آقای دکتر کریم‌پور در دانشگاه شریف در این زمینه فعال هستند. همچنین در دانشگاه یزد؛ آزمایشگاه پردازش اطلاعات کوانتومی و رمزنگاری نیز تحت نظارت جناب آقای دکتر هوشمند اصل و جناب آقای دکتر توسلی فعال است که بنده توفیق حضور در محضر این عزیزان را داشته‌ام. جناب آقای دکتر امین‌زاده و جناب آقای دکتر بیگی نیز به ترتیب در دانشگاه شریف و مرکز تحقیقات فیزیک نظری در زمینه‌ی نظریه‌ی اطلاع کوانتومی فعال هستند.

پی‌نوشت‌ها و مراجع:

1 البته این گزاره با امّا و اگرهایی همراه است؛ به همین دلیل، نیاز به الگوریتم‌های هوشمندانه‌ی کوانتومی برای تقویت دامنه یا amplitude amplification داریم. یکی از این اما و اگر‌ها، عدم تعامل با محیط یا عدم اندازه‌گیری است.

2 لازم به ذکر است که درهم‌تنیدکی وابسته به انتخاب پایه نیست؛ اما نسبت به تجزیه‌ی تانسوری فضای حالت وابسته است.

3 این تناظر یک به یک نیست؛ زیرا عمل ضرب اعداد صحیح دارای ویژگی جابجایی است.

4 قضیه‌ی Chernoff bound را بنگرید.

[H13] Hirvensalo M. Quantum computing. Springer Netherlands; 2013.

[KLM07] Kaye P, Laflamme R, Mosca M. An introduction to quantum computing; 2007.

[L06] Lloyd S. Programming the universe: a quantum computer scientist takes on the cosmos. Vintage Books; 2006.

[NC10] Nielsen MA, Chuang IL. Quantum computation and quantum information. Cambridge university press; 2010.

[RP11] Rieffel EG, Polak WH. Quantum computing: A gentle introduction. MIT Press; 2011.

[W10] Williams CP. Explorations in quantum computing. Springer Science & Business Media; 2010.

موافقین ۰ مخالفین ۰ ۹۵/۰۳/۳۰

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی