Что такое вычислительный цикл на квантовом компьютере? 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.
Это и будет результат наших расчетов!
Что ж, пожалуй, этого достаточно для самого первого знакомства с темой.
Поэтому позвольте мне уйти.
Искренне Ваш! Теги: #Популярная наука #квантовые вычисления
-
Миллион Статей В Русской Википедии!
19 Dec, 24 -
Канбан Команды Pvs-Studio. Часть 2: Youtrack
19 Dec, 24