Квантовый «Привет, Мир!»

Что такое вычислительный цикл на квантовом компьютере? 1. Подготовили кубиты в необходимом количестве и нужном нам начальном состоянии.

2. Собрал кубиты в квантовый регистр.

3. Мы применили последовательность операций к квантовому регистру.

4. Мы измерили кубиты, составляющие квантовый регистр.

В результате мы получили двоичное число, размерность которого совпадает с размерностью квантового регистра.

5. Размышляем о полученном результате.

6. Повторил цикл вычислений (пункты 1-5), возможно много раз.

7. Размышляем о результате.

За каждым из пунктов стоят тома нерушимой теории.

Но мы программисты.

Многие ли из нас прекрасно знают, что там и как крутится и крутится в классических процессорах? Да практически никто.

Да вроде бы и не особо нужно.

Возможно и здесь что-то подобное.

Нам бы хотелось окружение (какая-то IDE или что там?), пару тезисов.

что-то строчим, нажимаем кнопку "запустить", квантовый компилятор (или что там у них есть) выдаст нам синтаксис , мы исправим.

Смотри, понемногу пойдет и пойдет! Почему бы не попробовать? Кто нас остановит в конце концов? Google в наших руках.

Давайте осмотримся! Во-первых, как насчет ассортимента квантовых компьютеров на рынке? Так.

Ясно.

Глухой! Совсем скоро у вас появится возможность работать с работающим оборудованием.

Люди даже выражают сомнения, произойдет ли это когда-нибудь.

Ну я имею в виду такую нормальную железку, с несколькими сотнями кубитов, размером с ноутбук, и ее можно недорого купить в любом ближайшем строительном магазине.

Да.

Не скоро.

Ну ладно.

Но у меня руки чешутся! А интуиция и образование подсказывают, что все эти квантовые вычисления должны поддаваться (с некоторыми ограничениями) моделированию на классических компьютерах.

Давайте посмотрим в этом направлении.

Здесь ситуация уже лучше.

Но тем не менее, живых/активных проектов на удивление мало.

Очень молодой район! Но есть что-то.

Будем особо долго копаться, и не будем привередничать, возьмем первый, более-менее понятный и более-менее работающий.

И желательно попроще.

Например, QCad Ну вот! Окружение есть, кнопки есть.

Пока ничего не ясно, разберемся по ходу дела.

Мы быстро взглянули на руководство и пошли в бой! Так это значит: слева в главном окне есть кубиты.



Квантовый «Привет, мир!»

Есть панель инструментов с иконками элементарных преобразований (ворот), которые мы нанизим на горизонтальные линии с рисками.



Квантовый «Привет, мир!»

Нажав кнопку «запустить», эти наши кубиты как бы побегут слева направо и будут последовательно пробегать гейты (т.е.

претерпевать соответствующие преобразования) и в конце концов прибегут к правому краю окно, полностью трансформированное в соответствии с нашей «программой» (последовательностью ворот).

А на правом конце линеек (всех или не всех, как мы пожелаем) мы повесим значки, символизирующие процесс измерения, которым завершается каждый цикл вычислений на квантовом компьютере.

Сам результат измерения мы можем просмотреть в разных видах в отдельном окне.



Квантовый «Привет, мир!»



Записка хозяйке №1

Результатом измерения квантового регистра является одно двоичное число.

А процесс измерения — вероятностный процесс.

Те.

В результате мы получаем одно из возможных (вероятных) значений результата расчета.

И нам почти всегда необходимо оценить распределение вероятностей.

Чтобы оценить это желаемое распределение, процесс расчета придется повторить много раз.

В окне результатов измерения (на вкладке «Измерено») разработчик QCAD выдает нам результат сразу в виде искомого распределения вероятностей для каждого из возможных состояний регистра.

Это значительно упрощает моделирование для разработчика, а пользователю — анализ результата.



Записка хозяйке №2

Может быть не сразу очевидно, что кубит № 1 является младшим кубитом регистра и в окне результатов в состоянии регистра он находится в позиции младшего бита, т. е.

крайнего справа.



Квантовый «Привет, мир!»

Конечно, очень интересно, как это реализовано (или, точнее, может быть реализовано потенциально) аппаратно, но первые же несколько робких и безуспешных попыток пройти сквозь зубодробительную теорию основательно охлаждают этот интерес.

Ну ладно.



Недоразумение №1

Кубит — это квантовомеханическая система.

Кубит называется так (ку — БИТ), потому что для нас, программистов, кажется, что он имеет только два основных состояния.

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

базовые состояния.

А в симуляторе мы видим слева (на входе) кубиты в состояниях |0> и |1> .

Как же так? Давайте зайдем в Google и осмотримся.

Да, в самом деле.

Инженеры по квантовому оборудованию уже научились «подготавливать» кубиты в «чистых» базовых состояниях.

Что ж, это приятно.

Что такого особенного в базовом состоянии (|0> или |1> )? Он примечателен тем, что сколько бы раз мы ни применяли процедуру измерения к кубиту в одном из этих состояний, мы всегда получим определенный результат (0 или 1).

Измерение в квантовой механике, как известно, процесс вероятностный, но здесь мы будем иметь определенный результат, т. е.

вероятность будет равна 1. Итак, приступим к экспериментам с нашим симулятором! С чего начать? Ну, все говорят: «Квантовые вычисления.

, квантовые вычисления.

»! Хотелось бы понять, что это за квантовые вычисления? Естественно, заходишь в Google, набираешь «квантовые вычисления» и много чего всплывает, но среди всего всплывающего находишь либо какие-то общие слова, либо убойную математику, либо убойную физику.

И хотелось бы спросить: а где сами расчеты?! Но спросить особо не у кого.

Что ж, начнем с этого, попробуем смоделировать наиболее распространенные арифметические операции с двоичными числами на нашей модели квантового компьютера.



Ээксперимент №1

Реализуем операцию сложения двух двузначных чисел.

Мы используем три кубита для хранения результата (Q1, Q2, Q3), два кубита для первого термина (Q4, Q5), два кубита для второго термина (Q6, Q7), а также нам понадобится определенное количество вспомогательных кубитов.

(например, для хранения бита переноса и т. д.).



Квантовый «Привет, мир!»

Первое, что мы делаем, это создаем шаблон модели: Файл -> новый -> … В появившемся диалоге

Квантовый «Привет, мир!»

выберите необходимое количество строк (т.е.

кубитов) и столбцов (циклов расчета) и нажмите ОК.

В открывшемся справа пустом окне повесьте значки измерений в нужных положениях,

Квантовый «Привет, мир!»

и получите готовый шаблон заявления.

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

Для этого я использовал ворота «контролируется не» и «контролируется не контролируется».

Любой желающий может увидеть, что они собой представляют и как они работают, в «Карманном руководстве для квантового программиста».

На картинке ниже показана моя реализация решения проблемы:

Квантовый «Привет, мир!»

Очень возможно, что кому-то это решение покажется чудовищным, но, несомненно, это решение! Как я могу это проверить?

Записка хозяйке №3

Если дважды щелкнуть по квадрату с символом состояния кубита.



Квантовый «Привет, мир!»

Откроется диалог:

Квантовый «Привет, мир!»

с помощью которого можно выбрать начальное состояние каждого конкретного кубита.

Таким образом, назначая кубитам операндов разные начальные состояния, мы получим разные значения результата после нажатия кнопки «RUN».

Какой здесь будет результат и как его посмотреть? В окне статуса Кубитов перейдите на вкладку Измеренные и найдите там состояние регистра, напротив которого стоит число (по сути вероятность) 1,0.

Квантовый «Привет, мир!»

Это и будет результат наших расчетов! Что ж, пожалуй, этого достаточно для самого первого знакомства с темой.

Поэтому позвольте мне уйти.

Искренне Ваш! Теги: #Популярная наука #квантовые вычисления

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.