Comments 40
любое преобразование можно реализовать… можно имитировать любое физическое явление...Напоминает рисование совы из кругов.
Начнём с простого как представить целое число. Как поделить одно число на другое с помощью имеющегося набора универсальных вентилей?
quantumexperience.ng.bluemix.net/qx/editor
2. Это цикл статей, а не одна статья, которая должна дать ответ на все вопросы.
3. Но если это именно вопрос, то вот в этой статье можно найти частичный ответ arxiv.org/abs/1609.01241 и здесь arxiv.org/pdf/1609.01241.pdf
Начнем с основ — с обозначений некоторых распространенных...
Похоже рано я обрадовался, что появилась статья, которая позволит мне быстро разобраться в квантовых вычислениях))
Можно посмотреть видео
www.microsoft.com/en-us/research/video/quantum-future-computation
www.youtube.com/watch?v=5p2_moQZJWo&index=3&list=PLXtHYVsvn_b9LhFSXcMbgUK6YFWnI0P4H
Вот, например, пишут, что |0> это вектор [1,0] а |1> это вектор [0,1]. Отсюда казалось бы логичным, чтобы точки |0> и |1> находились на перпендикулярных осях с координатами [ x0=1, y0=0 ] и [ x1=0, y1=1 ] но нет, все рисуют сферу Блоха и точки |0> и |1> рисуют на одной оси. Но почему?
Понятно, что при суперпозиции двух этих состояний с комплексными коэффициентами итоговое состояние наверное может быть в любой точке сферы, но вот почему рисуют сферу Блоха именно так с точками |0> и |1> на одной оси — не понятно.
https://ru.wikipedia.org/wiki/Сфера_Блоха — просмотрите вывод до представления вектора состояния через полярные углы. А потом попробуйте подставить в качестве углов 0, пи, 2пи...
Вопрос — эти кубиты ведь нельзя реализовать обычной микроэлектроникой когда в микросхеме есть 2 ячейки связанные так что если одна 1 а другая 0, это было слишком легко, в чём тогда разница????
Моделирование состояния N кубит на обычном компьютере требует 2^N обычных бит. Плюс требуется моделирование вентилей.
Реальный прорыв теоретически должен наступить при доступности квантовых компьютеорв с 100+ вычислительных кубит. Притом, что на текущий моент для реализации 1 вычислительного кубита требуется 5-10 физических кубит, так как необходима коррекция ошибок.
Моделирование состояния N кубит на обычном компьютере требует 2^N обычных бит. Плюс требуется моделирование вентилей.
откуда там 2^n битов когда все эти вентили ~ n?
Почему это не эквивалентно обычным ячейкам на микросхеме соединённым всеми этими вентилями?
И если там всё вероятностно, как снимается выход квантовой системы для получении точного результата, и не получается ли что результат вероятностный, то есть не факторизация числа а «вероятность» что числа так факторизированы?
Кубит ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%B1%D0%B8%D1%82
1 кубит описываются состоянием -> a|0> + b|1>, где a и b — комплексные числа и |a|^2+|b|^2=1, 2 числа
И да, результат измерения состояния кубита — вероятностный. |a|^2 — вероятность |0>, |b|^2 — вероятность |1>.
2 кубита описываются состоянием -> a|00> + b|01> + c|10> + d|11> — 4 числа
3 кубита -> a|000> + b|100>… + x|111> — 8 чисел
Прочитайте начало серии habrahabr.ru/company/microsoft/blog/351622, возможно, появится понимание
И требуются специальный алгоритмы для получения пользы от квантового компьютера, см. например, алгоритм Шора ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A8%D0%BE%D1%80%D0%B0
Вот под этим текстом: «Ниже работа этих преобразований проиллюстрирована с помощью сферы Блоха (ось вращения в каждом случае выделена красным; на картинку можно нажать, чтобы увеличить ее)»
Факторизации чисел на обычном компьютере и квантовой алгоритм Шора.
Факторизации для достаточно больших чисел на обычных компьютерах является вычислительно сложной задачей. На этом основаны некоторое криптоалгоритмы.
При достаточном количестве вычислительных кубиков, используя алгоритм Шора, факторизации выполняется за конечное время.
Чтобы разложить число М на простые множители, используя количество кубиков О(log M), необходимо время О(log^3 M)
В целом, практическим ответом на ваш вопрос занимается сейчас огромное количество исследователей по всему миру. На эту тему регулярно выходят научные статьи.
Для того чтобы составить матрицу любого управляющего вентиля, нужно дописать единичную матрицу в левом верхнем углу матрицы нужного вентиля, а все остальные ячейки заполнить нулями.
Это называется тензорного домножить слева на I^n
Вот пример такого универсального набора: вентиль Адамара, вентиль фазового сдвига, вентиль CNOT и вентиль π⁄8.
Поправьте плз, вроде достаточно генераторов SU(2) и любого запутывающего преобразования
Первое что смущает это оператор CNOT(q0,q1)
|q0.a| | 1 0 0 0 | | q0.a |
|q0.b| = | 0 1 0 0 | * | q0.b |
|q1.a| | 0 0 0 1 | | q1.a |
|q1.b| | 0 0 1 0 | | q1.b |
Как получается (Controlled X)([control], (target)) в матрице этого нет.
получается q0=q0; q1=X(q1)
откуда controlled X
Вобщем смотрю hello world на 3 кубита https://www.youtube.com/watch?v=v7b4J2INq9c&t=88 и что-то не сростается. Чую подвох, но пока не могу сказать где.
CNOT|00> = |00>
CNOT|01> = |01>
CNOT|10> = |11>
CNOT|11> = |10>
Теперь посмотрите на матрицу оператора, можно заметить что для состояния где контрольный кубит в 0, оператор действует как единичный.
Таким образом у оператора с контролем n кубитов идет блок I^n а в нижней клетке матрицы — собственно сам действующий оператор
Берём 3 кубита 8 состояний s0..s7 на базисе из 6 векторов.
s0 = |000> = {1,0,1,0,1,0}
s1 = |001> = {1,0,1,0,0,1}
s2 = |010> = {1,0,0,1,1,0}
s3 = |011> = {1,0,0,1,0,1}
s4 = |100> = {0,1,1,0,1,0}
s5 = |101> = {0,1,1,0,0,1}
s6 = |110> = {0,1,0,1,1,0}
s7 = |111> = {0,1,0,1,0,1}
Получается что половина состояний зависимые т.е.
s5= -s2+s3+s4
s7=-s0 +s3+s4
s6=-s0+s2 +s4
s1= s0-s2+s3
Как мы применяем матрицу CСNOT к зависимым состояниям s?
Поскольку я «не волшебник, а только учусь», я могу в чём-то здорово наврать, в каковом случае нижайше прошу более подкованных товарищей растолковать, что и как.
Дело в том, что запись |000> — это не «состыковка» трёх «нулевых» векторов, а тензорное произведение, сокращённая запись для |0>⊗|0>⊗|0>. Тензорное произведение двух векторов (для трёх аналогично) переводит нас в пространство высшей размерности, в котором задаётся совершенно новый базис, построенный на основе всевозможных попарных комбинаций базисов исходных пространств. То есть из двух векторов размерности 2 мы получаем вектор размерности 4, следующего вида: (a, b) ⊗ (c, d) = (ac, ad, bc, bd). И прежние единичные векторы (1, 0) и (0, 1) из первого пространства плюс такая же пара из второго пространства будут задавать нам базис нашего нового пространства по следующим правилам (возможны перестановки, но суть не меняется):
(1,0)1 ⊗ (1,0)2 = (1,0,0,0)
(1,0)1 ⊗ (0,1)2 = (0,1,0,0)
(0,1)1 ⊗ (1,0)2 = (0,0,1,0)
(0,1)1 ⊗ (0,1)2 = (0,0,0,1)
Мы обозначаем эти четыре единичных вектора нового пространства как |00>, |01>, |10>, |11> исключительно для удобства и наглядности, чтобы было видно, какой вектор как был получен. Но это лишь один из вариантов обозначения, никто не мешает назвать их, скажем, |0>, |1>, |2>, |3>. Или |ψ1>, |ψ2>, |ψ3>, |ψ4>.
Так что никаких зависимостей нет, все эти 8 векторов — это самый что ни на есть полноценный ортонормированный базис трёхкубитного пространства состояний.
а надо было брать Ψ=(a0*φ0+b0*ψ0) * (a1*φ1+b1*ψ1) * (a2*φ2+b2*ψ2).
Но тогда возникает другой вопрос: Если эти состояния сидят в некоторых потенциальных ямах то эти частицы должны находиться рядом (в некоторой окрестности, в ядре например) иначе тензорное произведение будет экспоненциально стремиться к 0.
Как бы это могло выглядеть? В такой сети не будет «вычислений»? Т.е достаточно произвести измерение, и это будет результатом работы нейронки в этот момент?
github.com/krishnakumarsekar/awesome-quantum-machine-learning
Поэтому свойство универсальности позволяет использовать квантовые компьютеры для моделирования молекул, сверхпроводников и любых странных и прекрасных квантовых систем. Эта особенность квантовых компьютеров позволяет имитировать физические явления
Если под реальным физическом явлении понимается макроявление, например обтекание крыла самолета. Один кубит представляет собой одну частицу (на самом деле одну характеристику частицы) или атом (если его характеристика определяется только одним свободным электроном, например как в атоме серебра). То выходит сколько же надо кубитов, чтобы описать такую систему с крылом самолета?
И самое интересное: квантовая механика и механика макромира (например ОТО) пока что не имеют связи. Причина тому гравитация + скорости близкие к скоростям света. Поэтому даже если бы у нас была возможность описать задачу макромира до уровня атомов средствами квантовой механики, то мы бы не получили адекватные результаты поведения макромира.
Механика макромира является частным случаем КМ, это раз, и для макроявлений использовать КМ бесмысленно в силу затрат не стоящих избыточной точности (хотя могут потребоваться поправки из квантов, а то и основательный учет в некоторых критических явлениях)
А во вторых для обтекания крыла самолета может потребоваться фиттинг свободных параметров в вашей ГД модели. Тут вполне может быть оправданно использование квантового отжига (D-WAVE в помощь), но это опять-таки навороченная адиабатическая машина.
Это если вы предъявляете претензии к КМ. Ну а если это была нападка только на универсальные квантовые компьютеры, тогда да, согласен, хоть алгоритмы там и круты, но не факт, что в железе это преимущество будет проявляться, кроме как за счет того, что это аналоговый вычислитель
Квантовые цепи и вентили — вводный курс