Програмування квантових комп'ютерів для нефізичних спеціальностей


43

Я походжу з нефізичного походження, і мені дуже цікаво займатися квантовими обчисленнями - особливо, як їх програмувати. Будь-які вказівки щодо початку роботи будуть дуже корисними.


Класичному програмісту не потрібно розуміти роботу електрона. Це стосується і QED.
tgm1024

До речі, механізм форматування тут здається жахливо порушеним порівняно з іншими сайтами stackexchange. Я спробував створити справжню відповідь і повинен був відмовитися, вдавшись до дуже простого коментаря. Списки тут не поводяться в межах цитат. Я думав, що всі сайти stackexchange мають однаковий код інтерфейсу.
tgm1024

@ tgm1024 на що ти саме йдеш? Яке форматування тут не працює, але працює на інших сайтах? Списки котирувань для мене працюють чудово
glS

Відповіді:


22

Ви можете почати з ознайомлення з квантовими комп'ютерами, такими як цей з Voxxed Days Vienna 2018 - він призначений для людей з програмуванням, але попередніх знань з квантової механіки мало. Після цього ви можете ознайомитися з посібниками з IBM Quantum Experience або інструкціями для Microsoft Quantum Development Kit .

На додаток до цього, на YouTube є ще багато відео, які можуть допомогти вам глибше зрозуміти тему.


17

Я думаю, що квантовим програмістам не обов’язково потрібно знати про квантову фізику та лінійну алгебру. Це, безумовно, речі, які допоможуть розширити знання квантових програмістів, але вони не повинні розглядатися як передумови.

Незважаючи на це, більшість ресурсів, щоб допомогти квантовому програмісту, що починає, починати з припущення про лінійну алгебру. Ті, які в основному не фокусуються на QISKit, SDK для квантового пристрою IBM (а деякі з них були написані мною).

Найпростіша програма, яку ви можете придумати, - це "Hello World". Як це зробити для квантових комп'ютерів? Моя пропозиція - це суперпозиція смайликів .

Після того, як ви вийшли за рамки «Hello World» у квантовому програмуванні, ви захочете зробити щось складніше. Часто люди роблять прості ігри. Тож давайте зробимо це з квантовим комп'ютером. Я зробив броненосці .

Ці та багато інших прикладів квантового програмування ви знайдете в навчальному посібнику QISKit . Я думаю, що це, мабуть, найкраще місце для нових квантових програмістів, щоб побачити, що можна зробити, і як це зробити.


5

pyQuil - бібліотека квантового програмування з відкритим кодом у Python. Документація включає в себе ознайомлення з квантовими обчисленнями, де ви навчаєтесь програмуванню. Він не передбачає ніякого фізичного походження.

Ось декілька посилань на основні теми:


5

Не потрібно повністю розуміти квантову механіку, щоб зрозуміти теорію QC. Я математичний бакалавр / програміст, і я читав про цю тему, а також робив старий курс edX QC (на жаль, він недоступний, але є й інші). Я думаю, що можу сказати, що я розумію суть QC, але майже нічого не знаю про квантову механіку.

Ключова частина полягає в тому, що квантове обчислення використовує здебільшого лінійну алгебру, яка ґрунтується на математиці, яка зазвичай викладається на бакалавратській техніці / інформатиці. Порівняйте це з реальною квантовою механікою, яка використовує нескінченномірні простори (або функціональний аналіз, якщо хочете).

Якщо ви відчуваєте себе комфортно з цих тем з математики, ви можете ознайомитись з квантовою механікою Susskind : теоретичний мінімум - це насправді не «справжня» квантова механіка, це здебільшого корисні речі для QC. До речі, вся серія теоретичних мінімумів спрямована на людей, які знають певну математику (як, наприклад, комп'ютерні або технічні спеціалісти), і хотіли б більше знати про фізику. В Інтернеті також є багато курсів, наприклад, є нові курси на edX, але я не робив жодного з них, тому не можу рекомендувати його.


4

Якщо ви хочете вийти за рамки вивчення того, як писати квантові схеми в різних рамках квантового програмування, таких як Q # , pyQuil та QISKit , я настійно рекомендую цей останній документ з назвою Квантовий алгоритм реалізації для початківців з Національної лабораторії Лос-Аламоса. Це чудовий ресурс для розуміння того, як компілювати та реалізовувати різні квантові алгоритми, а також їх оракули та конкретні підпрограми як квантові схеми з досвідом IBM Q. Я рекомендую вам реалізувати їх у будь-якій з вищезгаданих рамок програмування та вивчити деталі, що містять круту глибину.


4

Квантові комп'ютери програмуються (розвиваються мови програмування, що представляють) так званими квантовими схемами. Це послідовність квантових воріт плюс інформація, на яку квантові біти (кубіти) вони діють.

Єдине, що вам дійсно потрібно знати про квантові ворота - це те, що вони представляють обертання (у просторі більш високого розміру, так званому просторі Гільберта). Отже, вони оборотні: квантові комп'ютери запрограмовані з оборотною логікою.

|00|01|10|11для 2-кубітної системи у звичайній нотації Дірака) отримує складне число як коефіцієнт або як так звана амплітуда ймовірності. Основні вектори є ортогональними і охоплюють простір Гільберта держави, амплітуди ймовірності можна розглядати як координати в ньому. Це картина, на якій квантові ворота здійснюють обертання. Ви побачите, що фізики часто використовують іншу картину, сферу Блоха, для однокубітних систем, в яких квантові ворота також викликають обертання (але іноді на більший кут або на ту, яка взагалі опущена на цій картині).

Вся звичайна логіка може бути реалізована квантовим комп'ютером, спочатку висловивши її в оборотному логіці (що може зажадати бітів асіллі). Класичний ворота NOT відповідає квантовому воріт X, але на відміну від класичного випадку, коли єдиними 1-бітовими оборотними воротами є тотожність і ворота NOT, квантовий комп'ютер має чотири відповідні ворота (X, Y, Z відповідно до обертання на Сфера блоха плюс ідентичність). Крім того, ви можете мати обертання, які обертаються лише на частку, наскільки ці ворота обертаються; декілька особливо цікавих мають спеціальні назви та абревіатури, такі як ворота Адамара або ворота Н, що створює рівний суперпозиції всіх станів.

На жаль, інженерам раннього квантового програмного забезпечення, ймовірно, доведеться трохи знати про квантове комп'ютерне обладнання, яке вони використовуватимуть: Завдяки довільному та безперервно вибору кута ефективного обертання квантових воріт, існує кшталт аналогового елемента квантовим комп'ютерам, які обов'язково створює помилки (а фізичні квантові комп'ютери мають навіть більше джерел помилок, ніж просто це). Існує спосіб впоратися з цим, квантовим виправленням помилок, який дискретизує помилки та виправляє найбільш ймовірні розсуди з них для досягнення (в ідеалі) довільно складних обчислень із пов'язаними помилками. Але оптимізація, ймовірно, означатиме, що один квантовий комп'ютер з одним вибором квантової корекції помилок буде більш сприйнятливим у певних квантових воротах або навіть алгоритмах, ніж інші,


Хтось ще цікавиться, чи єдиними, хто зрозуміє, як легко написати квантові алгоритми, будуть самостійно розвинені квантові ШІ?
tgm1024
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.