#کوانتومی_عملی
معمولا اگر در مورد کاربردهای عملی کوانتوم کامپیوتر ها جستجو کنید بیشتر به مفاهیم مرتبط به رمزنگاری می رسید، اما چرا؟ آیا این اصلی ترین کاربرد کوانتوم کامپیوتر هاست؟ نه!
ساخت یک کوانتوم کامپیوتر از نظر علمی و عملی پیچیدگی های زیادی داره. فارغ از بحث های تئوری، ساخت یک چیپ ابررسانا با طراحی منحصر به فرد و سرد کردن اون و کنترل نویز این قدر سخت هستند که تا به حال بیشتر تمرکز دانشمندها و مهندس ها در حقیقتت حل مشکلات مهندسی پایه بوده. در نتیجه برای تست کامپیوتر های اولیه به الگوریتم های ساده بسنده شده.
محققان به دنبال مسائلی بودن که یک کوانتوم کامپیوتر "شاید" بتونه سریع تر از یک کامپیوتر عادی حلشون کنه. با این کار می خواستن نشون بدن که کاربردهای کوانتوم می تونه وارد زندگی عادی هم بشه. اما موضوع وقتی جالب شد که اون ها دیدن که میشه الگوریتم کوانتومی طراحی کرد که بتونه دوره ی تناوب رو در یک رشته عدد صحیح خیلی خیلی سریع تر از یک کامپیوتر عادی محاسبه کنه. اما این چرا مهم بود؟ چون اصلی ترین روش رمزنگاری که ما استفاده می کنیم، یعنی RSA، فرض می کنه که پیدا کردن این تناوب ساده نیست! در نتیجه زمان بر ترین بخش شکستن رمز ها همین بخشه! این جا یک پیاده سازی Python از این الگوریتم رو ببینید:
https://www.topcoder.com/shors-algorithm-in-quantum-computing/
پس رمزنگاری و شکستن رمزها کاربرد اصلی کوانتوم کامپیوتر ها نیست، بلکه تقریبا اولین کاربرد عملی کوانتوم کامپیوترها بوده و برای همین مشهوره. اما پس چرا کامپیوتر های امروزی نمی تونن تمام رمزهای ما رو بشکنن؟ چون اولا به تعداد کافی کیوبیت ندارن و در ثانی نویز زیاد مانع پیاده سازی مدارهای بزرگ میشه.
کاربردی که به نظرم در میان مدت ممکنه خیلی جالب باشه حل مسائل بهینه سازی درجه دو با کمک کوانتوم کامپیوتر هاست که کاربردهای زیادی در مهندسی، پزشکی، و اقتصاد داره.
معمولا اگر در مورد کاربردهای عملی کوانتوم کامپیوتر ها جستجو کنید بیشتر به مفاهیم مرتبط به رمزنگاری می رسید، اما چرا؟ آیا این اصلی ترین کاربرد کوانتوم کامپیوتر هاست؟ نه!
ساخت یک کوانتوم کامپیوتر از نظر علمی و عملی پیچیدگی های زیادی داره. فارغ از بحث های تئوری، ساخت یک چیپ ابررسانا با طراحی منحصر به فرد و سرد کردن اون و کنترل نویز این قدر سخت هستند که تا به حال بیشتر تمرکز دانشمندها و مهندس ها در حقیقتت حل مشکلات مهندسی پایه بوده. در نتیجه برای تست کامپیوتر های اولیه به الگوریتم های ساده بسنده شده.
محققان به دنبال مسائلی بودن که یک کوانتوم کامپیوتر "شاید" بتونه سریع تر از یک کامپیوتر عادی حلشون کنه. با این کار می خواستن نشون بدن که کاربردهای کوانتوم می تونه وارد زندگی عادی هم بشه. اما موضوع وقتی جالب شد که اون ها دیدن که میشه الگوریتم کوانتومی طراحی کرد که بتونه دوره ی تناوب رو در یک رشته عدد صحیح خیلی خیلی سریع تر از یک کامپیوتر عادی محاسبه کنه. اما این چرا مهم بود؟ چون اصلی ترین روش رمزنگاری که ما استفاده می کنیم، یعنی RSA، فرض می کنه که پیدا کردن این تناوب ساده نیست! در نتیجه زمان بر ترین بخش شکستن رمز ها همین بخشه! این جا یک پیاده سازی Python از این الگوریتم رو ببینید:
https://www.topcoder.com/shors-algorithm-in-quantum-computing/
پس رمزنگاری و شکستن رمزها کاربرد اصلی کوانتوم کامپیوتر ها نیست، بلکه تقریبا اولین کاربرد عملی کوانتوم کامپیوترها بوده و برای همین مشهوره. اما پس چرا کامپیوتر های امروزی نمی تونن تمام رمزهای ما رو بشکنن؟ چون اولا به تعداد کافی کیوبیت ندارن و در ثانی نویز زیاد مانع پیاده سازی مدارهای بزرگ میشه.
کاربردی که به نظرم در میان مدت ممکنه خیلی جالب باشه حل مسائل بهینه سازی درجه دو با کمک کوانتوم کامپیوتر هاست که کاربردهای زیادی در مهندسی، پزشکی، و اقتصاد داره.
Topcoder
Shor's Algorithm in Quantum Computing | Topcoder
#توضیح_پایه
پدیده ی Quantum Tunneling یکی از سه ویژگی مهم کوانتومی در فیزیکه. دو تای دیگه Superposition (همزمان صفر و یک بودن) و Entanglement (یکی بودن وضعیت صفر و یا یک بودن حتی با وجود فاصله ی زیاد) هستن.
سعی کنید که کنار یک دیوار بایستید و دست تون رو از دیوار رد کنید. چقدر احتمال داره که (با فرض سوراخ نکردن دیوار!) بتونید این کار رو انجام بدید؟ احتمالا هیچ احتمالی براش در نظر نمیگیرید. اما این وضعیت برای یک ذره ی خیلی کوچک مثل الکترون صادق نیست. بله، الکترون میتونه از "دیوار" رد بشه!
الکترون (و بقیه ی ذرات خیلی کوچک) می تونن رفتار شبیه موج داشته باشن. در حقیقت ما موقعیت مکانی دقیقشون رو نمی دونیم و صرفا می دونیم که با یک احتمال خاص این جا هستن و با یک احتمال خاص اون جا. این احتمال در حقیقت اندازه (مجذور) یک تابع موجه. پس موقعیت مکانی یک الکترون رو به جای x و y و z با یک تابع موج نشون میدیم. اصل عدم قطعیت هایزنبرگ (فیزیکدان اتریشی) میگه که حاصل ضرب عدم قطعیت مکان ضرب در عدم قطعیت در مومنتوم همیشه بزرگ تر از یک عدده و در نتیجه ما نمی تونیم هیچ وقت موقعیت مکانی دقیق یک ذره رو داشته باشیم.
حالا اگر معادله ی هایزنبرگ رو برای یک ذره ی کوچک (با جرم پایین) و یک دیوار نازک حساب کنیم می بینیم که احتمال این که الکترون بتونه از دیوار رد بشه صفر نیست. در حقیقت حتی احتمال این که خود شما بتونید از دیوار رد بشید هم صفر نیست! اما احتمالش ۱۰ به توان منفی ۴۰ هستش. برای این که درک کنید این عدد چقدر کوچکه، در نظر داشته باشد که بدن ما حدود ۱۰ به توان ۲۸ اتم داره.
از خاصیت Quantum Tunneling همین الان هم در تمام دستگاه های الکترونیکی استفاده می کنیم. ترانزیستور ها که اجزای تشکیل دهنده ی مدارهای مجتمع و پردازنده هستن مثل یک کلید سه پایه عمل می کنن. الکترون از یک پایه (Source) به پایه ی دیگه (Drain) میره اگر که پایه ی سوم (Gate) ضعیف باشه. در حقیقت پایه ی سوم که وسط دو پایه ی دیگه قرار داره نقش همون دیوار رو بازی می کنه، اما ما می تونیم این دیوار رو با جریان الکتریکی نازک یا کلفت کنیم. حالا مشکل توسعه ی کامپیوتر های جدید چیه؟ فاصله ی پایه ی اول و دوم هر روز در حال کم تر شدنه چون قراره میلیاردها ترانزیستور در یک پردازنده جا بگیره. این که میگن تکنولوژی یک پردازنده ۱۱ نانومتریه، منظورشون اینه که فاصله ی پایه ی اول و دوم این قدره. حالا اگر این عدد خیلی کوچک بشه پدیده ی Quantum Tunneling خود به خود و بدون کنترل پایه ی سوم اتفاق می افته و در حقیقت ترانزیستور دیگه کارایی نداره. به بیان دیگه، این قدر فاصله ی دو پایه کمه که الکترون خودش بدون کنترل ما از این طرف به طرف دیگه "می پره".
حالا در کوانتوم کامپیوتر ها چطور از پدیده ی Quantum Tunneling استفاده میشه؟ یک مثال در Quantum Annealing هستش، جایی که ما از کوانتوم برای حل مسائل بهینه سازی درجه دو استفاده می کنیم. تابع هزینه ی درجه دو شامل کلی پستی و بلندی هست و برای همینه که پیدا کردن نقطه ی کمینه ی اون برای روش های ریاضی و کامپیوتر های کلاسیک سخته. اما با استفاده از Quantum Tunneling، یک الکترون میتونه وقتی که توی یک کمینه ی محلی گیر کرد، "تونل بزنه" و بره اون طرف تا شاید به کمینه بهتری برسه. در این جا اون بیشینه ی محلی بین دو کمینه، نقش دیوار رو بازی میکنه.
برای اطلاعات بیشتر و دقیق تر، ویدئویی زیر رو توصیه می کنم ببینید:
https://youtu.be/YstJxj30hzs
پدیده ی Quantum Tunneling یکی از سه ویژگی مهم کوانتومی در فیزیکه. دو تای دیگه Superposition (همزمان صفر و یک بودن) و Entanglement (یکی بودن وضعیت صفر و یا یک بودن حتی با وجود فاصله ی زیاد) هستن.
سعی کنید که کنار یک دیوار بایستید و دست تون رو از دیوار رد کنید. چقدر احتمال داره که (با فرض سوراخ نکردن دیوار!) بتونید این کار رو انجام بدید؟ احتمالا هیچ احتمالی براش در نظر نمیگیرید. اما این وضعیت برای یک ذره ی خیلی کوچک مثل الکترون صادق نیست. بله، الکترون میتونه از "دیوار" رد بشه!
الکترون (و بقیه ی ذرات خیلی کوچک) می تونن رفتار شبیه موج داشته باشن. در حقیقت ما موقعیت مکانی دقیقشون رو نمی دونیم و صرفا می دونیم که با یک احتمال خاص این جا هستن و با یک احتمال خاص اون جا. این احتمال در حقیقت اندازه (مجذور) یک تابع موجه. پس موقعیت مکانی یک الکترون رو به جای x و y و z با یک تابع موج نشون میدیم. اصل عدم قطعیت هایزنبرگ (فیزیکدان اتریشی) میگه که حاصل ضرب عدم قطعیت مکان ضرب در عدم قطعیت در مومنتوم همیشه بزرگ تر از یک عدده و در نتیجه ما نمی تونیم هیچ وقت موقعیت مکانی دقیق یک ذره رو داشته باشیم.
حالا اگر معادله ی هایزنبرگ رو برای یک ذره ی کوچک (با جرم پایین) و یک دیوار نازک حساب کنیم می بینیم که احتمال این که الکترون بتونه از دیوار رد بشه صفر نیست. در حقیقت حتی احتمال این که خود شما بتونید از دیوار رد بشید هم صفر نیست! اما احتمالش ۱۰ به توان منفی ۴۰ هستش. برای این که درک کنید این عدد چقدر کوچکه، در نظر داشته باشد که بدن ما حدود ۱۰ به توان ۲۸ اتم داره.
از خاصیت Quantum Tunneling همین الان هم در تمام دستگاه های الکترونیکی استفاده می کنیم. ترانزیستور ها که اجزای تشکیل دهنده ی مدارهای مجتمع و پردازنده هستن مثل یک کلید سه پایه عمل می کنن. الکترون از یک پایه (Source) به پایه ی دیگه (Drain) میره اگر که پایه ی سوم (Gate) ضعیف باشه. در حقیقت پایه ی سوم که وسط دو پایه ی دیگه قرار داره نقش همون دیوار رو بازی می کنه، اما ما می تونیم این دیوار رو با جریان الکتریکی نازک یا کلفت کنیم. حالا مشکل توسعه ی کامپیوتر های جدید چیه؟ فاصله ی پایه ی اول و دوم هر روز در حال کم تر شدنه چون قراره میلیاردها ترانزیستور در یک پردازنده جا بگیره. این که میگن تکنولوژی یک پردازنده ۱۱ نانومتریه، منظورشون اینه که فاصله ی پایه ی اول و دوم این قدره. حالا اگر این عدد خیلی کوچک بشه پدیده ی Quantum Tunneling خود به خود و بدون کنترل پایه ی سوم اتفاق می افته و در حقیقت ترانزیستور دیگه کارایی نداره. به بیان دیگه، این قدر فاصله ی دو پایه کمه که الکترون خودش بدون کنترل ما از این طرف به طرف دیگه "می پره".
حالا در کوانتوم کامپیوتر ها چطور از پدیده ی Quantum Tunneling استفاده میشه؟ یک مثال در Quantum Annealing هستش، جایی که ما از کوانتوم برای حل مسائل بهینه سازی درجه دو استفاده می کنیم. تابع هزینه ی درجه دو شامل کلی پستی و بلندی هست و برای همینه که پیدا کردن نقطه ی کمینه ی اون برای روش های ریاضی و کامپیوتر های کلاسیک سخته. اما با استفاده از Quantum Tunneling، یک الکترون میتونه وقتی که توی یک کمینه ی محلی گیر کرد، "تونل بزنه" و بره اون طرف تا شاید به کمینه بهتری برسه. در این جا اون بیشینه ی محلی بین دو کمینه، نقش دیوار رو بازی میکنه.
برای اطلاعات بیشتر و دقیق تر، ویدئویی زیر رو توصیه می کنم ببینید:
https://youtu.be/YstJxj30hzs
YouTube
Is Quantum Tunneling the Key to Life and existence of the Universe?
Get MagellanTV here: https://try.magellantv.com/arvinash and get an exclusive offer for our viewers: an extended, month-long trial, FREE. MagellanTV has the largest and best collection of Science content anywhere, including Space, Physics, Technology, Nature…
محاسبات کوانتومی
#توضیح_پایه پدیده ی Quantum Tunneling یکی از سه ویژگی مهم کوانتومی در فیزیکه. دو تای دیگه Superposition (همزمان صفر و یک بودن) و Entanglement (یکی بودن وضعیت صفر و یا یک بودن حتی با وجود فاصله ی زیاد) هستن. سعی کنید که کنار یک دیوار بایستید و دست تون رو…
این مقاله ی Nature دو سال پیش از Quantum Annealing برای بهینه سازی یک شبکه ی عصبی مصنوعی عمیق استفاده کرد.
https://www.nature.com/articles/s41598-018-28212-4
https://www.nature.com/articles/s41598-018-28212-4
Nature
Optimization of neural networks via finite-value quantum fluctuations
Scientific Reports - Optimization of neural networks via finite-value quantum fluctuations
"محاسبات کوانتومی" یک کانال تلگرامه که سعی میکنه نحوه ی کار کوانتوم کامپیوترها رو به زبان ساده توضیح بده و بگه که چطور میشه با اون ها به شکل عملی کار کرد.
ما رو به دوستانتون هم معرفی کنید!
@quantum_farsi
ما رو به دوستانتون هم معرفی کنید!
@quantum_farsi
آیا میشه با یک کامپیوتر عادی، یک کامپیوتر کوانتومی رو شبیه سازی کرد و به همون سرعت رسید؟
جواب کوتاه اینه که، نه! اما حالا جواب بلند تر.
گفتیم که هر کیوبیت (معادل بیت در کامپیوتر های کلاسیک) در حقیقت یک ترکیب خطی (جمع دو تا!) حالت مشخص صفر و یکه. یعنی مثلا یک کیوبیت میتونه با احتمال ۳۰ درصد "صفر" و با احتمال ۷۰ درصد "یک" باشه. اما این کاملا (یعنی اصلا) درست نیست. چرا که یک ذره ی کوانتومی احتمالی کار نمی کنه. اگر احتمالی کار می کرد، مثلا این طوری میشد که اون کیوبیت در وضعیت "صفر" بود، اما ما چون نمی تونستم اندازه اش بگیریم، به صورت احتمالی می گفتیم فلان قدر درصد "صفر" هست احتمالا. مثل وقتی که چشمامون رو می بندیم و یک سکه رو پرت می کنیم. رو یا پشت اومدن سکه معلومه، فقط ما تا چشم باز نکنیم نمی فهمیم رو یا پشت اومده سکه. اما یک ذره ی کیوبیت مثل الکترون (که ما در محاسبات میگیم کیوبیت) این طور نیست. درسته که ما با مدل ریاضی کوانتومی مثل احتمال برخورد می کنیم، اما در حقیقت اون کیوبیت "همزمان" در هر دو وضعیت قرار داره. تصور این برای ما ممکن نیست چرا که نمی تونیم تصور کنیم که یک سکه رو به بالا پرت کنیم و اون سکه قبل از باز کردن چشم، هم رو و هم پشت باشه!
القصه، یک کیوبیت قبل از این که ما اندازه اش بگیریم (تعیین صفر و یک بودن) تواما در هر دو وضعیت قرار داره و بعد از اندازه گیری، با یک احتمال مشخص به صفر و یا یک "تبدیل" میشه. وقتی که تبدیل شد ما دیگه هیچ وقت نمی تونیم دوباره به حالت کوانتومی قبلی برش گردونیم.
اگر قرار باشه یک محاسبه ی کوانتومی رو در کامپیوتر کلاسیک شبیه سازی کنیم، دیگه باید همه چیز رو احتمالی در نظر بگیریم و از خاصیت دوگانگی (همزمان صفر و یک بودن) کوانتوم صرف نظر کنیم. در نتیجه، کامپیوتر های عادی کلاسیک نمی تونن کامپیوتر های کوانتومی رو واقعا شبیه سازی کنن. اما وقتی تعداد کیوبیت ها پایین باشه (در حد ۱۵ تا مثلا) میشه تمام دو به توان ۱۵ حالت رو محاسبه کرد و شبیه سازی شدنیه.
#توضیح_پایه
جواب کوتاه اینه که، نه! اما حالا جواب بلند تر.
گفتیم که هر کیوبیت (معادل بیت در کامپیوتر های کلاسیک) در حقیقت یک ترکیب خطی (جمع دو تا!) حالت مشخص صفر و یکه. یعنی مثلا یک کیوبیت میتونه با احتمال ۳۰ درصد "صفر" و با احتمال ۷۰ درصد "یک" باشه. اما این کاملا (یعنی اصلا) درست نیست. چرا که یک ذره ی کوانتومی احتمالی کار نمی کنه. اگر احتمالی کار می کرد، مثلا این طوری میشد که اون کیوبیت در وضعیت "صفر" بود، اما ما چون نمی تونستم اندازه اش بگیریم، به صورت احتمالی می گفتیم فلان قدر درصد "صفر" هست احتمالا. مثل وقتی که چشمامون رو می بندیم و یک سکه رو پرت می کنیم. رو یا پشت اومدن سکه معلومه، فقط ما تا چشم باز نکنیم نمی فهمیم رو یا پشت اومده سکه. اما یک ذره ی کیوبیت مثل الکترون (که ما در محاسبات میگیم کیوبیت) این طور نیست. درسته که ما با مدل ریاضی کوانتومی مثل احتمال برخورد می کنیم، اما در حقیقت اون کیوبیت "همزمان" در هر دو وضعیت قرار داره. تصور این برای ما ممکن نیست چرا که نمی تونیم تصور کنیم که یک سکه رو به بالا پرت کنیم و اون سکه قبل از باز کردن چشم، هم رو و هم پشت باشه!
القصه، یک کیوبیت قبل از این که ما اندازه اش بگیریم (تعیین صفر و یک بودن) تواما در هر دو وضعیت قرار داره و بعد از اندازه گیری، با یک احتمال مشخص به صفر و یا یک "تبدیل" میشه. وقتی که تبدیل شد ما دیگه هیچ وقت نمی تونیم دوباره به حالت کوانتومی قبلی برش گردونیم.
اگر قرار باشه یک محاسبه ی کوانتومی رو در کامپیوتر کلاسیک شبیه سازی کنیم، دیگه باید همه چیز رو احتمالی در نظر بگیریم و از خاصیت دوگانگی (همزمان صفر و یک بودن) کوانتوم صرف نظر کنیم. در نتیجه، کامپیوتر های عادی کلاسیک نمی تونن کامپیوتر های کوانتومی رو واقعا شبیه سازی کنن. اما وقتی تعداد کیوبیت ها پایین باشه (در حد ۱۵ تا مثلا) میشه تمام دو به توان ۱۵ حالت رو محاسبه کرد و شبیه سازی شدنیه.
#توضیح_پایه
آیا کوانتوم کامپیوترها می تونن باعث شکستن کدهای #بیتکوین بشن؟
بله، ممکنه یک روز این قدر بزرگ بشن که بتونن رمز نامتقارن در اون ابعاد رو بشکنن. اما اون روز اصلا نزدیک نیست.
https://www.google.com/amp/s/www.forbes.com/sites/rogerhuang/2020/12/21/heres-why-quantum-computing-will-not-break-cryptocurrencies/amp/
بله، ممکنه یک روز این قدر بزرگ بشن که بتونن رمز نامتقارن در اون ابعاد رو بشکنن. اما اون روز اصلا نزدیک نیست.
https://www.google.com/amp/s/www.forbes.com/sites/rogerhuang/2020/12/21/heres-why-quantum-computing-will-not-break-cryptocurrencies/amp/
Forbes
Here’s Why Quantum Computing Will Not Break Cryptocurrencies
Quantum computing isn't going to suddenly end the security of cryptocurrencies and bitcoin. Here's why.
شبکه ی کیوبیت ها.
کامپیوتر های کلاسیک:
در یک کامپیوتر کلاسیک، میشه هر دو (یا چند) بیت مختلف رو انتخاب و روشون یک عملگر اعمال کرد. مثلا میشه به کامپیوتر گفت دو متغیر از دو جای مختلف حافظه برداره، با هم جمعشون کنه و خروجی رو یک جای دیگه حافظه ذخیره کنه. اما سوال اینه که آیا اطلاعات این بیت ها از بین نمیرن؟ مثلا چی پیشه اگر در حین خوندن یک بیت، یک مشکل فیزیکی پیش بیاد و کامپیوتر عدد رو اشتباه بخونه؟ این مشکل پیش میاد و البته تا حدودی هم شایعه.
بگذارید مثال رو ملموس تر جلو ببریم. فرض کنید دو کامپیوتر رو با یک کابل به هم وصل کردید. بعد یک فایل حجیم رو از روی یک کامپیوتر به کامپیوتر دیگه از طریق کابل شبکه انتقال میدید. حالا اگر روی کابل شبکه نویز (مثلا نزدیک کردن یک آهنربایی قوی) اعمال کنیم، اون وقت میبینیم که سرعت انتقال کم میشه، اما اگر نویز زیاد نباشه در نهایت فایل "تقریبا" سالم منتقل میشه. دلیل کم شدن سرعت اینه که اطلاعات در قالب یک بسته کددار منتقل میشن و کامپیوتر مقصد میفهمه که بسته به خاطر نویز خراب شده. در نتیجه به کامپیوتر مبدا میگه که دوباره اون بسته (بخش کوچک اطلاعات) رو ارسال کنه. این ارسال چند باره باعث میشه سرعت کم بشه. اما در نهایت کل اون فایل حجیم منتقل میشه.
برگردیم به داخل کامپیوتر . اگر یک میدان مغناطیسی قوی روی RAM اعمال کنیم چی میشه؟ چون در این سطح دیگه اطلاعات به شکل بسته با کد تایید نیستن، امکان ترمیم و یا تشخیص خطا نیست و بیت های خطا دار خونده و به پردازنده ارسال میشن. پردازنده که نمیتونه اون ها رو معنی کنه، هنگ میکنه! اما این مساله اصلا مشکل زا نیست نیست چون اولا محیط کاری ما برای کامپیوتر های کلاسیک پرنویز محسوب نمیشه، و در ثانی، خود این کامپیوتر ها هم اون قدر به نویز حساس نیستن. از طرف دیگه، در کامپیوتر ها میلیاردها بیت ذخیره و پردازش میشه و خراب شون تعداد کمی، احتمالا منجر به خطای خاصی نمیشه.
کوانتوم کامپیوترها:
در یک کوانتوم کامپیوتر نمیشه روی هر دو کیوبیت دلخواه عملیات محاسباتی انجام داد چون همگی به هم وصل نیستن! مثلا گوگل کیوبیت هاش رو به شکل شبکه ی مربعی (mesh) کنار ام قرار میده. در نتیجه اگر دو کیوبیت مستقیما به هم وصل نباشن باید با روش های نسبتا پیچیده به شکل منطقی (مجازی) به هم وصلشون کرد که احتمال خطا رو بالا میبره. از طرف دیگه چون که تعداد کیوبیت ها در کامپیوترهای امروزی کمه (کمتر از ۶۰)، از دست رفتن اطلاعات حتی یکی از کیوبیت ها هم به معنی خراب شدن کل محاسباته. در آخر، کوانتوم کامپیوتر ها به شدت به نویز حساس هستن و اندک تغییر شرایط فیزیکی باعث میشه کاملا از کار بیافتن. برای همین هم وقتی می خوایم یک مساله رو روی کوانتوم کامپیوتر حل کنیم، عموما اون رو چند هزار بار برای کامپیوتر می فرستیم و بعد می بینیم که چه جوابی بیشتر تولید شده. اما حل مساله حتی چند هزار دفعه، کمتر از یک میلی ثانیه زمان میبره.
کامپیوتر های کلاسیک:
در یک کامپیوتر کلاسیک، میشه هر دو (یا چند) بیت مختلف رو انتخاب و روشون یک عملگر اعمال کرد. مثلا میشه به کامپیوتر گفت دو متغیر از دو جای مختلف حافظه برداره، با هم جمعشون کنه و خروجی رو یک جای دیگه حافظه ذخیره کنه. اما سوال اینه که آیا اطلاعات این بیت ها از بین نمیرن؟ مثلا چی پیشه اگر در حین خوندن یک بیت، یک مشکل فیزیکی پیش بیاد و کامپیوتر عدد رو اشتباه بخونه؟ این مشکل پیش میاد و البته تا حدودی هم شایعه.
بگذارید مثال رو ملموس تر جلو ببریم. فرض کنید دو کامپیوتر رو با یک کابل به هم وصل کردید. بعد یک فایل حجیم رو از روی یک کامپیوتر به کامپیوتر دیگه از طریق کابل شبکه انتقال میدید. حالا اگر روی کابل شبکه نویز (مثلا نزدیک کردن یک آهنربایی قوی) اعمال کنیم، اون وقت میبینیم که سرعت انتقال کم میشه، اما اگر نویز زیاد نباشه در نهایت فایل "تقریبا" سالم منتقل میشه. دلیل کم شدن سرعت اینه که اطلاعات در قالب یک بسته کددار منتقل میشن و کامپیوتر مقصد میفهمه که بسته به خاطر نویز خراب شده. در نتیجه به کامپیوتر مبدا میگه که دوباره اون بسته (بخش کوچک اطلاعات) رو ارسال کنه. این ارسال چند باره باعث میشه سرعت کم بشه. اما در نهایت کل اون فایل حجیم منتقل میشه.
برگردیم به داخل کامپیوتر . اگر یک میدان مغناطیسی قوی روی RAM اعمال کنیم چی میشه؟ چون در این سطح دیگه اطلاعات به شکل بسته با کد تایید نیستن، امکان ترمیم و یا تشخیص خطا نیست و بیت های خطا دار خونده و به پردازنده ارسال میشن. پردازنده که نمیتونه اون ها رو معنی کنه، هنگ میکنه! اما این مساله اصلا مشکل زا نیست نیست چون اولا محیط کاری ما برای کامپیوتر های کلاسیک پرنویز محسوب نمیشه، و در ثانی، خود این کامپیوتر ها هم اون قدر به نویز حساس نیستن. از طرف دیگه، در کامپیوتر ها میلیاردها بیت ذخیره و پردازش میشه و خراب شون تعداد کمی، احتمالا منجر به خطای خاصی نمیشه.
کوانتوم کامپیوترها:
در یک کوانتوم کامپیوتر نمیشه روی هر دو کیوبیت دلخواه عملیات محاسباتی انجام داد چون همگی به هم وصل نیستن! مثلا گوگل کیوبیت هاش رو به شکل شبکه ی مربعی (mesh) کنار ام قرار میده. در نتیجه اگر دو کیوبیت مستقیما به هم وصل نباشن باید با روش های نسبتا پیچیده به شکل منطقی (مجازی) به هم وصلشون کرد که احتمال خطا رو بالا میبره. از طرف دیگه چون که تعداد کیوبیت ها در کامپیوترهای امروزی کمه (کمتر از ۶۰)، از دست رفتن اطلاعات حتی یکی از کیوبیت ها هم به معنی خراب شدن کل محاسباته. در آخر، کوانتوم کامپیوتر ها به شدت به نویز حساس هستن و اندک تغییر شرایط فیزیکی باعث میشه کاملا از کار بیافتن. برای همین هم وقتی می خوایم یک مساله رو روی کوانتوم کامپیوتر حل کنیم، عموما اون رو چند هزار بار برای کامپیوتر می فرستیم و بعد می بینیم که چه جوابی بیشتر تولید شده. اما حل مساله حتی چند هزار دفعه، کمتر از یک میلی ثانیه زمان میبره.
ماشین لرنینگ روی کوانتوم کامپیوترها.
به طور کوتاه، کوانتوم کامپیوترها عملا تا به حال هیچ موفقیتی برای حل مسائل ماشین لرنینگ نداشتن، نه تئوری و نه عملی. بستر مناسب برای ماشین لرنینگ، با توجه به دانش امروز ما، GPU ها و FPGA ها هستن.
حالا شرح بیشتر! مشکل اصلی استفاده از کوانتوم کامپیوتر ها برای حل مسائل ماشین لرنینگ اینه که بیشتر مسائل ماشین لرنینگ تکرار شونده (iterative) هستن اما طول مدار در یک کوانتوم کامپیوتر به شدت محدوده به خاطر مشکل decoherence. مشکل بعدی کد کردن داده است. یعنی این که مثلا اگر بخوایم هر ویژگی داده رو با یک کیوبیت کد کنیم (که ما رو حدود به ویژگیهای باینری میکنه) به تعداد ویژگی ها باید کیوبیت داشته باشیم. یا اگر مساله رو برعکس بینیم، باید به تعداد داده ها کیوبیت داشته باشیم. این ما رو محدود به مسائل خیلی خیلی کوچک و ساده میکنه. راه حلی که پیشنهاد میشه اینه که بخشی از سیستم کوانتوم و بخشی از اون کلاسیک باشه که خوب باز هم نتایج فعلی بهبودی رو نشون نمیدن.
مقالات مرتبط:
https://www.xanadu.ai/research
اگر دوست دارید بیشتر بدونید در این زمینه، این کورس رو دنبال کنید:
https://www.edx.org/course/quantum-machine-learning
پی نوشت: مدرس این درس دو سال پیش در کوه های اورست گم شدن. اما این درس و چندین مقاله ی تاثیر گذار ازشون به یادگار مونده.
به طور کوتاه، کوانتوم کامپیوترها عملا تا به حال هیچ موفقیتی برای حل مسائل ماشین لرنینگ نداشتن، نه تئوری و نه عملی. بستر مناسب برای ماشین لرنینگ، با توجه به دانش امروز ما، GPU ها و FPGA ها هستن.
حالا شرح بیشتر! مشکل اصلی استفاده از کوانتوم کامپیوتر ها برای حل مسائل ماشین لرنینگ اینه که بیشتر مسائل ماشین لرنینگ تکرار شونده (iterative) هستن اما طول مدار در یک کوانتوم کامپیوتر به شدت محدوده به خاطر مشکل decoherence. مشکل بعدی کد کردن داده است. یعنی این که مثلا اگر بخوایم هر ویژگی داده رو با یک کیوبیت کد کنیم (که ما رو حدود به ویژگیهای باینری میکنه) به تعداد ویژگی ها باید کیوبیت داشته باشیم. یا اگر مساله رو برعکس بینیم، باید به تعداد داده ها کیوبیت داشته باشیم. این ما رو محدود به مسائل خیلی خیلی کوچک و ساده میکنه. راه حلی که پیشنهاد میشه اینه که بخشی از سیستم کوانتوم و بخشی از اون کلاسیک باشه که خوب باز هم نتایج فعلی بهبودی رو نشون نمیدن.
مقالات مرتبط:
https://www.xanadu.ai/research
اگر دوست دارید بیشتر بدونید در این زمینه، این کورس رو دنبال کنید:
https://www.edx.org/course/quantum-machine-learning
پی نوشت: مدرس این درس دو سال پیش در کوه های اورست گم شدن. اما این درس و چندین مقاله ی تاثیر گذار ازشون به یادگار مونده.
اگر دوست دارید برنامه نویسی کوانتوم کامپیوتر ها رو با Python شروع کنید، من این رو پیشنهاد میکنم:
https://quantumai.google/cirq
https://quantumai.google/cirq
Google Quantum AI
Cirq | Google Quantum AI
Cirq is a Python software library for writing, manipulating, and optimizing quantum circuits, and then running them on quantum computers and quantum simulators.
محاسبات کوانتومی
ماشین لرنینگ روی کوانتوم کامپیوترها. به طور کوتاه، کوانتوم کامپیوترها عملا تا به حال هیچ موفقیتی برای حل مسائل ماشین لرنینگ نداشتن، نه تئوری و نه عملی. بستر مناسب برای ماشین لرنینگ، با توجه به دانش امروز ما، GPU ها و FPGA ها هستن. حالا شرح بیشتر! مشکل اصلی…
Quantum
In memoriam: Peter Wittek
Peter Wittek disappeared in September 2019 when an avalanche hit their camp during an expedition on Mount Trishul. Peter was a researcher on quantum computing and quantum machine learning based ...
طراحی مدار در کوانتوم کامپیوتر ها
برای کامپیوترهای کلاسیک که از منطق بولی (صفر و یک) تبعیت می کنن راه حل مشخصی برای طراحی مدار وجود داره. اول ورودی و خروجی دلخواه رو لیست می کنیم و بعد با طی یک سری قدم های مشخص اون رو تبدیل به یک تابع ریاضی می کنیم که متغیرهای باینری داره با عملگر های منطقی and or، و not. در نهایت هم برای پیاده سازی سخت افزاری عملگرها رو به nand تبدیل می کنیم.
قطعا در یک پردازنده که میلیاردها ترانزیستور داره راه حل به همین سادگی نیست. اما در نهایت ابزارهای زیادی وجود دارن که به ما در این راه کمک می کنن. اما از اون مهم تر اینه که روش طراحی مداری که خروجی دلخواه رو بر اساس ورودی ها ایجاد کنه برای ما مشخصه.
اما وضعیت در کوانتوم کامپیوتر های کاملا متفاوته. تا حالا تعداد بسیار کمی مدار پایه طراحی شده و برای طراحی مدارهای جدید (که یک عملیات جدید انجام بدن) هیچ راه حل مشخصی نداره. در حقیقت، نمی تونیم یک الگوریتم یا قدم های مشخص برای طراحی یک مدار تعریف کنیم. این باعث میشه که طراحی مدار به شکل شهودی انجام بشه که سرعت توسعه کند می کنه.
برای کامپیوترهای کلاسیک که از منطق بولی (صفر و یک) تبعیت می کنن راه حل مشخصی برای طراحی مدار وجود داره. اول ورودی و خروجی دلخواه رو لیست می کنیم و بعد با طی یک سری قدم های مشخص اون رو تبدیل به یک تابع ریاضی می کنیم که متغیرهای باینری داره با عملگر های منطقی and or، و not. در نهایت هم برای پیاده سازی سخت افزاری عملگرها رو به nand تبدیل می کنیم.
قطعا در یک پردازنده که میلیاردها ترانزیستور داره راه حل به همین سادگی نیست. اما در نهایت ابزارهای زیادی وجود دارن که به ما در این راه کمک می کنن. اما از اون مهم تر اینه که روش طراحی مداری که خروجی دلخواه رو بر اساس ورودی ها ایجاد کنه برای ما مشخصه.
اما وضعیت در کوانتوم کامپیوتر های کاملا متفاوته. تا حالا تعداد بسیار کمی مدار پایه طراحی شده و برای طراحی مدارهای جدید (که یک عملیات جدید انجام بدن) هیچ راه حل مشخصی نداره. در حقیقت، نمی تونیم یک الگوریتم یا قدم های مشخص برای طراحی یک مدار تعریف کنیم. این باعث میشه که طراحی مدار به شکل شهودی انجام بشه که سرعت توسعه کند می کنه.
شرکت IONQ اولین شرکت کوانتوم هستش که در بازار سهام آمریکا (NYSE) به صورت عمومی سهامش عرضه میشه. این یک جهش عظیم برای این صنعت حساب میشه. نکته ی جالب اینه که سیستم های این شرکت چندین سال تا کاربردی شدن (حتی تولید انبوه پردازنده های غیرکاربردی) فاصله داره و در نتیجه تا خرید و فروش سهام این شرکت میتونه به معنی انتظار خیلی خیلی زیاد سرمایه گذارها از آینده ی کوانتوم کامپیوتینگ باشه.
https://www.nanalyze.com/2021/03/ionq-quantum-computing-stock/
https://www.nanalyze.com/2021/03/ionq-quantum-computing-stock/
Nanalyze
IonQ - A Publicly Traded Quantum Computing Stock - Nanalyze
The first pure-play quantum computing stock happens to be the company with the world's most powerful quantum computer and some very experienced leaders.
کوانتوم کامپیوترها چطور شروع به کار می کنن؟
یک مساله ی جالب در مورد کوانتوم کامپیوترها اینه که وقتی سیستم شروع به کار می کنه، قبل از این که بتونیم از سیستم استفاده کنیم باید چند روز صبر کنیم!
کوانتوم کامپیوترهای امروزی استاندارد نیستند. یعنی هر شرکت یک سری استانداردها و تکنیک های مهندسی مخصوص خودش رو داره. درست مثل کامپیوتر های کلاسیک در دهه هفتاد. اما به طور کلی، یک سری عملیات مشخص باید انجام بشن:
۱. کوانتوم کامپیوترهای برمبنای گیت عموما در شرایط خیلی خاص می تونن کار کنند. این شرایط شامل دما، شدت میدان مغناطیسی، و ارتعاش محیط میشه. قبل از هر چیز مطمئن میشیم که شرایط محیطی برای کار سیستم آماده است. ارتعاش و میدان مغناطیسی با دستگاه هایی که در خود ساختمان تعبیه میشه کنترل میشن. مثلا در مورد ارتعاش، کل اتاق روی یک سطح محرک قرار داره تا ارتعاش محیط به کامپیوتر منتقل نشه. سرد کردن هم عموما چندین روز طول می کشه. دمای سیستم برای یک مدت مشخص باید در نزدیکی صفر مطلق بمونه.
۲. در مرحله ی بعد، بخش کنترل کننده ی پردازنده (که حالا یخ زده!) تست میشه. این بخش محاسبات خاصی انجام نمیده. فقط بقیه ی مدارها رو چک می کنه تا مطمئن بشه که کار می کنن این مرحله در کسری از ثانیه انجام میشه.
۳. هر گیت در حقیقت انتقال یک نیرو به کیوبیته برای این که (تعریف نادقیق) ضرائب صفر و یک کیوبیت رو عوض کنه. اما این نیرو باید چقدر باشه؟ هر دفعه که سیستم روشن میشه، مقدار این نیروهای برای گیت های مختلف محاسبه میشن. این محاسبات بیشتر در سمت کامپیوتر کلاسیک انجام میشه و از کوانتوم کامپیوتر فقط برای تست مقادیر استفاده میکنن.
۴. در نهایت چیپ تست میشه. برای تست یک سری مساله (غیرکاربردی با جواب مشخص) به سمت کوانتوم کامپیوتر فرستاده میشه و جواب سیستم با جواب مورد انتظار تست میشه. این مرحله معمولا چند دقیقه طول می کشه.
۵. در نهایت، کوانتوم کامپیوتر به سیستم محاسبات ابری وصل میشه و کاربرها می تونن مسائل رو برای سیستم بفرستن.
یک مساله ی جالب در مورد کوانتوم کامپیوترها اینه که وقتی سیستم شروع به کار می کنه، قبل از این که بتونیم از سیستم استفاده کنیم باید چند روز صبر کنیم!
کوانتوم کامپیوترهای امروزی استاندارد نیستند. یعنی هر شرکت یک سری استانداردها و تکنیک های مهندسی مخصوص خودش رو داره. درست مثل کامپیوتر های کلاسیک در دهه هفتاد. اما به طور کلی، یک سری عملیات مشخص باید انجام بشن:
۱. کوانتوم کامپیوترهای برمبنای گیت عموما در شرایط خیلی خاص می تونن کار کنند. این شرایط شامل دما، شدت میدان مغناطیسی، و ارتعاش محیط میشه. قبل از هر چیز مطمئن میشیم که شرایط محیطی برای کار سیستم آماده است. ارتعاش و میدان مغناطیسی با دستگاه هایی که در خود ساختمان تعبیه میشه کنترل میشن. مثلا در مورد ارتعاش، کل اتاق روی یک سطح محرک قرار داره تا ارتعاش محیط به کامپیوتر منتقل نشه. سرد کردن هم عموما چندین روز طول می کشه. دمای سیستم برای یک مدت مشخص باید در نزدیکی صفر مطلق بمونه.
۲. در مرحله ی بعد، بخش کنترل کننده ی پردازنده (که حالا یخ زده!) تست میشه. این بخش محاسبات خاصی انجام نمیده. فقط بقیه ی مدارها رو چک می کنه تا مطمئن بشه که کار می کنن این مرحله در کسری از ثانیه انجام میشه.
۳. هر گیت در حقیقت انتقال یک نیرو به کیوبیته برای این که (تعریف نادقیق) ضرائب صفر و یک کیوبیت رو عوض کنه. اما این نیرو باید چقدر باشه؟ هر دفعه که سیستم روشن میشه، مقدار این نیروهای برای گیت های مختلف محاسبه میشن. این محاسبات بیشتر در سمت کامپیوتر کلاسیک انجام میشه و از کوانتوم کامپیوتر فقط برای تست مقادیر استفاده میکنن.
۴. در نهایت چیپ تست میشه. برای تست یک سری مساله (غیرکاربردی با جواب مشخص) به سمت کوانتوم کامپیوتر فرستاده میشه و جواب سیستم با جواب مورد انتظار تست میشه. این مرحله معمولا چند دقیقه طول می کشه.
۵. در نهایت، کوانتوم کامپیوتر به سیستم محاسبات ابری وصل میشه و کاربرها می تونن مسائل رو برای سیستم بفرستن.
این ویدئو یک کوانتوم کامپیوتر رو نشون میده. بخش های طلایی رنگ، طلا و مس هستن.
https://youtu.be/utfOzRfqles
https://youtu.be/utfOzRfqles
YouTube
IBM's quantum system explained - All Hands on Tech
IBM Q System One is “The world’s first fully integrated universal computing system,” according to Big Blue. Its purpose is to get quantum computing out of the research lab and into a commercial environment. At CES 2019, ITWC Editorial Director Brian Jackson…
برای کار با کوانتوم کامپیوتر های شرکت های مختلف می تونید از این لینک ها استفاده کنید:
شرکت IBM: (سیستم واقعی و شبیه سازی)
https://quantum-computing.ibm.com/
شرکت گوگل: (فقط شبیه سازی)
https://quantumai.google/cirq
شرکت D-Wave: (سیستم واقعی و شبیه سازی)
https://cloud.dwavesys.com/
شرکت آمازون که در حقیقت از سیستم های D-Wave و IONQ استفاده می کنه:
https://aws.amazon.com/braket/
شرکت IBM: (سیستم واقعی و شبیه سازی)
https://quantum-computing.ibm.com/
شرکت گوگل: (فقط شبیه سازی)
https://quantumai.google/cirq
شرکت D-Wave: (سیستم واقعی و شبیه سازی)
https://cloud.dwavesys.com/
شرکت آمازون که در حقیقت از سیستم های D-Wave و IONQ استفاده می کنه:
https://aws.amazon.com/braket/
Ibm
IBM Quantum Platform
Program real quantum systems with the leading quantum cloud application.
آیا می تونیم یک سیستم کوانتومی رو اندازه گیری "نکنیم"؟
نکنه ی جالب در مورد یک سیستم کوانتومی اینه که حتی تعداد خیلی کم از کیوبیت ها می تونن حجم بالایی از اطلاعات رو نگه دارن، اما ما نمی تونیم همه ی ابن اطلاعات رو بخونیم. بلکه وقتی که اطلاعات رو می خونیم (اندازه گیری می کنیم) تمام اطلاعات یک کیوبیت به صفر و یا یک منطقی خلاصه میشه و بقیه ی اون اطلاعات از بین میره. اما آیا ما می تونیم یک کیوبیت رو نخونیم و همین طوری اطلاعاتش رو نگه داریم؟
اول باید توجه کنیم که اساسا این کار نمی تونه فایده داشته باشه چون در نهایت ما باید کیوبیت رو بخونیم (اندازه گیری کنیم) تا از خروجی اش استفاده کنیم. پس نگه داشتم اون وضعیت کوانتومی فایده ای نداره.
اما به شکل عملی یک وضعیت کوانتومی رو فقط میشه در کسری از ثانیه نگه داشت. چون به دلیل نویز محیطی خیلی زود وضعیت کوانتومی طی فرایند decoherence از بین میره.
پس ما اول یک وضعیت کوانتوپی پایه (همه ی کیوبیت ها صفر) می سازیم. بعد محاسبات رو انجام میدیم به شکلی که وضعیت کیوبیت ها طوری تغییر کنه که بعد از اندازه گیری احتمال رسیدن به جواب دلخواه زیاد باشه. در نهایت هم کیوبیت ها رو می خونیم. همه ی این ها در کسری از ثانیه باید اتفاق بیفته.
نکنه ی جالب در مورد یک سیستم کوانتومی اینه که حتی تعداد خیلی کم از کیوبیت ها می تونن حجم بالایی از اطلاعات رو نگه دارن، اما ما نمی تونیم همه ی ابن اطلاعات رو بخونیم. بلکه وقتی که اطلاعات رو می خونیم (اندازه گیری می کنیم) تمام اطلاعات یک کیوبیت به صفر و یا یک منطقی خلاصه میشه و بقیه ی اون اطلاعات از بین میره. اما آیا ما می تونیم یک کیوبیت رو نخونیم و همین طوری اطلاعاتش رو نگه داریم؟
اول باید توجه کنیم که اساسا این کار نمی تونه فایده داشته باشه چون در نهایت ما باید کیوبیت رو بخونیم (اندازه گیری کنیم) تا از خروجی اش استفاده کنیم. پس نگه داشتم اون وضعیت کوانتومی فایده ای نداره.
اما به شکل عملی یک وضعیت کوانتومی رو فقط میشه در کسری از ثانیه نگه داشت. چون به دلیل نویز محیطی خیلی زود وضعیت کوانتومی طی فرایند decoherence از بین میره.
پس ما اول یک وضعیت کوانتوپی پایه (همه ی کیوبیت ها صفر) می سازیم. بعد محاسبات رو انجام میدیم به شکلی که وضعیت کیوبیت ها طوری تغییر کنه که بعد از اندازه گیری احتمال رسیدن به جواب دلخواه زیاد باشه. در نهایت هم کیوبیت ها رو می خونیم. همه ی این ها در کسری از ثانیه باید اتفاق بیفته.
بحث دنیاهای موازی بحث جالبیه که معمولا شبه علم باهاش ترکیب میشه و شبیه داستان های افسانه ای نقل میشه. اما آیا واقعا ممکنه دنیاهای موازی داشته باشن؟ هم بله و هم نه. این ویدئو رو ببینید:
https://youtu.be/kTXTPe3wahc
https://youtu.be/kTXTPe3wahc
YouTube
Parallel Worlds Probably Exist. Here’s Why
The most elegant interpretation of quantum mechanics is the universe is constantly splitting
A portion of this video was sponsored by Norton. Get up to 60% off the first year (annually billed) here: https://bit.ly/32SM0yd or use promo code VERITASIUM
Special…
A portion of this video was sponsored by Norton. Get up to 60% off the first year (annually billed) here: https://bit.ly/32SM0yd or use promo code VERITASIUM
Special…
کوانتوم و سهام ها
استفاده از کوانتوم کامپیوتینگ برای بهینه سازی سود و ریسک بسته های سهام می تونه خیلی مفید باشه چون میشه این مساله ی بهینه سازی رو با قیدهای مختلف در کسری از ثانیه حل کرد. در نتیجه میشه به تغییرات بازار خیلی سریع واکنش نشون داد. این خلاصه رو خیلی دوست داشتم در این زمینه:
http://quantumwa.org/investment-optimization-with-quantum-computers/
بزرگترین ETF ها (در آمریکا) حدودا ۱۵ هزار asset دارن و بهینه سازی یک پورتفولیو با این تعداد سهام یا وجود قید های زیاد برای بهینه سازی چند دقیقه با یک کامپیوتر کلاسیک طول میکشه. اما یک سیستم کوانتومی احتمالا زیر پنج ثانیه یک جواب قابل قبول تولید میکنه.
این رویکرد الان کاملا در فاز تحقیقاته، بس نمیشه فعلا باهاش سرمایه گذاری کرد!
استفاده از کوانتوم کامپیوتینگ برای بهینه سازی سود و ریسک بسته های سهام می تونه خیلی مفید باشه چون میشه این مساله ی بهینه سازی رو با قیدهای مختلف در کسری از ثانیه حل کرد. در نتیجه میشه به تغییرات بازار خیلی سریع واکنش نشون داد. این خلاصه رو خیلی دوست داشتم در این زمینه:
http://quantumwa.org/investment-optimization-with-quantum-computers/
بزرگترین ETF ها (در آمریکا) حدودا ۱۵ هزار asset دارن و بهینه سازی یک پورتفولیو با این تعداد سهام یا وجود قید های زیاد برای بهینه سازی چند دقیقه با یک کامپیوتر کلاسیک طول میکشه. اما یک سیستم کوانتومی احتمالا زیر پنج ثانیه یک جواب قابل قبول تولید میکنه.
این رویکرد الان کاملا در فاز تحقیقاته، بس نمیشه فعلا باهاش سرمایه گذاری کرد!
#مسیر_مطالعه
چند فصل از مستندات IBM به نظرم جالب تر از بقیه اومدن که این جا می نویسم. این فصل ها هم ریاضی رو توضیح میدن و هم کد پایتون رو نوشتن. برای اجرای کدها لازم نیست برنامه ی خاصی رو سیستم نصب کنید. فقط کافیه دکمه ی Try که پایین هر بخش کد هست رو بزنید تا کد توی مرورگرتون اجرا بشه.
نمایش یک حالت کوانتومی: وقتی راجع به یک عدد صحبت می کنیم می تونیم اون رو با یک نقطه روی محور x نشونش بدیم. یا مثلا یک ساعت رو میشه با دو عقربه نشون داد. این فصل توضیح میده که چطور میشه یک حالت کوانتومی (یک کیوبیت) رو نشون داد. مشابه اش در کامپیوتر های کلاسیک میشه یک بیت که میشه با یک لامپ خاموش یا روشن نشونش داد!
https://qiskit.org/textbook/ch-states/representing-qubit-states.html
گیت ها روی یک کیوبیت: بعد از این که فهمیدیم یک کیوبیت دقیقا چیه و چطور نمایشش میدیم، حالا وقتشه که یاد بگیریم چه عملیاتی رو میشه باهاش انجام داد. این عملیات خیلی پایه ای هستن و مستقیما مساله ای رو حل نمی کنن. به طور مشابه در کامپیوتر های کلاسیک گیت ها AND و OR و NOT هستن، اما این گیت ها هم مستقیما مساله ای رو حل نمی کنن و ما با ترکیب اون ها مثلا می تونیم یک جمع کننده ی اعداد بسازیم.
https://qiskit.org/textbook/ch-states/single-qubit-gates.html
چند کیوبیت: این فصل در حقیقت محتوای فصل قبله اما برای چند کیوبیت. در ضمن توضیح میده که ترکیب کیوبیت ها چه قدرت زیادی رو به ما میده.
https://qiskit.org/textbook/ch-gates/multiple-qubits-entangled-states.html
یک الگوریتم ساده: این فصل ساده ترین الگوریتم کاربری که یک مساله رو با کوانتوم کامپیوتر حل کرد توضیح میده.
https://qiskit.org/textbook/ch-algorithms/deutsch-jozsa.html
چند فصل از مستندات IBM به نظرم جالب تر از بقیه اومدن که این جا می نویسم. این فصل ها هم ریاضی رو توضیح میدن و هم کد پایتون رو نوشتن. برای اجرای کدها لازم نیست برنامه ی خاصی رو سیستم نصب کنید. فقط کافیه دکمه ی Try که پایین هر بخش کد هست رو بزنید تا کد توی مرورگرتون اجرا بشه.
نمایش یک حالت کوانتومی: وقتی راجع به یک عدد صحبت می کنیم می تونیم اون رو با یک نقطه روی محور x نشونش بدیم. یا مثلا یک ساعت رو میشه با دو عقربه نشون داد. این فصل توضیح میده که چطور میشه یک حالت کوانتومی (یک کیوبیت) رو نشون داد. مشابه اش در کامپیوتر های کلاسیک میشه یک بیت که میشه با یک لامپ خاموش یا روشن نشونش داد!
https://qiskit.org/textbook/ch-states/representing-qubit-states.html
گیت ها روی یک کیوبیت: بعد از این که فهمیدیم یک کیوبیت دقیقا چیه و چطور نمایشش میدیم، حالا وقتشه که یاد بگیریم چه عملیاتی رو میشه باهاش انجام داد. این عملیات خیلی پایه ای هستن و مستقیما مساله ای رو حل نمی کنن. به طور مشابه در کامپیوتر های کلاسیک گیت ها AND و OR و NOT هستن، اما این گیت ها هم مستقیما مساله ای رو حل نمی کنن و ما با ترکیب اون ها مثلا می تونیم یک جمع کننده ی اعداد بسازیم.
https://qiskit.org/textbook/ch-states/single-qubit-gates.html
چند کیوبیت: این فصل در حقیقت محتوای فصل قبله اما برای چند کیوبیت. در ضمن توضیح میده که ترکیب کیوبیت ها چه قدرت زیادی رو به ما میده.
https://qiskit.org/textbook/ch-gates/multiple-qubits-entangled-states.html
یک الگوریتم ساده: این فصل ساده ترین الگوریتم کاربری که یک مساله رو با کوانتوم کامپیوتر حل کرد توضیح میده.
https://qiskit.org/textbook/ch-algorithms/deutsch-jozsa.html