Quantum Programming
1.58K subscribers
357 photos
36 videos
47 files
514 links
هدف از ایجاد این کانال معرفی و آموزش محاسبات کوانتومی و برنامه‌نویسی کوانتومی هست.

Group:@quantumprogramming_chat
Instagram: http://instagram.com/Quantum.Programming
Download Telegram
در بخش قبلی اشاره شد که الگوریتم شور از معروفترین و کارآمدترین الگوریتم‌های کوانتومی هست در این بخش به توضیح آن می‌پردازیم

مسئله فاکتورگیری،عبارت از یافتن عامل های صحیح اول مثبت مرکب وفرد N است. تاکنون هیچ الگوریتم کلاسیکی یافت نشده است که بتواند این کار را درزمان چندجمله‌ای انجام دهد به همین جهت از این مسئله برای ساختن الگوریتم‌های رمزنگاری کلاسیکی همچون RSA استفاده می‌شود.

الگوریتم شور با بکارگیری ویژگی‌های کوانتومی همچون درهم‌تنیدگی و برهم‌نهی و استفاده از تبدیل فوریه کوانتومی و تخمین فاز کوانتومی در زمان چندجمله‌ای عمل فاکتورگیری را انجام می‌دهد. این الگوریتم کاربردهای زیادی در حوزه‌ی رمز نگاری دارد و از این رو بسیار مورد توجه است.

اکنون به توضیح الگوریتم ‌می‌پردازیم: هر عدد صحیح مثبت را می‌توان بصورت یکتابه حاصلضرب عوامل اول تجزیه کرد، همچنین تشخیص اول یا مرکب بودن اعداد نیز در زمان چندجمله‌ای قابل انجام است. منظور از زمان چندجمله‌ای مدت زمان حل یک مسئله توسط کامپیوتر است که این زمان بصورت تابع چندجمله‌ای از اندازه ورودی است. حال اگر یک عدد مرکب فرد باشد، یافتن عوامل اول آن برای یک کامپیوتر کلاسیک در زمان چندجمله‌ای قابل انجام نیست. الگوریتم شور بر روی کامپیوتر کوانتومی قابل اجرا است و عوامل صحیح را در زمان چند جمله‌ای بیابد. در این الگوریتم از الگوریتم‌های کلاسیک کسرهای متوالی و اقلیدسی و الگوریتم‌های تبدیل فوریه کوانتومی و تخمین فاز استفاده می‌شود. در تصویر زیر مراحل این الگوریتم بیان شده است.
#الگوریتم_شور
#الگوریتم_کوانتومی
#برنامه_‌نویسی_کوانتومی
#بخش9
🆔 @QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
با عرض سلام و احترام خدمت اعضای محترم کانال

جهت ارتباط بیشتر عزیزان باهم و به اشتراک گذاری ایده‌ها و سوالات در حوزه محاسبات کوانتومی و برنامه‌نویسی کوانتومی گروهی تشکیل شده است. اعضای محترم ‌می توانند با عضویت در گروه به طرح سوالات خود درباره مطالب کانال بپردازند.

لینک گروه: https://t.me/quantumprogramming_chat
لینک کانال: https://t.me/QuantumProgramming

با تجدید احترام
Quantum Programming pinned «با عرض سلام و احترام خدمت اعضای محترم کانال جهت ارتباط بیشتر عزیزان باهم و به اشتراک گذاری ایده‌ها و سوالات در حوزه محاسبات کوانتومی و برنامه‌نویسی کوانتومی گروهی تشکیل شده است. اعضای محترم ‌می توانند با عضویت در گروه به طرح سوالات خود درباره مطالب کانال…»
الگوریتم بعدی که معرفی خواهیم کرد الگوریتم دویچ است. هدف این الگوریتم جواب دادن به این پرسش است که یک تابع ثابت است یا متوازن. بدین منظور لازم است نحوه محاسبه تابع در محاسبات کوانتومی بیان شود. برای این کار از عملگریکانی استفاده می شود و همچنین لازم است تاثیر گیت هادامارد بر روی حالت‌های چندکیوبیتی در نظر گرفته شود. در تصویر نحوه محاسبه تابع بیان شده است.
#محاسبه_تابع
#الگوریتم_دویچ
#الگوریتم_کوانتومی
#برنامه_‌نویسی_کوانتومی
#بخش10

🆔 @QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
در #بخش10 اشاره شد که الگوریتم دویچ برای تعیین نوع تابع بکار گرفته می‌شود. فرض کنیم تابع F با دامنه و برد {0،1} در اختیار باشد. ما علاقه‌مند هستیم تا بین مقادیر تابع رابطه‌ای پیدا کنیم یعنی (0)F با (1)F برابر هست یا نه؟ از دیدگاه محاسبات کلاسیکی تنها راه حل مسئله محاسبه برای هر دو مقدار صفر و یک و مقایسه آنها باهم است. اما الگوریتم کوانتومی دویچ تنها با یک بار محاسبه تابع پاسخ مسئله را می‌دهد. مراحل این الگوریتم در تصویر بیان شده است.
#الگوریتم_دویچ
#الگوریتم_کوانتومی
#برنامه_‌نویسی_کوانتومی
#بخش11

🆔 @QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
در دهه گذشته سخت افزارهای کوانتومی در عملکرد بهینه کیوبیت ها، مدت زمان همدوسی و تعداد کیوبیت های بکار گرفته شده، پیشرفت های زیادی داشته اند. مدارهای کوانتومی با استفاده از کیوبیت های ابررسانا و یون های به دام افتاده ساخته شده اند. اگرچه محدودیت های بنیادی مهندسی اجازه بکارگیری زمان همدوسی دلخواه و یا تعداد کیوبیت دلخواه را نداده است اما در حال حاضر این مسائل هم از موضوعات روز در فناوری های کوانتومی هستند.
الگوریتم های کوانتومی با سرعت بسیار زیاد و زمان کم قادر به حل مسائلی هستند که الگوریتم های کلاسیکی از حل آنها عاجزند اما باید توجه داشت برای بکارگیری الگوریتم کوانتومی به صدها یا شاید هزارها کیوبیت احتیاج است. علاوه بر این، باید خطا هایی که در حین انجام الگوریتم به وقوع می پیوندد را نیز تصحیح کرد. به عنوان مثال، در بکارگیری الگوریتم شور برای حل یک مسئله که روی کامپیوتر کلاسیکی به سختی قابل حل است به شش میلیون کیوبیت احتیاج است در حالی که در حال حاضر فقط 50 کیوبیت در اختیار است.

برای رفع چنین مشکلاتی، در سال 2016 الگوریتم های ترکیبی کوانتومی- کلاسیکی (Hybrid Quantum Classical Algorithm) مطرح شد. در این الگوریتم ها، آماده سازی حالت اولیه سیستم کوانتومی و اندازه گیری های کوانتومی روی یک کامپیوتر کوانتومی انجام شده و قسمت بهینه سازی و به روز رسانی پارامترهای حالت کوانتومی در کامپیوتر کلاسیکی انجام می شود.

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

#الگوریتم_ترکیبی_کوانتومی_کلاسیکی
#برنامه_‌نویسی_کوانتومی
#بخش12

🆔@QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
برای به کارگیری الگوریتم های ترکیبی کوانتومی- کلاسیکی از کامپیوتر کوانتومی مقیاس-متوسط نوفه ای ((Noisy Intermediate Scale Quantum (NISQ) استفاده می شود که در چند سال آینده بصورت عمده در دسترس خواهد بود که در ادامه به توضیح آن می پردازیم.

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

در اغلب محاسبات کوانتومی عبارت "near-term" بجای NISQ به کار برده می شود زیرا این وسایل در چند سال آینده در دسترس خواهند بود و همچنین به تصحیح خطا نیازی نخواهند داشت. بکارگیری کامپیوتر کوانتومی NISQ در تمامی بسترهای فیزیکی که برای ساخت یک کامپیوتر مطرح است از قبیل کیوبیت های ابررسانا و یا در کامپیوترهای کوانتومی فوتونیکی فراهم است. باید توجه داشت که کوچک بودن کامپیوتر کوانتومی به اندازه فیزیکی آن مربوط نیست بلکه به تعداد کیوبیت های آن اطلاق می شود.


در کامپیوتر کوانتومی NISQ باید نوفه را حذف کرده و آن را به عنوان یک عامل با اثر محدود چه برای وسایل کلاسیکی و چه برای وسایل کوانتومی درنظر گرفت. به زبان ساده می توان گفت وقتی تعداد هر بیت زیاد باشد احتمال وقوع خطا در آن بیت کم است، از این روش می توان در تصحیح خطای کوانتومی نیز استفاده کرد.

الگوریتم های ترکیبی کوانتومی- کلاسیکی، بطور روز افزون در حال توسعه هستند و از این الگوریتم ها برای یافتن ویژه مقادیر و ویژه بردارهای سیستم های مولکولی(الگوریتم VQE)، شبیه سازی دینامیک سیستم های باز و بسته کوانتومی، یافتن حالت های برانگیخته سیستم های کوانتومی و همچنین مسائل بهینه سازی(الگوریتمQAOA) استفاده می شود. (بخش دوم الگوریتم ترکیبی کوانتومی کلاسیکی)


#الگوریتم_ترکیبی_کوانتومی_کلاسیکی
#برنامه_‌نویسی_کوانتومی
#بخش13

🆔 @QuantumProgramming
🆔http://instagram.com/Quantum.Programming
شبیه سازي کوانتومی یک راهکار بهینه براي به دست آوردن رفتار فیزیکی سیستم هاي بزرگ و بس ذره اي است. در شبیه سازي کوانتومی با استفاده از یک سیستم کوانتومی شناخته شده و کنترل پذیر (شبیه ساز کوانتومی)به مطالعه سیستم هاي که کنترل آنها مشکل است پرداخته می شود.

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

به بیان ساده‌تر در شبیه سازی کوانتومی هدف یافتن حالت سیستم کوانتومی بعد از گذشت زمان t است. این حالت با استفاده از شبیه ساز کوانتومی قابل محاسبه است(تصویر پایین را ببینید)

در حالت کلی شبیه سازهاي کوانتومی به دو دسته عمده دیجیتال و آنالوگ دسته می شوند. در شبیه سازهاي دیجیتال با استفاده از گیت هاي کوانتومی کار شبیه سازي انجام می شود اما در شبیه سازهاي آنالوگ با تغییر روي خود شبیه ساز سیستم مورد نظر شبیه سازي می شود به عبارت دیگر دینامیک سیستم را کپی می کند.



#شبیه_سازی_کوانتومی
#برنامه_‌نویسی_کوانتومی
#بخش14

🆔 @QuantumProgramming
🆔http://instagram.com/Quantum.Programming
نمای شماتیکی از شبیه سازی کوانتومی
🆔@QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
اکنون که مفاهیم اولیه محاسبات و اطلاعات کوانتومی بیان شده است، زمان آن رسیده است تا به برنامه نویسی کوانتومی بپردازیم. براي دسترسی به کامپیوتر کوانتومی به نرم‌افزارهاي کوانتومی احتیاج است. برنامه نویسی کوانتومی در دو دهه اخیر بصورت نظري بدون وجود سخت افزار کوانتومی در حال توسعه بوده است.

اکنون کامپیوتر کوانتومی در واقعیت در دسترس است و هر شخصی می تواند با آن کار کند. اخیرا نرم افزارهاي کوانتومی توسعه پیدا کرده اند که تعداد آنها حدود پنجاه است و همچنین شبیه ساز هاي کوانتومی زیادي هم معرفی شده است. از کاربردی ترین و معروفتروین نرم‌افزارهای کوانتومی که برای انجام محاسبات کوانتومی استفاده می شود می‌توان به موارد زیر اشاره کرد

1-PyQuil
2-QISKit
3-ProjectQ
4-Quantum Development Kit
5-QuTip

این نرم‌افزارهای کوانتومی در بستر پایتون و C++ در دسترس هستند. البته بیشتر برنامه‌نویسی کوانتومی در بستر پایتون انجام می شود و ما نیز از پایتون برای معرفی برنامه‌نویسی کوانتومی استفاده خواهیم کرد. در تصویر نمای کلی از نرم‌افزارهای کوانتومی نشان داده شده است.

#نرم_افزار_کوانتومی
#پایتون
#برنامه_‌نویسی_کوانتومی
#بخش15

🆔@QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
نمای نرم‌افزارهای کوانتومی که برای محاسبات کوانتومی به کار گرفته می‌شوند
#نرم_افزار_کوانتومی
#پایتون
#برنامه_‌نویسی_کوانتومی


🆔@QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
⁉️تعدادی از عزیزان پیگیر هستند که آیا دوره برنامه نویسی کوانتومی در تابستان برگزار می‌شود؟

⚜️⚜️جهت اطلاع عزیزان
دوره تابستان با معرفی Qutip برگزار خواهد شد.
متعاقبا زمان و نحوه ثبت‌نام از طریق این کانال اعلام خواهد شد.


بااحترام


یگانه


🆔 @QuantumProgramming
🆔 http://instagram.com/Quantum.Programming
Quantum Programming pinned «⁉️تعدادی از عزیزان پیگیر هستند که آیا دوره برنامه نویسی کوانتومی در تابستان برگزار می‌شود؟ ⚜️⚜️جهت اطلاع عزیزان دوره تابستان با معرفی Qutip برگزار خواهد شد. متعاقبا زمان و نحوه ثبت‌نام از طریق این کانال اعلام خواهد شد. بااحترام یگانه 🆔 @QuantumProgramming…»
معرفی Pyquil

این نرم‌افزار توسط شرکت Rigetti طراحی شده است و برای برنامه‎‌نویسی کوانتومی مورد استفاده قرار می‌گیرد. این بستر بروی Rigetti Forest قرار دارد که شامل Quantum instruction language می‌باشد که به اختصار Quil نامیده می‌شود که یک کتابخانه منبع باز روی پایتون است از این رو با نام Pyquil معرفی می‌گردد. Pyquil یک محیط شبیه ساز دارد که با نام Quantum Virtual Machin (QVM) است که برای برنامه های کوانتومی مورد استفاده قرار می‌گیرد. همچنین پردازنده کوانتومی که Pyquil از آن استفاده می کند، از جنس کیوبیت‌های ابررسانا هست که تعداد آنها در حال حاضر 16تاست. ماقصد داریم قسمت های مختلف این بستر قوی را در بخش های بعدی معرفی کنیم.



#نرم_افزار_کوانتومی
#Pyquil
#برنامه_‌نویسی_کوانتومی
#بخش16

🆔 @QuantumProgramming
🆔 http://instagram.com/Quantum.Programming