Изменения

Перейти к: навигация, поиск

Квантовые гейты

9478 байт добавлено, 19:31, 4 сентября 2022
м
rollbackEdits.php mass rollback
Идея квантового компьютера, высказанная Фейнманом (англ. ''Richard Phillips Feynman'') в 1982 году, достаточно проста. Она состоит в построении компьютера на основе квантовых, а не классических элементарных ячеек. Законы квантовой механики, определяющие поведение таких '''квантовых битов ''' (англ. ''quantum bit'') – кубитов, обеспечивают огромные преимущества (скорость и параллелизм вычислений) квантового компьютера по сравнению с классическим компьютером.{{Определение|definition=Любая логическая операция с кубитами называется '''квантовым гейтом''' (англ. ''quantum gate'').}}
Классический компьютер состоит из элементарных ячеек – ==Отличие кубитов от классических битов, двум состояниям которых приписываются значения <tex>1</tex> или <tex>0</tex>. В наборе битов (регистре) записывается и перерабатывается информация в виде двоичных чисел. Один бит имеет два базисных состояния <tex>0</tex> и <tex>1</tex>. Система из <tex>N</tex> битов имеет <tex>2N</tex> базисных состояний. В квантовом компьютере элементарными ячейками для записи информации являются квантовые биты – кубиты. Кубит – это квантовая система, которая, как и бит, имеет два базисных состояния <tex>\mid0\bigr\rangle</tex>и <tex>\mid 1\bigr\rangle</tex>, но в отличие от бита, кубит может находиться в любом суперпозиционном состоянии <tex>\mid q\bigr\rangle=a\mid0\bigr\rangle+b\mid 1\bigr\rangle</tex>. Набор <tex>N</tex> кубитов составляет квантовый регистр.=
Наиболее важным отличием кубитов от классических Классический компьютер состоит из элементарных ячеек – битов является не непрерывная природа суперпозиционных состояний, а возможность квантового перепутывания состояний в системе кубитовдвум состояниям которых приписываются значения <tex>1</tex> или <tex>0</tex>. В квантовой механике размерность пространства состояний системы в целом есть произведение наборе битов (а не суммарегистре) размерностей пространств состояний отдельных подсистемзаписывается и обрабатывается информация в виде двоичных чисел. Система из Один бит имеет два базисных состояния <tex>N0</tex> кубитов имеет и <tex>2^N1</tex>. Перебирая эти базисные состояния, а не можно закодировать двоичное число длиной <tex>2NN</tex> базисных состояний. Например, в системе из трех битов можно записать одну из восьми последовательностей нулей и единиц.
{{ОпределениеСостояния квантовой системы и их преобразования можно описать используя компактные бра/кет обозначения. Бра и кет (англ. ''bracket'' — скобка)— обозначения, введенные Дираком на заре зарождения квантовой механики как удобное средство манипулирования векторами. Кет-векторами <tex>\mid x\bigr\rangle</tex> обозначают вектор-столбцы и обычно используют для описания квантовых состояний. В середине скобки, по Дираку, должен помещаться индекс состояния, т.е. величина или набор величин, которые определяют состояние системы. Бра-вектор <tex>\left\langle y\right|</tex> обозначает вектор-строку.
В квантовом компьютере кубит – это квантовая система, которая, как и бит, имеет два базисных состояния <tex>\mid0\bigr\rangle</tex> и <tex>\mid 1\bigr\rangle</tex>, но в отличие от бита, кубит может находиться в любом суперпозиционном состоянии <tex>\mid q\bigr\rangle=a\mid0\bigr\rangle+b\mid 1\bigr\rangle</tex>, где <tex>a, b</tex> – комплексные числа, <tex>{\left|definitiona\right|^2}+ {\left|b\right|^2}=Любая логическая операция 1</tex>. Таким образом, квантовый бит может принимать бесконечно много значений, но как результат измерения мы получим либо состояние <tex>\mid0\bigr\rangle</tex> с кубитами называется ''квантовым гейтом''вероятностью <tex>{\left|a\right|^2} </tex>, либо состояние <tex>\mid 1\bigr\rangle</tex> свероятностью <tex>{\left|b\right|^2} </tex>.
Наиболее важным отличием кубитов от классических битов является не непрерывная природа суперпозиционных состояний, а возможность квантового перепутывания состояний в системе кубитов. В квантовой механике размерность пространства состояний системы в целом есть произведение размерностей пространств состояний отдельных подсистем. Система из <tex>N</tex> кубитов имеет <tex>2^N</tex> базисных состояний. Произвольное состояние <tex>N</tex> кубитов <tex>a_1\mid0\bigr\rangle+b_1\mid 1\bigr\rangle)(a_2\mid0\bigr\rangle+b_2\mid 1\bigr\rangle)...(a_n\mid0\bigr\rangle+b_n\mid 1\bigr\rangle)</tex> содержит все возможные бинарные строки (комбинации из нулей и единиц) длиной <tex>N</tex>. В приведенном выше примере для <tex>N=3</tex> все <tex>8</tex> двоичных чисел могут быть закодированы в трех кубитах '''одновременно'''. Это становится возможным за счет квантовомеханического перепутывания. Нелокальные корреляции в системе кубитов и обеспечивают экспоненциально большое вычислительное пространство и параллелизм квантовых вычислений.
}}По числу задействованных кубитов гейты делятся на одно- и многокубитные. Набор <tex>N</tex> кубитов составляет квантовый регистр. Гейт переводит одно состояние регистра в другое. Действие гейта на регистр можно записать так: <tex>G\mid R\bigr\rangle = \mid R^\prime\bigr\rangle</tex>.
По числу задействованных кубитов гейты делятся на одно- и многокубитные. Гейт переводит одно состояние регистра в другое. Действие гейта на регистр можно записать так: <tex>G\mid R\bigr\rangle=\mid R^\prime\bigr\rangle</tex>. Гейты – линейные операции: <tex>G(\mid p\bigr\rangle+\mid g\bigr\rangle)=G\mid p\bigr\rangle+G\mid g\bigr\rangle</tex>.
== Демонстрация действия гейта на кубит ==
Для демонстрации действия гейта на кубиты используют матричную запись гейта или таблицу истинности.
Матрица гейта действует умножается на столбец весовых коэффициентов регистра и получается новый столбец, соответствующий новому состоянию регистра. В случае, если в действии гейта не участвуют некоторые кубиты, то их и не включают в матрицу, т.e. в матрице записано только реальное действие кубитов.  Таблица истинности отражает действие гейта на базисные состояния. Ее структура имеет следующий вид: по горизонтали записываются слева начальные состояния входящих кубитов, а справа — соответствующие конечные. По вертикали записываются все базисные состояния. Пример матричной записи кубита и таблиц истинности будет дан в таблице ниже.
Таблица истинности отражает действие Также используется графическая форма записи квантовых алгоритмов. Гейты обозначаются некоторыми символами (часто это кружок или квадрат с цифрой или буквой внутри). Кубиты представлены горизонтальными нитями. Действие гейта на базисные состояниякубит показывается путем "нанизывания" гейта на нужный кубит (или несколько кубитов, если это не однобитный гейт). Квантовый алгоритм представляется в виде сети таких гейтов и называется квантовой сетью. Ее структура имеет следующий вид: по горизонтали записывается слева Слева в такой сети находятся начальные состояния входящих кубитов, а справа — соответствующие конечные. По вертикали записываются все базисные состояния. Пример матричной записи кубита и таблиц истинности будет дан Действие алгоритма заключается в таблице нижепрохождении кубитов по своим нитям через гейты слева направо.
== Описание используемых гейтов ==
===Однокубитный гейт <tex>NOT</tex>===
Однокубитная логическая операция <tex>NOT</tex> переводит <tex>\mid q\bigr\rangle=a\mid0\bigr\rangle+b\mid 1\bigr\rangle</tex> в <tex>\mid q^\prime\bigr\rangle=b\mid0\bigr\rangle+a\mid 1\bigr\rangle</tex>, т.e. переставляет весовые коэффициенты кубита местами.  Квантовому состоянию кубита соответствует столбец <tex>\mid q\bigr\rangle\to \begin{pmatrix} a \\ b \end{pmatrix}</tex>.  Поэтому квантовым аналогом классического <tex>NOT</tex>-гейта является матрица вида:
т.e. переставляет весовые коэффициенты кубита местами. В классическом случае ей соответствует обычный <tex>NOTX\equiv\begin{pmatrix} 0 & 1\\ 1 & 0 \end{pmatrix}</tex> <tex>X\times\begin{pmatrix} a\\ b\end{pmatrix}=\begin{pmatrix} b\\ a\end{pmatrix}</tex>, т.к. один из коэффициентов равен нулю.
===Двукубитный гейт <tex>CNOT</tex>===
Двубитный гейт <tex>CNOT</tex> (англ. ''Controlled NOT''), действующий на двукубитное состояние в общем виде записывается так:
<tex>CNOT(R_{00} \left | \ 00\right \rangle +R_{01} \left | \ 01\right \rangle +R_{10} \left | \ 10\right \rangle +R_{11} \left | \ 11\right \rangle) = R_{00} \left | \ 00\right \rangle +R_{01} \left | \ 01\right \rangle</tex> <tex>+R_{11}\left | \ 10\right \rangle +R_{10} \left | \ 11\right \rangle</tex>
Простейшим двухкубитным контролируемым гейтом в классическом компьютере является <tex>CNOT</tex>. В квантовых вычислениях вводится подобный гейт, который имеет два входных кубита и два кубита на выходе. Как и в классическом случае это просто один из пары кубитов называется контролирующим, а второй контролируемым или кубитом-мишенью. Логика выполнения операции при этом определяется следующим образом: если контролирующий кубит находится в состоянии <tex>\left |\ 1\right \rangle</tex>, тогда контролируемый кубит подвергается квантовой операции <tex>XORNOT</tex>, в противном случае контролируемый кубит остается без изменения.
===Другие используемые гейты===
Кроме упомянутых выше гейтов <tex>NOT</tex> и <tex>CNOT</tex> в квантовых вычислениях используются также некоторые другие гейты. Их применение не необходимо, но запись алгоритма с их помощью намного проще. На практике часто используются такие гейты: однобитный <tex>H</tex> (англ. ''Hadamard''), двубитные <tex>R</tex> (''rotate''), двубитный <tex>S</tex> (англ. ''swap''), трехбитные <tex>CCNOT</tex> (гейт Тоффоли), <tex> CSWAP</tex> (гейт Фредкина). Гейт Тоффоли инвертирует кубит <tex>B</tex> при условии что значение кубитов <tex>A</tex> и <tex>C</tex> равны <tex>1</tex>.
Гейт Фредкина устроен следующим образом: он осуществляет перестановку кубитов <tex>B</tex> и <tex>C</tex> при условии, что значение кубита <tex>A</tex> равно <tex>0</tex>.
===Таблица различных обозначений квантовых гейтов===
{| classborder="wikitable1"cellpadding="20" cellspacing="0" 
|-
!название Название гейта||графическое Графическое обозначение||матричная Матричная запись||таблица Таблица истинности
|-
| <tex>NOT</tex> || [[Файл:Not2_(1).png ]] || <tex>\begin{pmatrix} 0& 1 \\ 1 & 0 \end{pmatrix}</tex> || <tex> \begin{array}{|c|c|}
0 & 1 \\
\end{array}</tex>
|-
|<tex>CNOT</tex> || [[Файл:Cnot2.jpg‎]] || <tex>\begin{pmatrix} 1 & 0 & 0 &0 \\ 0 & 1 & 0& 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}</tex> || <tex> \begin{array}{|c c|c c|}
\end{array}</tex>
|-
|<tex>H</tex> (''Hadamard'')|| [[Файл:H.png ]]‎ || <tex >\frac{1}{\sqrt{2}}\begin{pmatrix} 1& 1 \\ 1 & -1 \end{pmatrix}</tex> ||<tex> \begin{array}{|c|c|} 1 &\frac{1}{\sqrt{2}} \\ 0 & \frac{1}{\sqrt{2}}\\ \end{array}</tex>
|-
|<tex>S</tex> (''swap'')|| [[Файл:SWAP'.jpg‎]] ||<tex>\begin{pmatrix} 1 & 0 & 0 &0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}</tex> ||<tex> \begin{array}{|c c|c c|} 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 \\ 1 & 1 & 1 & 1 \\ \end{array}</tex>
|-
|<tex>CCNOT</tex> (''Toffoli'')|| [[Файл:CCNOT.png]] ||<tex>\begin{pmatrix} 1 & 0 & 0 &0 & 0 & 0 &0 &0 \\ 0 & 1 & 0& 0& 0 &0 & 0 & 0 \\ 0 & 0 & 1 & 0& 0 &0 & 0 & 0 \\0 & 0 & 0& 1& 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\0 & 0 & 0 & 0& 0 & 1 & 0 & 0\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\end{pmatrix}</tex> ||
<tex> \begin{array}{|c c c ||c c c|}
A & B & C & A' & B' & C'\\
\end{array}</tex>
|-
|<tex>CSWAP</tex> (гейт Фредкина)|| [[Файл:CSWAP'.jpg]] || <tex>\begin{pmatrix} 1 & 0 & 0 &0 & 0 & 0 &0 &0 \\ 0 & 1 & 0& 0& 0 &0 & 0 & 0 \\ 0 & 0 & 1 & 0& 0 &0 & 0 & 0 \\0 & 0 & 0& 1& 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\0 & 0 & 0 & 0& 0 & 0 & 1 & 0\\0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\end{pmatrix}</tex> ||<tex> \begin{array}{|c c c ||c c c|}
A & B & C & A' & B' & C'\\
\hline
\end{array}</tex>
|}
 
==Применение квантовых гейтов==
 
Квантовая модель вычислений позволяет:
*[[Разложение на множители (факторизация)|разложить число <tex>M</tex> на множители ]] за <tex>O(\lg^3 M)</tex>, <ref>[https://ru.wikipedia.org/wiki/%C0%EB%E3%EE%F0%E8%F2%EC_%D8%EE%F0%E0 Википедия {{---}} Алгоритм Шора]</ref>
* сделать полный перебор за <tex>{\sqrt{n}}</tex>, <ref>[https://ru.wikipedia.org/wiki/%C0%EB%E3%EE%F0%E8%F2%EC_%C3%F0%EE%E2%E5%F0%E0 Википедия {{---}}Алгоритм Гровера]</ref>
* осуществить [[Дискретное логарифмирование в группе|дискретный алгоритм нахождения логарифма]] за полиномиальное время, <ref>[http://cs.mipt.ru/docs/comp/rus/develop/other/quantum_comp/ Квантовые компьютеры и квантовые вычисления]
</ref>
* создать стойкую криптосистему: если "подслушать" квантовый бит, то он изменится. <ref>[http://habrahabr.ru/company/web_payment_ru/blog/229699// Habrahabr {{---}} Квантовые деньги ]</ref>
Построение квантового компьютера в виде реального физического прибора является фундаментальной задачей физики XXI века. В настоящее время построены только ограниченные его варианты (в пределах 512 кубит).
 
В 2005 году группой Ю. Пашкина при помощи японских специалистов был построен двухкубитный квантовый процессор на сверхпроводящих элементах.
 
В ноябре 2009 года физикам из Национального института стандартов и технологий в США впервые удалось собрать программируемый квантовый компьютер, состоящий из двух кубит.
 
11 мая 2011 года представлен компьютер D-Wave One, созданный на базе 128-кубитного процессора.
 
В декабре 2012 года представлен новый процессор Vesuvius, который объединяет 512 кубит.
 
== См.также ==
* [[Троичная логика]]
* [[Контактная схема]]
 
==Примечания==
 
<references />
 
== Источники информации ==
* [http://nuclphys.sinp.msu.ru/nseminar/30.10.12.pdf Страхова С.И. "Философия квантовых вычислений"]
 
* [http://qilab.phys.msu.ru/papers/kurs4-sych-ru.pdf Сыч Д.В. "Исследование возможностей реализации квантовых алгоритмов на аналоговых вычислительных машинах ]
 
*[http://old.kpfu.ru/eng/departments/ktk/RESOURCE/posobie.pdf Гайнутдинова А. Ф. "Квантовые вычисления"]
 
*[http://www.yury.name/modern/09modernnote.pdf Ю. Лифшиц "Введение в квантовые вычисления"]
 
*[http://habrahabr.ru/post/127461/ Квантовая криптография стучится в дверь]
 
[[Категория: Дискретная математика и алгоритмы]]
 
[[Категория: Схемы из функциональных элементов ]]
1632
правки

Навигация