در مورد کامپیوترهای کوانتومی و تاثیرات احتمالی که میتوانند توی زندگی آیندمون بگذارند ممکنه چیزهای زیادی شنیده باشید. هر از چند گاهی خبری در مورد یکی از دستاوردهای شگفتانگیز کامپیوترهای کوانتومی اخبار تکنولوژی رو پر میکنه. ولی واقعاً چه چیزی این قدرت رو به کامپیوترهای کوانتومی میده؟ اصول کار کامپیوترهای کوانتومی چه فرقی با کامپیوترهای معمولی که برای کارهای روزمره ازشون استفاده میکنیم داره؟ بیاید توی این نوشتار به زبان ساده جوابی درخور به این سوالات بدیم.
اولین نکتهای که باید اینجا بهش اشاره کنم تفاوت بین الگوریتم و برنامههای کامپیوتری هست. اشتباه بزرگیست که این دو را یک چیز در نظر بگیریم. الگوریتم مجموعهای از دستورالعمل هاست برای حل یک مساله (که معمولاً منجر به پیدا کردن یک جواب میشه). مثلاً فرض کنید که شما توی یک خونه با چندین اتاق زندگی میکنید و یک گربه دارید. یک روز شما گربهتون رو توی خونه پیدا نمیکنید. اینجاست شما یک مساله دارید: پیدا کردن گربه. حالا راه حل چیه؟ ممکن هست راه حلهای زیادی به ذهنتون برسه، ولی به احتمال زیاد یکی از راه حل ها چیزی بسیار شبیه به این خواهد بود:
به همین راحتی! ممکنه الان با خودتون بگید خوب اجرای این مراحل که بدیهی بود. کاملاً هم درسته. ما در دنیای پیرامونمون به صورت مداوم داریم از الگوریتمها استفاده میکنیم، حتی اگر خودمون متوجه نباشیم. حالا فرض کنید به جای اینکه دنبال گربه توی یک خونه بزرگ باشید، دنبال پیدا کردن عبارت "گربه شرودینگر" توی یک کتاب ۵۰۰ صفحه ای فیزیک کوانتوم هستید. الگوریتم بالا رو به راحتی میشه برای این جستجو تغییر داد (فقط کافیه به جای اتاق صفحههای کتاب توی ذهنتون بیاد). همه میدونیم که اینکار الگوریتم ساده ای داره ولی انجامش به شدت زمانبر و شاید حتی ناراحت کننده باشه. اینجاست که داشتن ماشینی که بتونه الگوریتمهایی که ما توی ذهنمون داریم رو موبهمو بتونه اجرا بکنه خیلی میتونه کمکمون بکنه. کافیه این الگوریتم و اطلاعات لازم رو به زبانی که کامپیوتر متوجه میشه براش توضیح بدیم. که اینها میشن زبان برنامهنویسی و نظریه اطلاعات و غیره. و به همین راحتی، ما حالا یک گوگل کوچک خانگی درست کردیم (یک کم دیگه روش کار کنیم میشه مثل خود گوگل).
درک دنیای کوانتومی یکی از جالبترین دستاوردهای علمی بشر در صده گذشته بوده. همه ما از طریق زندگی روزمره درکی از بدیهیات دنیای دور و برمون داریم. ولی وقتی که وارد دنیای کوانتومی میشیم خیلی از این بدیهیات به هم میریزه. برای توضیح بهتر این تفاوت بیایید از یک مثال استفاده کنیم.
بسکتبال در دنیای کلاسیک
فرض کنید که شما یک توپ بسکتبال دارید و جلوتون یک دیوار بلند هست که شما نمیتونید پشتش رو ببینید. ولی میدونید که پشت این دیوار دو تا حفره هست و یک دیوار خیلی بلند (چیزی که عکس بالا نشون میده). شما توپ رو پرتاب میکنید و به دیوار خیلی بلند انتهایی میزنید تا بیفته توی یکی از اون حفرهها. بعد از اینکه توپ رو پرتاب کردید میدونید که توپ قطعاً توی یکی از حفرهها میره و اونجا خواهد موند. شما نمیدونید کدوم یکی (فرض کنیم مهارت بسکتبالتون در سطح منه و اصلاً هدفگیری بلد نیستید). یک محاسبه ساده احتمالات نشون میده که در این حالت احتمال بودن توپ توی هر یک از این حفره ها ۵۰٪ هست. برای مثال توی شکل بالا توپ توی حفره سمت چپ افتاده. شما چون هنوز ندیدیدش این رو نمیدونید، ولی مطمئن هستید الان توی یکی (و فقط یکی، این نکته مهمه) از اون حفرههاست. کافیه برید اونور دیوار تا ببینید کدوم یکی. تا اینجا همه چیز بدیهی و منطبق با تجربه ما بود. حالا بذارید ببینیم مشابه این پدیده توی دنیای کوانتومی چه خواهد شد.
بسکتبال در دنیای کوانتومی
حالا بیاید همین کار رو توی دنیای کوانتومی تکرار کنیم. گفتیم که ۵۰٪ شانس وجود داره که توپ توی هر کدوم از اون حفرهها بره. اتفاقی که میفته اینه که در عمل ۵۰٪ توپ به هر کدوم از حفرهها میره! یعنی چی؟! یعنی توپ به صورت همزمان توی هر دو حفره هست. دقت کنید منظور این نیست که توپ نصف میشه و هر نصفش به سمتی میره. بلکه وجود توپ در هر کدوم از این حفرهها به احتمال ۵۰٪ هست. این پدیده به برهمنهی کوانتومی معروف هست. یعنی جای واقعی توپ ترکیبی از جاهایی هست که احتمال داره باشه.
ممکنه بپرسید پس آخرش کجاست؟ حوصلهتون سر بره و برید اونور دیوار تا نگاه کنید. در این لحظهست (لحظهای که به یک پدیده کوانتومی نگاه میکنید) که ماهیت کوانتومی دچار فروپاشی میشه. پیامد این فروپاشی کوانتومی اینه که توپ باید فقط یکی از اون دو احتمال رو انتخاب کنه. در نتیجه شما توپ رو به صورت کامل در یکی از اون حفره میبینید.
پیچیده به نظر میاد مگه نه؟ توضیح پدیدههای کوانتومی یکی از بحث برانگیزترین مباحث فیزیک در قرن بیستم بود. در حدی که فیزیکدانانی مثل انیشتین تا مدت زیادی بهش شک داشتند. ولی آزمایشهایی مثل آزمایش دو شکاف درستی این دنیا رو برای ما ثابت کرده. حالا که وارد این مبحث شدیم، حتماً نگاهی هم به آزمایش ذهنی گربه شرودینگر بندازید (بذارید فکر کنیم این همون گربهای که ما داریم پیداش میکنیم، داره از دستمون فرار میکنه چون میدونه چه خوابی براش دیدیم).
خیلی خوب، حالا که دنیای کوانتومی رو بهتر میشناسیم. بیایید برگردیم به مساله پیدا کردن گربه. اینجا میخوایم یک بار این مساله رو به صورت کلاسیک (با کامپیوترهای فعلی) و یک بار در دنیای کوانتومی حلش کنیم.
اول بریم سراغ حل کلاسیک این مساله: گفتیم که مزیت درست کردن الگوریتمها برای اینه که میتونیم اون رو به یک کامپیوتر بدیم تا برامون انجامش بده. رباتهای هوشمند هم یک جور کامپیوتر به حساب میان. پس فرض کنید که ما الگوریتممون رو به یک ربات هوشمند میدیم تا توی اتاقهای خونه دنبال گربه بگرده.
تصویر بالا به صورت نمادین نشون میده که چه اتفاقی میافته: ربات از دایره قرمز رنگ توی تصویر شروع میکنه و به ترتیب (تقریباً دلخواهی) شروع به گشتن اتاقهای خونه میکنه تا میرسه به گربه و اینجاست که جستجو تموم شده. ما هم میتونیم سر جامون بنشینیم و از طریق مکانیابی که روی ربات قرار دادیم حرکاتش رو دنبال کنیم تا ببینیم که ربات کی گربه رو پیدا میکنه.
حالا بریم سراغ دنیای کوانتوم: همونطور که توی مثال بسکتبال بالا دیدیم، در دنیای کوانتومی اشیا میتونن همزمان در جاهای مختلف باشند. این معنیش اینه که ربات ما میتونه به صورت همزمان در تمامی اتاقهای خونه باشه (همون برهمنهی کوانتومی که گفتیم). پس الگوریتم کوانتومی شما به جای اینکه به ربات بگه دونه دونه به تکتک اتاق ها بره، بهش میگه که به صورت همزمان به تمامی اتاقها بره. یعنی در قدم اول یک الگوریتم کوانتومی ربات ما به صورت همزمان توی تمام اتاقها هست. این نشون دهنده قدرت بالای الگوریتمهای کوانتومی در مقایسه با الگوریتمهای معمولی هست.
ولی هنوز یک نکته خیلی مهم وجود داره. همونطور که در مثال توپ بسکتبال بالا گفتیم، در اینجا ربات ما با احتمال مساوی توی هر کدوم از اتاق هست. پس اگر ما الان ردیابمون رو روشن بکنیم که ببینیم ربات کجاست ممکنه ربات روی اتاقی ببینیم که گربه توش نیست. در این حالت شانس اینکه این کار رو چندین بار تکرار کنیم و انتظار داشته باشیم به جواب برسیم بیشتر از شانس چک کردن تکتک اتاق ها نیست. این یعنی اینکه اگر یک الگوریتم کوانتومی برای پیدا کردن گربه استفاده کنیم، ممکنه در نهایت دیرتر هم گربه رو پیدا کنیم (دیرتری به خاطر اینه که الگوریتم کوانتومی ممکنه یک اتاق رو چندیدن بار چک بکنه، ولی الگوریتم کلاسیکمون هر اتاق رو فقط یک بار چک میکرد).
حالا بریم سراغ چیزی که بهمون اجازه میده که بتونیم به کمک الگوریتم کوانتومی سریعتر به جواب برسیم: افزایش دامنه جواب. توی الگوریتم پیدا کردن گربه که تا به اینجا گفتیم ربات با احتمال مساوی توی تمامی اتاقهای خونه هست ولی اگر ما ردیابمون رو روشن کنیم اون رو توی یکی از اتاقها میبینیم. اگر بخواهیم که جواب رو با احتمال زیادی پیدا کنیم، باید کاری کنیم که احتمال بودن ربات توی اتاقی که گربه توش هست بیشتر باشه. مراحلی که الگوریتم ما توشون برای ربات توضیح میده که چطور بیشتر به سمت اتاقی که گربه توش هست (جواب مساله) بره باعث میشند که احتمال بودن ربات توی اون اتاق بیشتر و بیشتر بشه. توی شکل بالا این رو با کمرنگ شدن ربات توی اتاق هایی که گربه توشون نیست (جواب مساله نیست) و پر رنگ شدنش توی اتاقی که گربه توش هست (جواب مساله) نشون دادیم. فراموش نکنید که اگر در حین انجام محاسبات الگوریتم بهش نگاه بکنیم (در این حالت به ردیاب نگاه کنیم) باعث فروپاشی کوانتومی میشیم. این یک فرق عمده الگوریتمهای کوانتومی و معمولی هست: ما فقط میتونیم جواب رو در پایان الگوریتم چک کنیم. در اون حالت هم با یک توضیع آماری روبهرو هستیم. به عنوان مثال در شکل بالا احتمال پیدا کردن ربات توی هر یک اتاقهایی که گربه توشون نیست ۵٪ (شفافیت ۹۵٪ برای شکلک ربات) و احتمال پیدا کردنش توی اتاقی که گربه توش هست ۷۰٪ هست (شفافیت ۳۰٪). این به معنی که در انتهای الگوریتم بالا ۷۰٪ احتمال داره که جواب درست رو پیدا کنیم ولی ۳۰٪ احتمال اشتباه هست. الگوریتم های کوانتومی همیشه در نهایت یک انتخاب شانسی (تصادفی) دارند ولی اگر الگوریتم به درستی اجرا شده باشه شانس پیدا کردن جواب درست به مراتب بیشتر از جواب نادرست هست.
حالا بریم سراغ الگوریتمهای کوانتومی در دنیای واقعی. در دنیای واقعی خیلی وقتها با مسایلی سر وکار داریم که تنها راه پیدا کردنشون امتحان کردن تعداد خیلی زیادی ورودی هست (پیدا کردن گربه توی اتاقهای بالا یا پسوورد یک سیستم امنیتی). توی مثال بالا ما فقط هفت اتاق داشتیم. یعنی هفت تا جواب ممکن. حالا مسالهای رو فرض کنید که تعداد جواب هایی که باید امتحان کنید تا جواب درست رو پیدا کنید به تعداد اتمهای کره زمین هست. احتمالاً یک کامپیوتر معمولی برای کردن این جواب سالها زمان لازم خواهد داشت. در مقابل کامپیوترهای کوانتومی میتونند تمامی حالتهای ممکن رو به صورت همزمان امتحان کنند. بعد با استفاده از الگوریتم افزایش دامنه کاری کنند که وقتی ما به خروجی الگوریتم نگاه میکنیم با احتمال خیلی خیلی زیادی جواب درست رو ببینیم. و این است پایه تمامی الگوریتمهای کوانتومی.
کلام پایانی
اگر این مطلب رو پسندیدید، پیشنهاد و انتقادی دارید و یا دوست دارید در مورد قسمتهاییش بیشتر بنویسم، خوشحال میشم اینجا کامنت بذارید و با من درمیان بذارید. با تشکر از وقتی که برای خواندن گذاشتید.