Чи є емулятори для квантових комп'ютерів?


64

Чи є якийсь спосіб емуляції квантового комп'ютера в моєму звичайному комп’ютері, щоб я міг тестувати та спробувати квантові мови програмування (наприклад, Q # )? Я маю на увазі те, що я можу реально перевірити свою гіпотезу і отримати найбільш точні результати.

Оновлення: Я не дуже шукаю моделювання квантового комп'ютера, але я не впевнений, чи можливо його ефективно емулювати на звичайному неквантовому ПК.


Відповіді:


39

Так, це можливо (але повільно). Є пара існуючих (це лише частковий список) емуляторів:

  • QDD: Квантова бібліотека комп’ютерної емуляції

    QDD - це бібліотека C ++, яка забезпечує відносно інтуїтивний набір квантових обчислювальних конструкцій у контексті середовища програмування C ++. QDD унікальний тим, що його емуляція квантових обчислень базується на поданні діаграми бінарних рішень (BDD) представлення квантового стану.

  • jQuantum

    jQuantum - програма, яка імітує квантовий комп'ютер. Ви можете створити з ним квантові схеми і дозволити їм працювати. Проілюстровано поточний стан квантового регістра.

  • QCE

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

(Крім того, Q # працює лише з QDK MS , спасибі @Pavel)

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

Я процитую доповідь на цю тему ( J. Allcock, 2010 ):

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

p 89, розділ 5.1

Оскільки наші реалізації стають більш точними, вони також стають повільнішими.

TL; DR: можливо, і деякі емулятори існують, але жоден не дуже ефективний для великої кількості кубітів.


Зауважте, що жоден із цих емуляторів не може (наразі) використовувати Q #, який працює лише з QDK Microsoft.
Павло

3
На додаток до сказаного: Існують програмні способи запуску коду на IBM Quantum Experience, який надає справжні квантові комп'ютери - не Q # код, а QASM. QISKit - це шлях до цього. github.com/QISKit
blalasaadri

Те, що ви сказали, має сенс, оскільки моделювання виконується на одному комп’ютері. Але чи можна досягти тієї ж швидкості, якщо було використано кілька комп’ютерів?
Календар iOS patchthecode.com

26

Так, можна моделювати квантовий комп'ютер на звичайному - Але, швидше за все, вам доведеться пожертвувати ефективністю.

Вимірювання простору стану зростає експоненціально з кількістю кубітів ( , де - кількість кубітів), тому лінійна алгебра, з якою ви будете мати справу, не буде занадто легкою - ви зустрінете дуже великі матриці і алгоритм, який ви використовуєте (незалежно від того, наскільки він ефективний), швидше за все, стане масштабним в експоненціальному масштабі . Однак, емуляція QC на звичайній машині, безумовно, можлива. Н2nn


Ресурси

Можливо, вас зацікавить Q #, як відзначали інші відповіді. Ще кілька емуляторів:

  • Ігровий майданчик для квантових обчислень

    Квантова обчислювальна площадка - це веб-експеримент із веб-переглядачами Chrome. Він має квантовий комп'ютер, прискорений графічним процесором, з простим інтерфейсом IDE та власною мовою сценаріїв з налагодженням та функціями візуалізації квантового стану 3D. Ігровий майданчик для квантових обчислень дозволяє ефективно моделювати квантові регістри до 22 кубітів, запускати алгоритми Гровера та Шор, а також різноманітні квантові ворота, вбудовані в саму мову сценаріїв.

  • QX Simulator

    QX Simulator - це універсальний квантовий комп'ютерний симулятор, розроблений у QuTech Надером Хаммассі. QX дозволяє конструкторам квантових алгоритмів моделювати виконання їхніх квантових схем на квантовому комп'ютері. Симулятор визначає низькорівневу мову квантової збірки, а саме Квантовий код, який дозволяє користувачам описувати свої схеми у простому текстовому файлі вихідного коду. Файл вихідного коду потім використовується як вхід симулятора, який виконує його вміст.

  • Квантовий ++

    Quantum ++ - це сучасна бібліотека квантових обчислень загального призначення C ++ 11, що складається виключно з файлів заголовків шаблонів. Quantum ++ написаний у стандарті C ++ 11 і має дуже низькі зовнішні залежності, використовуючи лише бібліотеку шаблонів лише лінійної алгебри Eigen 3 та, якщо є, бібліотеку багатообробних процесів OpenMP.

  • Квантова комп'ютерна мова

    Незважаючи на безліч поширених понять з класичною інформатикою, квантові обчислення все ще широко розглядаються як спеціальна дисципліна в широкому полі теоретичної фізики. [...] QCL (Quantum Computation Language) намагається заповнити цю прогалину: QCL - це високий рівень, незалежна від архітектури мова програмування для квантових комп'ютерів, із синтаксисом, похідним від класичних процедурних мов, таких як C або Pascal. Це дозволяє повністю реалізувати та моделювати квантові алгоритми (включаючи класичні компоненти) в одному послідовному формалізмі.

  • Більш відповідні емулятори можна знайти на Quantiki


21

Так, на класичному комп’ютері можна моделювати квантові обчислення. Але вартість моделювання зростає в експоненціальному вимірі з кубітним числом та / або глибиною ланцюга та / або певним числом операцій.

Для швидкої спроби ідей мій тренажер Quirk чудово підходить. Це симулятор квантової мікросхеми з відкритим кодом, який працює у вашому веб-браузері. Ви можете отримати доступ до живої версії за адресою algassert.com/quirk .

Ось скріншот прикладу Quirk схеми Grover, який оснащений дисплеями проміжного стану для відстеження стану прихованого стану, що стає більш імовірним:

Скріншот вигадки


16

Якщо ви спеціально дивитесь на Q #, то це дуже просто у використанні з емулятором - насправді не можна мати Q #, але не мати емулятора, вони поєднуються разом.

Для початку спочатку потрібно завантажити .NET Core з веб-сайту Microsoft .

Коли ви завантажуєте Microsoft Quantum Development Kit через dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"веб-сайт або веб-сайт Microsoft, він завантажує разом мову і власний емулятор Microsoft разом.

Створення нового проекту Q # ( dotnet new console -lang Q#) автоматично налаштовує його на використання емулятора, тому коли ви набираєте якийсь Q # та запускаєте проект, він "просто працює".


3

Так. Якщо ви будуєте його самостійно, знайдіть сторонній комп'ютер з тими самими характеристиками, що і у серії BullSequana M9600, або придумайте 100 000 євро + та придбайте систему у Atos.

Зауважте схожість між BullSequana M9600 серії та Atos QLM . Atis QLM проти M9600

Те саме поле (і, можливо, внутрішні компоненти) з різним програмним забезпеченням (але ви хотіли використовувати своє власне, Q #). Атос стверджує: "Найефективніший квантовий симулятор у світі". Я не впевнений у цьому, але характеристики для 30-ти кубітної версії доступні, лише два процесори Intel та 1 ТБ пам'яті.

Брошура Atos QLM .PDF .

Чи є якийсь спосіб емуляції квантового комп'ютера в моєму звичайному комп’ютері, щоб я міг тестувати та спробувати квантові мови програмування (наприклад, Q #)?

Якщо ви використовуєте лише 256 ГБ пам’яті та 1-24 ТБ Swap Drive, це буде повільно, але воно буде працювати.

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

Цитата з брошури:

"Квантова навчальна машина Atos обчислює точне виконання квантової програми з двозначною точністю. Вона імітує закони фізики , які лежать в основі квантових обчислень. Це дуже відрізняється від існуючих квантових процесорів, які страждають від кванту. шум, квантова декогерентність та упередження у виробництві, а також вузькі місця у виробництві. Моделювання на квантовій навчальній машині Atos дає змогу розробникам зосередитись на своїх програмах та алгоритмах, не чекаючи, коли будуть доступні квантові машини ".

Вони вимагають високої точності, оскільки це тренажер, він не схильний до шуму - і він не буде настільки швидким або дорогим. Теоретично ви можете додати трохи пам'яті, накопичувачів та програмного забезпечення на свій комп'ютер ...


3

Я думаю, що приємний «огляд» теми можна знайти за адресою: Квантікі

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

Хаскелл

qchas (qchas: Бібліотека для реалізації квантових алгоритмів) - бібліотека, корисна для реалізації квантових алгоритмів. Він містить визначення квантових воріт, кубітів.

Пітон

qubiter : Проект Qubiter має на меті забезпечити врешті-решт повний набір інструментів, написаних переважно на Python, для проектування та моделювання квантових схем на класичних комп’ютерах.

Javascript

jsqis : jsqis, по своїй суті, є квантовим комп'ютерним симулятором, написаним на Javascript. Це дозволяє ініціалізувати квантові регістри та їх маніпулювання за допомогою квантових воріт.

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