Квантовая онлайн-песочница от Google


(возможно вы уже видели эту картинку, хотя странно, что на хабре так мало материалов по квантовой информатике)

Спасибо гениальным инженерам Google, теперь мы все дружно можем превратить наши настольные ПК в квантовые компьютеры. Ну, хорошо, не совсем так: подразумевается лишь моделирование работы квантового компьютера на его младшем собрате путем запуска веб-приложения для Chrome. Quantum Computing Playground позволяет прогонять известные квантовые алгоритмы (такие как алгоритм Гровера, Шора) и писать собственных квантовые программы.

За исключением непосредственного приобретения квантового компьютера — что, несмотря на заявления D-Wave, вряд ли когда-нибудь удастся — решение от Google является наиболее удачным шагом в сторону популяризации квантового зверя. Если хочется лично встать на первую ступеньку вычислений будущего, это тот самый шанс. У вас есть дети? Вы обязаны посадить их в эту песочницу как минимум на шесть часов, чтобы они научились всем тонкостям квантовых вычислений.

Quantum Computing Playground

Площадка является веб-приложением Chrome (Chrome Experiment), использующая WebGL, чтобы имитировать до 22 кубитов на GPU. Присутствует небольшая среда разработки, чтобы писать, компилировать и исполнять код. Также имеются уже готовые примеры алгоритмов (Гровер, Шор), удобный отладчик и инструмент для 3D визуализации квантовых состояний, так что можно своими глазами увидеть, что происходит внутри вашего маленького квантового компьютера. Программы написаны на языке, называемом QScript, который очень похож на любой другой скриптовый язык.

QScript

К сожалению, если у пользователя нет никакого опыта программирования, ему, вероятно, будет довольно трудно в полной мере воспользоваться песочницей — здесь нет туториала, а комментарии в примерах на самом то деле не особо детальные. На странице помощи есть несколько подсказок о внутренней работе симулятора и намеков на то, что же такое QScript, но все равно требуется довольно прочный фундамент в квантовой теории, чтобы все досконально понять.

D-Wave

Любопытно для Google, Площадка применяет модель квантовых гейтов (Quantum Gates), а не адиабатических квантовых вычислений, используемых в D-Wave, в которой Google заказала квантовый компьютер в прошлом году. Споров о D-Wave всегда было предостаточно. Действительно ли их машины выполняют реальные квантовые вычисления, особенно, когда они стоят в 6000 раз дороже классического ПК? Если на Площадке используют обычные квантовые гейты, значит ли это, что Google знает, что D-Wave в действительности не имеет ничего общего с квантовой механикой?

Стоит заметить, что так называемая «модель квантовых гейтов» является обычным аппаратом линейной алгебры, тянущего за собой линейные пространства и линейные операторы (они же «гейты»), так что нет ничего страшного в том, чтобы этот аппарат реализовывать программно.

Дочитав до этого момента, вы ознакомились с полной юмора и красок статьей с extremetech.com.

Итак, QScript и его компилятор / VM. Гугл предоставляет следующие возможности:

— компиляция во внутренний код прямо из браузера
— возможность пошагового выполнения скомпилированных команд
— встроенные процедуры
— локальные переменные (в пределах процедур)
— синтаксис выражений совместим с JavaScript
— доступ к математическим функциям JavaScript
— «for-endfor» цикл, «if-else-endif» конструкции (поразительно)
— полная поддержка отладки со стеком вызовов и отслеживанием переменных

Дабы не загромождать статью, ниже приведены лишь основные квантовые гейты, реализованные в этой песочнице:

  • Оператор Адамара (Hadamart Gate) создает суперпозицию состояний 0 и 1 для данного кубита. По смыслу является обратным к самому себе: применяя его два раза восстанавливает исходное состояние кубита.
  • Сигма X (Sigma X, он же известный Паули X поворот) — квантовый эквивалент битового отрицания. Поскольку кубиты представляют из себя комплексные числа, довольно сложно придумать для них концепцию обычного отрицания. Sigma Y и Sigma Z — тоже «инвертируют» кубиты, но немного альтернативным способом.
  • QFT применяет Квантовое Преобразование Фурье к части квантового регистра. Первый аргумент определяет первый кубит для преобразования, в то время как второй — ширину преобразования (количество кубитов, к которым преобразование будет применяться).
  • CNOT реализует ту же трансформацию, что и Sigma X, но его выполнение обусловлено значением первого аргумента — управляющего кубита. Квантовое отрицание выполняется только для тех состояний, где управляющий кубит имеет значение 1. Состояния, где управляющий кубит имеет значение 0, остаются неизменными.
  • Тоффоли-гейт (Toffoli Gate) работает таким же образом, как и CNOT, принимая управляющие кубиты в качестве двух аргументов и один целевой кубит. Отрицание осуществляется только на тех состояниях, где оба контрольных кубита имеют значение 1.
  • Фазовый поворот (Phase Gate) вращает амплитуду тех состояний (состояние — комплексное число!), где целевой кубит имеет значение 1. Угол поворота задается вторым аргументом.
  • Измерение (Measurement) — не принимает никаких аргументов, а лишь использует генератор случайных чисел (спасибо JavaScript), выбирает состояние из квантового вектора, который представляет собой случайную величину физического измерения квантового регистра. Операция не разрушает квантовый вектор, и поэтому измерения могут выполняться снова и снова без необходимости повторять все предыдущие квантовые вычисления заново.

Концептуально

Вообще говоря, непонятно с какой целью они этим занялись. С одной стороны, среда явно ориентирована на новичков, стремящихся наконец «увидеть» и «потрогать» квантовую механику, с которой они по тем или иным причинам столкнулись. Но тогда возникают вопрос: откуда гигантское нежелание писать мануалы? Непонятно также и то, зачем моделировать алгоритм Шора, не объяснив людям чем отличается от подбрасывания двугранной монетки.

С другой стороны, очевидно, что в такой системе работать довольно неудобно, вряд ли в песочнице кто-то станет реализовывать хоть сколько-нибудь прикладные программы. Есть графический интерфейс, да. Но он заканчивается на банальном отображении точек в пространстве {состояние, время, амплитуда} — не более.
Существует довольно широкий спектр средств, позволяющих симулировать работу квантовомеханической системы, но хотелось бы знать, интересно ли это хабру?
Поделиться публикацией
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 22
    +26
    Хабру интересно!
      +1
      Будем работать.
      +1
      Интересно, а насколько высок порог вхождения в квантовые вычисления? Я, вот, несколько раз пытался понять это дело, но ничего не получилось, хотя с квантовой физикой когда-то знакомился. Не получится ли так, что квантовых программистов будет столько же, сколько сейчас хороших физиков-теоретиков? Хватит ли этого для «народного хозяйства»?
        +3
        Если бы на квантовых физиков был бы спрос, их было бы больше. Рынок — он такой.
          +2
          Не так уж это и сложно. На первом курсе, имея небольшие знания по квантмеху и линалу — я вполне смог понять идею квантовых вычислений. Но для меня это таки было сложно первое время. А когда понял алгоритм Шора, Гровера, etc — я просто был восхищен. Будто увидел новый, ранее неизведанный, мир.
          Но смотря на текущий прогресс по квантовым компьютерам — становится грустно, не скоро это еще будет, да и «квантовых инженеров» как-то нет, в основном этим занимаются теоретики.
            0
            Порог вхождения, определенно, не настолько высок, как вы думаете. Да, вещи довольно нетривиальные, но очень и очень сильно сказывается отсутствие должного количества хорошей литературы и, что самое главное, нормальных примеров, где всё бы было разложено по полочкам.
            0
            >Площадка является веб-приложением Chrome (Chrome Experiment), использующая WebGL, чтобы имитировать до 22 кубитов на GPU.

            Интересно, каким образом WebGL используется для ускорения вычислений?

            — либо там ещё и WebCL
            — либо там для вычислений используется графическая метафора (т.е. рисуем картинку, а затем исходя из того, как картинка выглядит — понимаем каков результат наших вычислений)
            — либо я чего-то не знаю о WebGL

            знающие люди, прокомментируйте, пожалуйста
                +1
                OpenGL умеет обрабатывать графическую информацию с использованием аппаратного ускорения. Если представить информацию общего вида как графическую (например сохранить массивы данных в виде текстуры), то ее так же можно обработать с помощью OpenGL. Используя шейдеры, можно запрограммировать вычисления общего вида.
                +1
                В оригинале еще круче:
                If I had kids, I feel like it would be a disservice if I didn’t make them sit in front of the Playground for at least six hours a day to teach them the intricacies of quantum computing.

                6 часов в день!
                  +1
                  Я думаю что они уже над этим поработали qcraft.org/about/
                  Ребятки запилили «простенький» мод для майнкрафта. И мне кажется что это те же самые ребята что работали над этой песочницей.
                  image
                  +1
                  >> Вообще говоря, непонятно с какой целью они этим занялись.

                  Очень похоже на pet project одного из инженеров google.
                    0
                    Появление квантового компьютера как-нибудь влияет на возможность сверхтьюринговых вычислений(продолжение моего вопроса)?
                      +1
                      Не-а. Кубитная модель эквивалентна тьюринговой по разрешимости, эквивалентность по времени не доказана и не ожидается, но возможна. В соответствии с общепринятой гипотезой, сверхтьюринговые вычисления физически нереализуемы.
                        0
                        А как, кстати, изменяется закон Мура при переходе к квантовым компьютерам?
                          +9
                          Закон Мура — эмпирический закон, который выполняется только полупроводников, и только в короткий период времени развития цивилизации разумных белковых конгломератов на третей от звезды планете в системе желтого карлика среднего размера спиральной галактики. Это не фундаментальный физический принцип, это просто свойство рынка конкретного рынка. Скорее всего, он самоисполняющийся. Так что, никак не изменяется, просто он к квантовым компьютерам неприменим.
                          0
                          А вот интересно, я читал Дэвида Дойча «Структура Вселенной», где он настаивает на эвереттовской многомировой интерпретации квантовой механики — насколько эта гипотеза актуальна на сегодняшний день? Ведь она обещает именно физическую модель сверхтьюринговых вычислений!
                            +1
                            Интерпретации квантовой механики неактуальны, т. к. они либо вообще нефальсифицируемы, либо проверка невозможно в ближайшие лет семьдесят.
                          0
                          Кубитная модель не таит в себе никакой магии, это обыкновенная форма параллелизма, просто такого «природного» параллелизма. valplo, всё очень верно подметил!
                          0
                          > D-Wave, в которой Google заказала квантовый компьютер в прошлом году.

                          В этом году Google нанял команду John Martinis (UC Santa Barbara):
                          googleresearch.blogspot.com/2014/09/ucsb-partners-with-google-on-hardware.html
                          techcrunch.com/2014/09/02/google-partners-with-ucsb-to-build-quantum-processors-for-artificial-intelligence/

                          Эта группа уже успешно изготовила несколько планарных устройств с кубитами (до 5, Xmon, на базе SQUID) и реализовала полный набор гейтов
                          web.physics.ucsb.edu/~martinisgroup/index.shtml

                          www.nature.com/nature/journal/v508/n7497/full/nature13171.html
                          As a further demonstration, we construct a five-qubit Greenberger–Horne–Zeilinger state8, 9 using the complete circuit and full set of gates.

                            +1
                            С другой стороны, очевидно, что в такой системе работать довольно неудобно, вряд ли в песочнице кто-то станет реализовывать хоть сколько-нибудь прикладные программы. Есть графический интерфейс, да. Но он заканчивается на банальном отображении точек в пространстве {состояние, время, амплитуда} — не более.


                            Альтаир 8800 выводил результаты своей работы на приборную панель из индикаторов. И их еще надо было правильно расшифровать. Но гиков это не останавливало.

                            Существует довольно широкий спектр средств, позволяющих симулировать работу квантовомеханической системы, но хотелось бы знать, интересно ли это хабру?


                            Очень интересно. Особенно было бы интересно увидеть на хабре цикл статей, посвященный, квантовым вычислениям «для чайников» :-)
                              +1
                              Спасибо! Над циклом статей уже во всю ведется работа!

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое