وقتی که یک موضوع علمی یا مهندسی در رسانه ها "داغ" میشه، عموم مردم انتظار دارن ظرف مدت کوتاهی اون مساله باعث پیشرفت عمیق در همه ی جنبه های زندگی بشه. موضوعاتی مثل Big Data، Deep Learning، و Quantum Computing اگرچه جنبه های مختلف زندگی ما رو تحت تاثیر قرار دادن، اما نمی تونن (و قرار هم نبوده بتونن) یک "انقلاب" اساسی ایجاد کنن. روند پیشرفت علم پیوسته است و هر مفهوم بر اساس مفاهیم دیگه تعریف میشه.
با این توضیح، قرار نیست از محاسبات کوانتومی انتظار داشته باشیم تا جای کامپیوترهای کلاسیک رو بگیرند!
#توضیح_پایه
با این توضیح، قرار نیست از محاسبات کوانتومی انتظار داشته باشیم تا جای کامپیوترهای کلاسیک رو بگیرند!
#توضیح_پایه
قبل از هر چیز باید بگم که شرکت های مختلفی #پردازنده_کوانتومی درست می کنن و به ما هم اجازه میدن تا از طریق API های خاص (عموما Python#) بتونیم رایگان از اون ها استفاده کنیم. در ادامه به بعضی از اون ها اشاره می کنم.
#کوانتومی_عملی
#کوانتومی_عملی
این روز ها CERN یک درس آنلاین رایگان راجع به مقدمات محاسبات کوانتومی برگزار میکنه که توصیه می کنم از دست ندیدش.
#کوانتوم_درس
https://home.cern/news/announcement/computing/online-introductory-lectures-quantum-computing-6-november
#کوانتوم_درس
https://home.cern/news/announcement/computing/online-introductory-lectures-quantum-computing-6-november
CERN
Online introductory lectures on quantum computing from 6 November
A series of weekly lectures on the basics of quantum computing will be broadcast via webcast starting 6 November 2020 at 10.30 a.m. CET. New lectures will be broadcast each Friday of the next seven weeks. The talks will focus on the practical aspects of quantum…
سردترین نقطه ی عالم هستی کجاست؟
حدود ۵۰۰۰ سال نوری دورتر از کره ی زمین در Boomerang Nebula، دما به یک درجه ی کلوین میرسه یعنی حدودا منفی ۲۷۲ درجه ی سانتی گراد. این جا تا مدت ها سرد ترین نقطه ی عالم بود.
https://en.m.wikipedia.org/wiki/Boomerang_Nebula
تا این که بشر تصمیم گرفت که دمای سردتر از این رو در یک "یخچال" ایجاد کنه، روی کره ی زمین! دلیل این کار این بود که تنها در دمای نزدیک به صفر مطلق (چند میلی درجه بالای کلوین) میشه "ویژگی های کوانتومی" رو مشاهده کرد. و بله! کامپیوترهای کوانتومی همگی در این دمای پایین کار می کنند. پردازنده های کوانتومی در یک یخچال سرد قرار داده میشن تا بتونن واقعا یک "کیوبیت" (Qubit) رو پیاده سازی کنند.
حدود ۵۰۰۰ سال نوری دورتر از کره ی زمین در Boomerang Nebula، دما به یک درجه ی کلوین میرسه یعنی حدودا منفی ۲۷۲ درجه ی سانتی گراد. این جا تا مدت ها سرد ترین نقطه ی عالم بود.
https://en.m.wikipedia.org/wiki/Boomerang_Nebula
تا این که بشر تصمیم گرفت که دمای سردتر از این رو در یک "یخچال" ایجاد کنه، روی کره ی زمین! دلیل این کار این بود که تنها در دمای نزدیک به صفر مطلق (چند میلی درجه بالای کلوین) میشه "ویژگی های کوانتومی" رو مشاهده کرد. و بله! کامپیوترهای کوانتومی همگی در این دمای پایین کار می کنند. پردازنده های کوانتومی در یک یخچال سرد قرار داده میشن تا بتونن واقعا یک "کیوبیت" (Qubit) رو پیاده سازی کنند.
Wikipedia
Boomerang Nebula
protoplanetary nebula
وقتی راجع به یک کامپیوتر کوانتومی صحبت می کنیم راجع به چی حرف می زنیم؟
مثلا وقتی از "کامپیوتر" صحبت می کنیم، منظورمون یک پردازنده، رم، مادربرد و ... هستش که همه به هم وصل شدن و وقتی که روشن میشن یک سیستم عامل به ما یک محیط کار میده. اما کوانتوم کامپیوترها چی؟
یک کوانتوم کامپیوتر امروزی همیشه یک کامپیوتر کلاسیک (اسمی که ما به کامپیوترهای معمولی میدیم) رو در کنارش داره. یعنی ما مساله ای که می خوایم حل کنیم رو اول به کامپیوتر کلاسیک می فرستیم. اون کامپیوتر شکل مساله رو عوض می کنه و در یک فورمت قابل فهم مساله رو به پردازنده ی کوانتومی ارسال میکنه. توجه کنید که کامپیوتر کلاسیک در یک کیس معمولی (یا سرور) قرار گرفته و پردازنده ی کوانتومی در یک یخچال سرد (پست قبلی).
پس ما یک کامپیوتر که فقط پردازنده ی کوانتومی داشته باشه نداریم و احتمالا هیچ وقت نخواهیم داشت. چون کوانتوم کامپیوتر ها فقط می تونن یک طیف خاص از مسائل رو حل کنن، و مثلا نمی تونن به ما ابزار تایپ و وب گردی و ارائه کنن. پردازنده های کوانتومی سیستم عامل ندارن و در سطح پایین (کد صفر و یک) با پردازنده ی کلاسیک حرف میزنن.
مراقب باشید که پردازنده های کوانتومی رو دست کم نگیرید. اگرچه تعداد مسائل شناخته شده ای که می تونن حل کنن محدوده، اما این مسائل خیلی برای ما مهم هستن. مثلا یکی از این مسائل فاکتورگیری اعداد به عوامل اول هست که به راحتی می تونه بخش اعظم فناوری های رمزنگاری امروزی رو بی استفاده کنه. کامپیوتر های کوانتومی امروزی البته اون قدر بزرگ نیستند که بتونن به طور مستقیم برای "قفل شکستن" استفاده بشن.
#توضیح_پایه
مثلا وقتی از "کامپیوتر" صحبت می کنیم، منظورمون یک پردازنده، رم، مادربرد و ... هستش که همه به هم وصل شدن و وقتی که روشن میشن یک سیستم عامل به ما یک محیط کار میده. اما کوانتوم کامپیوترها چی؟
یک کوانتوم کامپیوتر امروزی همیشه یک کامپیوتر کلاسیک (اسمی که ما به کامپیوترهای معمولی میدیم) رو در کنارش داره. یعنی ما مساله ای که می خوایم حل کنیم رو اول به کامپیوتر کلاسیک می فرستیم. اون کامپیوتر شکل مساله رو عوض می کنه و در یک فورمت قابل فهم مساله رو به پردازنده ی کوانتومی ارسال میکنه. توجه کنید که کامپیوتر کلاسیک در یک کیس معمولی (یا سرور) قرار گرفته و پردازنده ی کوانتومی در یک یخچال سرد (پست قبلی).
پس ما یک کامپیوتر که فقط پردازنده ی کوانتومی داشته باشه نداریم و احتمالا هیچ وقت نخواهیم داشت. چون کوانتوم کامپیوتر ها فقط می تونن یک طیف خاص از مسائل رو حل کنن، و مثلا نمی تونن به ما ابزار تایپ و وب گردی و ارائه کنن. پردازنده های کوانتومی سیستم عامل ندارن و در سطح پایین (کد صفر و یک) با پردازنده ی کلاسیک حرف میزنن.
مراقب باشید که پردازنده های کوانتومی رو دست کم نگیرید. اگرچه تعداد مسائل شناخته شده ای که می تونن حل کنن محدوده، اما این مسائل خیلی برای ما مهم هستن. مثلا یکی از این مسائل فاکتورگیری اعداد به عوامل اول هست که به راحتی می تونه بخش اعظم فناوری های رمزنگاری امروزی رو بی استفاده کنه. کامپیوتر های کوانتومی امروزی البته اون قدر بزرگ نیستند که بتونن به طور مستقیم برای "قفل شکستن" استفاده بشن.
#توضیح_پایه
این جا یک کامپیوتر کوانتومی رو ببینید:
https://youtu.be/Tvst-xP2_Q8
https://youtu.be/Tvst-xP2_Q8
YouTube
What a quantum computer sounds like
IBM just released an immersive audio visual tour of their Q lab, where the company researches quantum computers.
What you're hearing could be the sound of the future.
SUBSCRIBE: https://goo.gl/kdDpXu
FOLLOW QUARTZ:
Facebook: https://goo.gl/DsmLvx
Twitter:…
What you're hearing could be the sound of the future.
SUBSCRIBE: https://goo.gl/kdDpXu
FOLLOW QUARTZ:
Facebook: https://goo.gl/DsmLvx
Twitter:…
این هم یک توضیح خیلی خوب راجع به کوانتوم و رمزنگاری:
https://youtu.be/6H_9l9N3IXU
https://youtu.be/6H_9l9N3IXU
YouTube
Will Quantum Computers break encryption?
How do you secure messages over the internet? How do quantum computers break it? How do you fix it? Why don't you watch the video to find out? Why does this denoscription have so many questions? Why are you still reading? What is the meaning of life?
0:00…
0:00…
در این پست #بیت و #کیوبیت رو معرفی می کنم که در حقیقت بلوک های پایه ی کامپیوترهای کلاسیک و کوانتومی هستند.
کوچک ترین واحد حافظه چیه؟ بله، بیت!
در کامپیوتر های کلاسیک، ساده ترین واحد داده که میشه ذخیره و پردازش کرد بیت نام گذاری شده. یک بیت به بیان ریاضی یک متغیره که فقط می تونه دو مقدار صفر و یک رو بگیره. مثلا این طوری:
X=0 یا X=1
اما چه کارهایی با یک بیت ها میشه کرد؟ میشه با همدیگه جمع شون کرد، از هم کم کردشون، ضرب کرد، تقسیم کرد، "یا" و "و" منطقی بینشون حساب کرد و البته عکسشون (متضادشون) رو محاسبه کرد. بیت ها در دسته های ۸ تایی که بایت گفته میشه ذخیره میشن و روشن محاسبه انجام میشه. اطلاعات بیشتر:
https://en.m.wikipedia.org/wiki/Boolean_algebra
کامپیوتر های کلاسیک در حقیقت تعداد بسیار کمی دستور رو می تونن انجام بدن. به عنوان مثال یک کامپیوتر با معماری (و نه فقط ساخت) اینتل تقریبا می تونه ۱۵۰۰ تا دستور مختلف رو انجام بده، مثلا جمع، تفریق، پریدن به یک نقطه ی خاص حافظه و .... این لیست این دستورات هست:
https://en.m.wikipedia.org/wiki/X86_instruction_listings
انجام هر کدوم از این دستورات چندین سیکل طول میکشه. اگر یک پردازنده ی ۲ گیگاهرتزی داشته باشید یعنی در هر ثانیه ۲ میلیارد سیکل وجود داره و مثلا در هر ۱۰۰ سیکل یکی از این ۱۵۰۰ دستور پایه اجرا میشن. کار یک کامپایلر اینه که کد شما رو به هر زبونی که هست، به کدی تبدیل کنه که فقط از این ۱۵۰۰ دستور استفاده میکنه! این ۱۵۰۰ دستور در حقیقت بلوک های سازنده ی محاسبات روی کامپیوتر های کلاسیک هستند.
https://fgiesen.wordpress.com/2016/08/25/how-many-x86-instructions-are-there/
برگردیم به بیت ها. چطور پیاده میشن؟ اگر پشت کامپیوتر یا موبایتون رو باز کنید کلی مدار و سیم می بینید. بیت ها با سرعت زیاد از این سیم ها منتقل میشن. اما سیم ها فقط جریان برق منتقل می کنن و نه بیت! بیت یک مفهومه که ما برای محاسبات در قالب جبر بولی تعریف کردیم و در نتیجه شکل فیزیکی اون رو هم باید خودمون تعریف کنیم. پس بر اساس قرارداد، یک سطح ولتاژ بالا(مثلا ۵ ولت) به عنوان "یک" و سطح ولتاژ پایین (مثلا صفر ولت) به عنوان "صفر" نام گذاری میشه.
اما واحد پردازش کامپیوترهای کوانتومی چیه؟ کیوبیت(qubit)! که مخفف quantum bit هستش.
یک کیوبیت در حقیقت یک "حالت" کوانتومی در فضای هیلبرته. خوب به نظر سخت شد، اما نه ساده تر از این حرف هاست! بیاید یک کیوبیت رو با S نشون بدیم، مثل بیت که با X نشون دادیم. حالا بیایم یک نماد ریاضی هم به کار ببریم که مشخص بشه S یک کیوبیته. این جوری:
|S>
این نماد اسمش ket و در نتیجه این "اس-کِت" خونده میشه. نمادهای ریاضی کوانتوم کمی خاص هستند که این جا میتونید بیشتر راجع بهشون بخونید:
https://en.m.wikipedia.org/wiki/Bra%E2%80%93ket_notation
برگردیم به مفهوم کیوبیت. یک کیوبیت بیان میکنه که چقدر احتمال داره یک بیت صفر (در کوانتوم یعنی <0|) یا یک (در کوانتوم <1|) باشه. همون طوری که یک نقطه رو روی نمودار بر اساس x و y بیان می کنیم، می تونیم یک نقطه رو بر اساس <0| و <1| بیان کنیم، یعنی مثلا:
|S> = 0.8×|0> + 0.2×|1>
این مثلا یعنی این که احتمال صفر بودن این کیوبیت ۸۰ درصد و احتمال یک بودن اون ۲۰ درصده! پس اون "هیلبرت" چی بود که گفتم؟ هیلبرت یک فضا یا ویژگی های خاص روی افراد مختلطه. یعنی این که اون ضرایب برای حالات صفر و یک در یک کیوبیت می تونن اعداد مختلط باشن. قدرت کوانتوم کامپیوترها این جاست. واحدهای محاسبات اون ها میتونن بیشتر از فقط دو حالت داشته باشن. مثل فضای دو بعدی x و y که بی نهایت نقطه داره، کیوبیت هم می تونه بی نهایت مقدار بگیره. اما دستورهای پایه (مثل اون ۱۵۰۰ تا در کامپیوترهای اینتل) چطوری برای کوانتوم کامپیوترها تعریف میشن؟ کوانتوم ها عملگرهای خودشون رو دارن که اسمشون گیت هست. این هم لیستشون:
https://en.m.wikipedia.org/wiki/Quantum_logic_gate
در ادامه بیشتر (خیلی بیشتر!) راجع به این گیت ها صحبت می کنیم.
#توضیح_پایه
کوچک ترین واحد حافظه چیه؟ بله، بیت!
در کامپیوتر های کلاسیک، ساده ترین واحد داده که میشه ذخیره و پردازش کرد بیت نام گذاری شده. یک بیت به بیان ریاضی یک متغیره که فقط می تونه دو مقدار صفر و یک رو بگیره. مثلا این طوری:
X=0 یا X=1
اما چه کارهایی با یک بیت ها میشه کرد؟ میشه با همدیگه جمع شون کرد، از هم کم کردشون، ضرب کرد، تقسیم کرد، "یا" و "و" منطقی بینشون حساب کرد و البته عکسشون (متضادشون) رو محاسبه کرد. بیت ها در دسته های ۸ تایی که بایت گفته میشه ذخیره میشن و روشن محاسبه انجام میشه. اطلاعات بیشتر:
https://en.m.wikipedia.org/wiki/Boolean_algebra
کامپیوتر های کلاسیک در حقیقت تعداد بسیار کمی دستور رو می تونن انجام بدن. به عنوان مثال یک کامپیوتر با معماری (و نه فقط ساخت) اینتل تقریبا می تونه ۱۵۰۰ تا دستور مختلف رو انجام بده، مثلا جمع، تفریق، پریدن به یک نقطه ی خاص حافظه و .... این لیست این دستورات هست:
https://en.m.wikipedia.org/wiki/X86_instruction_listings
انجام هر کدوم از این دستورات چندین سیکل طول میکشه. اگر یک پردازنده ی ۲ گیگاهرتزی داشته باشید یعنی در هر ثانیه ۲ میلیارد سیکل وجود داره و مثلا در هر ۱۰۰ سیکل یکی از این ۱۵۰۰ دستور پایه اجرا میشن. کار یک کامپایلر اینه که کد شما رو به هر زبونی که هست، به کدی تبدیل کنه که فقط از این ۱۵۰۰ دستور استفاده میکنه! این ۱۵۰۰ دستور در حقیقت بلوک های سازنده ی محاسبات روی کامپیوتر های کلاسیک هستند.
https://fgiesen.wordpress.com/2016/08/25/how-many-x86-instructions-are-there/
برگردیم به بیت ها. چطور پیاده میشن؟ اگر پشت کامپیوتر یا موبایتون رو باز کنید کلی مدار و سیم می بینید. بیت ها با سرعت زیاد از این سیم ها منتقل میشن. اما سیم ها فقط جریان برق منتقل می کنن و نه بیت! بیت یک مفهومه که ما برای محاسبات در قالب جبر بولی تعریف کردیم و در نتیجه شکل فیزیکی اون رو هم باید خودمون تعریف کنیم. پس بر اساس قرارداد، یک سطح ولتاژ بالا(مثلا ۵ ولت) به عنوان "یک" و سطح ولتاژ پایین (مثلا صفر ولت) به عنوان "صفر" نام گذاری میشه.
اما واحد پردازش کامپیوترهای کوانتومی چیه؟ کیوبیت(qubit)! که مخفف quantum bit هستش.
یک کیوبیت در حقیقت یک "حالت" کوانتومی در فضای هیلبرته. خوب به نظر سخت شد، اما نه ساده تر از این حرف هاست! بیاید یک کیوبیت رو با S نشون بدیم، مثل بیت که با X نشون دادیم. حالا بیایم یک نماد ریاضی هم به کار ببریم که مشخص بشه S یک کیوبیته. این جوری:
|S>
این نماد اسمش ket و در نتیجه این "اس-کِت" خونده میشه. نمادهای ریاضی کوانتوم کمی خاص هستند که این جا میتونید بیشتر راجع بهشون بخونید:
https://en.m.wikipedia.org/wiki/Bra%E2%80%93ket_notation
برگردیم به مفهوم کیوبیت. یک کیوبیت بیان میکنه که چقدر احتمال داره یک بیت صفر (در کوانتوم یعنی <0|) یا یک (در کوانتوم <1|) باشه. همون طوری که یک نقطه رو روی نمودار بر اساس x و y بیان می کنیم، می تونیم یک نقطه رو بر اساس <0| و <1| بیان کنیم، یعنی مثلا:
|S> = 0.8×|0> + 0.2×|1>
این مثلا یعنی این که احتمال صفر بودن این کیوبیت ۸۰ درصد و احتمال یک بودن اون ۲۰ درصده! پس اون "هیلبرت" چی بود که گفتم؟ هیلبرت یک فضا یا ویژگی های خاص روی افراد مختلطه. یعنی این که اون ضرایب برای حالات صفر و یک در یک کیوبیت می تونن اعداد مختلط باشن. قدرت کوانتوم کامپیوترها این جاست. واحدهای محاسبات اون ها میتونن بیشتر از فقط دو حالت داشته باشن. مثل فضای دو بعدی x و y که بی نهایت نقطه داره، کیوبیت هم می تونه بی نهایت مقدار بگیره. اما دستورهای پایه (مثل اون ۱۵۰۰ تا در کامپیوترهای اینتل) چطوری برای کوانتوم کامپیوترها تعریف میشن؟ کوانتوم ها عملگرهای خودشون رو دارن که اسمشون گیت هست. این هم لیستشون:
https://en.m.wikipedia.org/wiki/Quantum_logic_gate
در ادامه بیشتر (خیلی بیشتر!) راجع به این گیت ها صحبت می کنیم.
#توضیح_پایه
Wikipedia
Boolean algebra
In mathematics and mathematical logic, Boolean algebra is a branch of algebra. It differs from elementary algebra in two ways. First, the values of the variables are the truth values true and false, usually denoted by 1 and 0, whereas in elementary algebra…
