Получите унитарную матрицу для ворот Тофолли

Я знаю, что для двух кубитов матрица CNOT имеет вид

С Н О Т "=" п 0 я + п 1 Икс .

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

Как я могу получить эту матрицу? Спасибо!

+1 Объясняется условно-не-гейт (CNOT). Ясно, что шаг по преобразованию в матрицу находится в центре внимания вопроса. Downvoter должен объяснить, пожалуйста.
Да, спасибо. Я хочу иметь возможность генерировать матрицы на лету для любого положения элементов управления и целей.

Ответы (3)

Эти ворота - так называемые ворота Тоффоли. Его матричное представление задается следующей матрицей:

[ 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 ]

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

Я не знаю, поможет ли это, но эту матрицу также можно записать как

М 0 я 4 + М 1 я 2 + М 2 Икс

, где М 0 является

[ 1 0 0 0 ]

, М 1 является

[ 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 ]

, и М 2 является

[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 ]
.

Я знаю, как вывести это таким образом, но я запутался в уравнениях.
@Fernando: я также могу написать эту матрицу как сумму трех тензорных произведений, но я понятия не имею, нужно ли вам это разложение.
Я думаю, что это именно так! Я пишу симулятор, поэтому мне нужны уравнения.
Итак, если у меня есть система с n управляющими кубитами, действующими на одну цель, я могу обобщить это уравнение (добавляя больше членов и заботясь о порядке). Это верно? Кроме того, не могли бы вы немного рассказать о M0, M1 и M2? Спасибо!
@ Фернандо: ты прав. Для данного случая, n=2, я нашел M0, M1 и M2 методом проб и ошибок, но это просто. На самом деле, я могу написать общую формулу для n управляющих кубитов, действующих на один целевой кубит (при любой унитарной операции с одним кубитом в X нет ничего особенного).
@Fernando: я могу написать короткую заметку с общей формулой и доказательством и отправить ее вам, но сначала мне нужно больше информации об интересе к такой формуле. Не могли бы вы рассказать мне больше о полезности этой формулы? Если вам удобнее, напишите мне, следуя адресу моей веб-страницы в моем профиле.
Я сделаю это, спасибо. Меня интересует моделирование некоторых схем, поэтому мне нужно вывести эти матрицы на лету. Я знаю, как это сделать для управляемых ворот U, но не для ворот C2-U.

Вот трюк в Quirk (инструмент, который вы использовали для создания скриншота), который покажет вам матрицу для любой операции или комбинации операций. Этот прием основан на двойственности состояния канала .

  1. Подготовьте количество пар ЭПР, равное количеству кубитов в вашей схеме. Поместите одну половину каждой пары ЭПР в группу вверху, а остальные — внизу в том же порядке. Вы можете сделать это с помощью группы вентилей H+CNOT или чуть быстрее с помощью одного блока QFT+ADD.

  2. Примените вентили из исходной схемы к нижней половине этой большей схемы.

  3. Посмотрите на дисплей выходной амплитуды. Это унитарная матрица схемы! (На самом деле это только пропорционально матрице, но это так же хорошо.)

Вот матрица для вашей схемы в Quirk с помощью этого трюка :

схема с матричным трюком

А матрица для вашей схемы на самом деле

[ 1 1 1 1 1 1 1 1 ]

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

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

Спасибо, я проверю это. Я разместил вопрос о причуде в обмене cs (у меня другой результат от другого симулятора).

Простая формула, основанная на определении ворот тофолли.

Определение. Если два кубита одновременно находятся в активном состоянии, переверните третий кубит, а в других конфигурациях ничего не делайте.

Математически-

| 1 2 1 2 | о Икс + | 1 2 1 2 | я + | 1 2 1 2 | я + | 1 2 1 2 | я

где о Икс является Икс -Матрица Паули и я является 2 × 2 Единичная матрица.

Активное состояние для кубита один | 1 "=" [ 1 0 ]

Неактивное состояние для кубита один | 1 "=" [ 0 1 ]

Активное состояние для второго кубита | 2 "=" [ 1 0 ]

Неактивное состояние для второго кубита | 2 "=" [ 0 1 ]

| 1 2 "=" [ 1 0 ] [ 1 0 ] "=" [ 1 0 0 0 ]

и | 1 2 1 2 | "=" [ 1 0 0 0 ] [ 1   0   0   0 ] "=" [ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]

Точно так же вы можете построить другие термины.

Окончательно,

| 1 2 1 2 | о Икс + | 1 2 1 2 | я + | 1 2 1 2 | я + | 1 2 1 2 | я "="

[ 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] + [ 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] + [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 ] + [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 ] "=" [ 0 1 0 0 0 0 0 0 1 0 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 1 ]

Другое определение «если два кубита одновременно находятся в выключенном состоянии, то переверните третий кубит и ничего не делайте в других конфигурациях» в равной степени справедливо. У вас даже есть выбор, чтобы выбрать [ 1 0 ] как нерабочее состояние. Вы можете поэкспериментировать с этими соглашениями и найти разные способы написания tofolli gate, которые одинаково допустимы.