Добро пожаловать в ад захватывающий мир квантовых вычислений! Если вы хотите обогатить свой ум новыми знаниями и научиться доводить оппонентов до коллапса - прошу под кат. 

Дисклеймер

Этот цикл статей рассчитан на тех, кому просто интересны современные технологии и наука. Вероятно, многие формулировки будут неточными. Я часто контактирую с одаренными подростками, и, можно сказать, именно их вопросы и сподвигли меня на написание данного цикла.

Раз уж мы заговорили про квантовые вычисления, было бы неплохо вспомнить машины, производящие эти самые вычисления. Как бы это ни было удивительно, они называются квантовыми компьютерами. О них мы сегодня и поговорим.

Биты и кубиты

Все мы привыкли к булевой логике - это база, основа классических вычислений. Булева логика описывает логические операции и выражения, которые могут быть применены к бинарным (двоичным) значениям 0 и 1. Для нас эта логика очень проста для понимания, ведь 0 или 1 можно сопоставить с отсутствием или наличием чего-то. В классических компьютерах отсутствие заряда принимается за 0, а его наличие - за 1. 

Но вот квантовая логика - это уже что-то, что достойно утренних размышлений за чашкой кофе, которые заменят обычные нам размышления о тщетности бытия. Если в классическом компьютере мы оперируем битами, что принимают значения либо 0, либо 1, то в квантовом компьютере мы оперируем кубитами, что могут быть:

  1. В определенном состоянии (либо 0, либо 1, как классический бит, другого не дано)

  2. В состоянии суперпозиции (кубит является и нулем, и единицей одновременно)

Если пункт 1 особо не вызывает вопросов, то пункт 2 уже может заинтересовать. На самом деле, ничего страшного в суперпозиции нет. Наоборот, это очень круто и полезно.

Итак, что же значит “суперпозиция”? Это такое состояние, когда объект не имеет определенного состояния, он находится во всех возможных состояниях одновременно, но с разной вероятностью, которые в сумме дают 1.

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

Итак. Есть такое состояние, когда кубит характеризует собой вероятности стать 1 и 0. Если мы захотим “прочитать” кубит, узнать его состояние, мы разрушим суперпозицию (это явление называется коллапсом или схлопыванием) и получим 1 или 0 с вероятностью, которая определялась параметрами кубита (в следующих статьях мы поговорим об этих параметрах), когда он был в суперпозиции. Мы никогда не сможем предсказать, во что схлопнется кубит - это квантовая случайность. С некоторой вероятностью, но все же абсолютно случайно мы получим определенное значение.

Ниже приведена картинка, которая демонстрирует суперпозицию кубита:

При чтении кубита А находящегося в суперпозиции мы можем получить 0 с вероятностью 0,5 и 1 с такой же вероятностью 0,5.

Окей, суперпозицию мы приняли. Так что же можно называть кубитом?

Кто же такие эти ваши кубиты?

Кубит - квантовый объект, который может находиться в состоянии суперпозиции и запутываться с другими кубитами. К кубитам применяется квантовая логика, классическая им не подходит (все мы со странностями). Запутывание двух и более кубитов - это квантовый эффект, при котором состояния кубитов невозможно описать независимо друг от друга. Т.е если у нас два запутанных кубита, то мы не можем отдельно описать состояние первого. Вместо рассмотрения этих кубитов по отдельности, нам нужно работать с системой, которую они образуют. Это связано с тем, что запутанные кубиты влияют друг на друга, влияют на любом расстоянии, влияют мгновенно (состояние одного кубита зависит от состояния другого). Когда я говорю “мгновенно”, это действительно мгновенно. Быстрее скорости света. Небольшое уточнение: эффект запутывания между кубитами не нарушает ограничение на скорость передачи информации, установленное теорией относительности. Это связано с тем, что запутывание не является передачей информации в традиционном смысле, а скорее представляет собой связь между кубитами, которая не зависит от расстояния между ними. Таким образом, если мы измерим один запутанный кубит, другой кубит сразу же изменит свое состояние.

Система из n запутанных кубитов находится в суперпозиции 2^n битов.

Давайте рассмотрим на примере двух запутанных кубитов.

Имеем два запутанных кубита А и В, каждый из которых находится в такой суперпозиции, что вероятность получить 1 или 0 при чтении любого из них равна 0,5.

Тогда есть 4 возможных двоичных значения, которые мы можем получить после прочтения нашего регистра, и вероятность получить любое из них равна 0,25:

Почему так?

Давайте рассмотрим несколько вариантов:

1) Кубит А схлопнулся в 0:

  • Если кубит B схлопнулся в 0, то получим значение 00

  • Если кубит B схлопнулся в 1, то получим значение 01

2) Кубит А схлопнулся в 1:

  • Если кубит B схлопнулся в 0, то получим значение 10

  • Если кубит B схлопнулся в 1, то получим значение 11

Вероятность получить любое из этих 4 состояний - 0,5*0,5 = 0,25

Копирование

Что еще может кубит? Нууууууу…

Скорее, не может. Кубиты нельзя копировать. Что вообще значит “копировать”?  Приведу пример с классической логикой. Допустим, у нас две лампы, одна из которых горит, а вторая не горит. Мы можем посмотреть на первую лампу, увидеть, что она горит и включить вторую лампу. Мы скопировали бит информации. Почему же с кубитами такой трюк не прокатит? Из-за суперпозиции и ее свойства коллапсировать. Когда мы захотим “посмотреть” на кубит, мы разрушим его суперпозицию, и его былое состояние навсегда исчезнет. Что же получается? Мы можем скопировать бит, поскольку измерение не влияет на его состояние. Но мы не можем скопировать кубит, поскольку измерение влияет на его состояние.

Допустим. Ну, имеем мы кубиты вместо битов, и что это нам дает?

Вот что это нам дает?

Это дает нам возможность решать некоторые задачи быстрее, чем на обычном компьютере. Система из n кубитов, находящихся в суперпозиции, находится сразу во всех 2^n состояниях. Во всех состояниях, но с разными вероятностями. Задача программиста - составить алгоритм, который будет максимизировать вероятность получения нужного результата. А результатом работы программы является схлопывание квантовой системы и получение определенного результата.

Из вышесказанного вытекает интересный факт: квантовый компьютер может выдать абсолютно любой результат, у которого вероятность больше 0. Потому при решении задачи нельзя полагаться на ответ при лишь одном запуске - мало ли, вдруг вероятность 0.000001 сработала и компьютер выдал неверный результат. Нужно проводить множество запусков для получения статистически значимого результата.

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

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

А что с практическим применением?

Почему это нам полезно?

Решение задачи факторизации чисел имеет практическое применение в криптографии, где используются системы шифрования, основанные на трудности факторизации больших чисел. Если квантовый компьютер сможет быстро факторизовывать числа, то это может привести к уязвимости в криптографических системах, которые мы сегодня используем. С другой стороны, квантовые компьютеры могут помочь создавать более надежные криптографические системы. Также квантовые компьютеры могут быть полезны в решении других задач, связанных с оптимизацией, моделированием сложных систем, и т.д.

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

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

В чем же проблема? Во-первых, наши кубиты сильно подвержены внешним факторам, из-за чего вся система очень нестабильна. Во-вторых, на 2023 год IBM запланировали создать систему с 1121 кубитами. Этого количества очень мало, чтобы представлять какую-то угрозу информационной безопасности.

Заключение

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

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

Я надеюсь, моя статья даст базовое понимание о том, с чем едят квантовые компьютеры. В следующей части разберем кубиты с более “научной” точки зрения и затронем квантовую логику. Цель, с которой я работаю над этим циклом - популяризация науки среди молодежи. Буду благодарен за любую критику.

Всем коллапса!

Комментарии (9)


  1. Shkaff
    00.00.0000 00:00
    +7

    Как обычно, порекомендую лучшую статью про квантовые вычисления от Вастрика.

    Итак, что же значит “суперпозиция”? Это такое состояние, когда объект не имеет определенного состояния, он находится во всех возможных состояниях одновременно, но с разной вероятностью, которые в сумме дают 1.

    Ииии, стандартная проблема всех этих статей про квантовые вычисления. Нет, это не так. Объект не находится одновременно во всех состояниях, особенно "с разной вероятностью". Это концептуально неверное представление, которое мешает пониманию того, как работают квантовые вычисления. Суперпозиция - это про вероятности обнаружить систему в некотором состоянии после измерения. До измерения система находится в специальном состоянии, которое называется "суперпозиция". Описывать ее бытовым языком бессмысленно.

    Передам слово Скотту Ааронсону, который сделал

    Классический комикс специально про это


    1. ZeroMatrix Автор
      00.00.0000 00:00
      +1

      Действительно, Вы абсолютно правы. Я пытался изложить просто, но, видимо, несколько переборщил... Спасибо, что поправили.


      1. SkiffCMC
        00.00.0000 00:00
        +1

        Вот думал, не написать ли подобную статью, а ее уже написали, шо ж такое=) но вот именно по суперпозиции - мне кажется, что этой особенности уделяют как-то излишне много внимания. В конце концов, стакан с водой тоже может принимать не только значения 0 или 1(пуст-полон), а любые промежуточные- никто ж из них компьютер сделать не пытается. Решает именно запутанность, а точнее то, что она описывается не декартовым, как в классическом компьютере, а тензорным произведением, то есть сложность системы как раз зависит от числа кубитов не линейно, а экспоненциально (а число ее возможных состояний - как экспонента от экспоненты). И тут как раз кроется потенциальное преимущество для реальных задач- добавим в классическую систему 1 бит, и мы ее количество состояний удвоим; а добавим в квантовую кубит- возведем в квадрат. А это уже звучит потенциально интересно для этих ваших машинных обучений с векторами признаков очень большой длины(которые вотпрямщас по сути есть). Ну и да, вторая практическая сфера- моделировать что-то квантовое типа молекул, обычные компы в это не могут именно из-за той самой экспоненциальной сложности квантовой системы.


    1. wormball
      00.00.0000 00:00
      +1

      О, я даже знаю, кто этот someone. (хотя ничего из остального не знаю)


  1. DirectX
    00.00.0000 00:00

    Пока наиболее понятное объяснение из того, что встречал это: https://www.youtube.com/watch?v=ZBaXPY_0TNI


  1. mentin
    00.00.0000 00:00

    Пример с запутанностью ("два запутанных кубита А и В") в статье по-моему не правильный. Как раз если все вероятности 0.25 то кубиты у вас НЕ запутаны, вероятности такие же как при подкидывании классических монеток. Пример запутанных кубитов это если в результате измерений могут получиться например только 01 или 10, или только 00 или 11.


    1. ZeroMatrix Автор
      00.00.0000 00:00

      Действительно, этот случай можно представить как систему двух независимых кубитов. Я хотел рассмотреть некоторые вентили в следующей статье, а без них, к сожалению, кубиты не запутаешь. Я попытался объяснить суть запутанности - результат измерения одного кубита влияет на состояние другого. Хотя пример, конечно, не очень наглядный.


  1. sentimentaltrooper
    00.00.0000 00:00

    Лучшая аналогия про кубиты которую я встречал для тех кто не может в формализм Дирака и волновые функции:

    Представьте себе подброшенную монетку, у нее два равновероятных состояния: орел (0) и решка (1). Если ее подбросить то пока она вращается в воздухе, то это кубит - суперпозиция 0 и 1. Как только монетка упала на стол - произошло измерение и она стала либо 0 либо 1.

    Лучшая аналогия запутанного состояния для тех кто по-прежнему не может в волновую функцию.

    Представьте что мы положили в две идентичные коробки левую и правую перчатку. Одну коробку вы увезли за океан. Я открыл свою, позвонил вам по классическому каналу и сказал что у меня левая. Вы тут же "узнали" что у вас - правая. Но без классического канала мы бы ничего не "телепортировали".

    Остальное, тезисно.

    с 1995го из военных выбивают денег на взлом RSA через алгоритм Шора потому что на полином (необходимое число кубитов) растет медленнее экспоненты (необходимое число классических битов). На данный момент был вроде бы показан взлом RSA-48 на 10 кубитах, для взлома RSA-128 надо 372 по такой схеме. Но это не точно, потому что когда ты знаешь ответ то можно мухлевать с алгоритмом. Если говорить о квантовом преобразовании Фурье, которое в основе и которое что-то вроде бенчмарка, то каждая новая публикация заявляет что надо еще меньше кубитов. Но они-то заранее знают ответ и так подбирают периодичноть (r) что бы сошлось. Канонический пример деления 15 на 3 и 5 можно сделать на 2х монетках.

    На данный момент у IBM рабочие 50-55 кубитов,5 из них можно потрогать через их Quantum Experience. IBM пошли по пути сверхпроводников (там нелинейный LC контур с нелинейной индуктивностью и соответственно две частоты для I0> и I1>) исторически trapped ion были первыми. Но манипулировать ими сложнее. Кубиты живут не долго, каждый gate вносит ошибки и дефазировку, поэтому количество операций который у вас есть пока все не уйдет в шум - ограничено. Кубиты влияют друг на друга. Поэтому второй столп квантовых вычислений - это алгоритмы исправление ошибок.

    Можно гонять симулятор, я сейчас в нашем центре поднимаю на 32 кубита. Но больше сложно, потому что 2 в степени N+4 битов для описания N кубитов - кремния не напасёшься. Но каждый желающий может поднять у себя где-то 8. Симуляторы опенсорсные.

    Военные уже устали давать денег, поэтому параллельно пытаются приспособить квантовые компьютеры (и annealer который не компьютер потому что он не выполняет операции, там нет gates) под задачи оптимизации (задача коммивояжёра) и поиска (в массиве). Алгоритмов для которых строго показано квантовое преимущество не так много (я сумел вспомнить 3, но кажется забыл один).

    D-wave активно топят за свой annealer и анонсируют то 2000 то 5000 кубитов. Но там идея другая. Для тех кто может в гамильтониан: начинаем в ground state, и адиабатически добавляем связи пока новый гамильтониан не станет описывать нашу систему...и поскольку мы сделали это по адиабате, то это и будет состояние с минимальной энергией а значит решение. Лично у меня есть вопросы к такому методу. Но они утверждают что и VW покраску так оптимизировал и Шанхай такси в аэропорту. Проверить сложно.

    Автор, простите за спойлеры, если что.


  1. slavius
    00.00.0000 00:00

    Про связанность и перчатку - мне больше понравилось описание с носками - пока вы не одели один носок - они оба одновременно и левый и правый. Но как только вы одели носок на правую ногу - второй стал левым:)