제어 및 대상 qbit가 인접하지 않은 3-qbit 시스템에서 CNOT 매트릭스를 도출하는 방법은 무엇입니까?


15

3-qbit 시스템에서 제어 및 대상 qbit가 유의 한 인접성에있을 때 CNOT 연산자를 쉽게 도출 할 수 있습니다. 수정되지 않은 qbit의 중요 위치에있는 ID 매트릭스로 2 비트 CNOT 연산자를 텐서 링하면됩니다.

C10|ϕ2ϕ1ϕ0⟩=(I2⊗C10)|ϕ2ϕ1ϕ0⟩

그러나 제어 및 대상 qbit가 중요 하지 않은 경우 CNOT 연산자를 파생시키는 방법은 분명 하지 않습니다 .

C20|ϕ2ϕ1ϕ0⟩

이것은 어떻게 이루어 집니까?


이 질문과 답변을 참조하십시오 : quantumcomputing.stackexchange.com/questions/9614/…
— Martin Vesely

답변:


14

첫 번째 원칙의 발표를 위해 Ryan O'Donnell의 답변이 마음에 듭니다 . 그러나 약간 높은 수준의 대수 치료를 위해 여기에 내가 어떻게 할 것입니다.

모든 단일 대해 제어 연산 의 주요 특징은 단일 큐 비트의 값에 따라 일부 큐 비트에서 (일관되게) 연산을 수행한다는 것입니다. 우리가 이것을 명시 적으로 대수적으로 쓸 수있는 방법은 (첫 번째 큐빗의 제어와 함께) 다음과 같습니다 : 여기서 은 와 차원이 같은 항등 행렬입니다 . 여기서 및 은 및 상태의 프로젝터입니다.UU

CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
1U|0⟩⟨0||1⟩⟨1||0⟩|1⟩ 우리는 여기에서 그것들을 측정의 요소로 사용하지 않고, 첫번째 큐 비트의 상태 공간의 하나 또는 다른 서브 공간에 따라 다른 큐 비트에 대한 영향을 설명하기 위해 사용합니다.

우리는 게이트가 매트릭스 도출하도록 이것을 사용할 수 행하는 큐 비트 (3)의 동작을, 코 히어 런트 제어 방출 등이 생각하여, 큐 비트 (1)의 상태를 조절 qubits 2와 3에서의 작동 CX1,3X(12⊗X)

CX1,3=|0⟩⟨0|⊗14+|1⟩⟨1|⊗(12⊗X)=[140404(12⊗X)]=[12020202021202020202X02020202X],
여기서 후자는 공간 (및 온전함)을 절약하기위한 블록 행렬 표현입니다.

더 나은 방법 : 텐서 팩터의 순서가 정해진 순서에 있지 않아도된다는 사실을 수학적 수준에서 인식 할 수 있다는 점을 인식 할 수 있습니다. 작업의 제어 및 목표는 두 개의 텐서에있을 수 있습니다. 그리고 다른 모든 큐 비트에 대한 연산자 설명을 채울 수 있습니다 . 이를 통해 표현으로 바로 이동할 수 있습니다. 12

CX1,3=|0⟩⟨0|⏟control⊗12⏟uninvolved⊗12⏟target+|1⟩⟨1|⏟control⊗12⏟uninvolved⊗X⏟target=[12020202021202020202020202020202]+[02020202020202020202X02020202X]
또한 제어와 목표의 역할이 바뀌면 어떻게해야하는지 즉시 확인할 수 있습니다.
CX3,1=12⏟target⊗12⏟uninvolved⊗|0⟩⟨0|⏟control+X⏟target⊗12⏟uninvolved⊗|1⟩⟨1|⏟control=[|0⟩⟨0||0⟩⟨0||0⟩⟨0||0⟩⟨0|]+[|1⟩⟨1||1⟩⟨1||1⟩⟨1||1⟩⟨1|]=[1000000000100000000001000000000100000100000000011000000000100000].
그러나 무엇보다도 :이 연산자를 대수적으로 적을 수 있다면 와 같은 표현식을 사용하여 대수적으로 이러한 연산자에 대해 추론하는 대신 거대 행렬을 완전히 분배하는 첫 단계를 취할 수 있습니다 와 CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗XCX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|. 물론 이것으로 얼마나 많은 일을 할 수 있는지에 대한 한계가있을 것입니다. 단순한 표현의 변경은 어려운 양자 알고리즘을 수동 계산으로 다루기 쉬울뿐만 아니라 효율적으로 해결할 수 없을 것입니다. 그러나 간단한 회로에 대해 훨씬 더 효과적으로 추론 할 수 있습니다 거대한 공간을 차지하는 행렬보다 이러한 표현을 사용합니다.

그래, 나는 Mermin 책에서 일찍부터 프로젝터를 회상한다. 프로젝터와 행렬 추가는 행렬에서 조건부 논리를 인코딩하는 방법입니다!
— ahelwer

"간단한 표현 변경은 어려운 양자 알고리즘을 효율적으로 해결할 수 없을 것"-심지 회전의 경우는 어떻습니까?
— meowzz

1
@meowzz : 가끔씩 이런 표기법의 변화는 개념적인 발전을 가능하게하고 문제를보다 쉽게 ​​해결하도록 도와줍니다. 그러나 이러한 표기법의 변화가 자주 발생하는 경우는 많지 않으며 아마도 잘 알려져 있지 않습니다. 그러나 Wick 로테이션의 특정 사례와 관련하여 내가 묻는 질문은 문제를 해결할 수있는 구체적인 진보와 도움이되는 문제입니다.
— Niel de Beaudrap

8

이것은 좋은 질문입니다. 그것은 교과서가 몰래 보이는 것입니다. 며칠 전에 양자 컴퓨팅 강의를 준비 할 때이 정확한 질문에 도달했습니다.

내가 알 수있는 한, 행렬에 대한 Kronecker product 표기법을 사용하여 원하는 8x8 행렬을 얻는 방법은 없습니다 . 실제로 말할 수있는 것은 다음과 같습니다. CNOT를 세 큐빗에 적용하는 작업은 컨트롤이 첫 번째이고 대상이 세 번째 인 경우 다음과 같은 영향을 미칩니다.⊗

|000⟩↦|000⟩

|001⟩↦|001⟩

|010⟩↦|010⟩

|011⟩↦|011⟩

|100⟩↦|101⟩

|101⟩↦|100⟩

|110⟩↦|111⟩

|111⟩↦|110⟩

따라서 다음 매트릭스로 제공됩니다.

U=[1000000001000000001000000001000000000100000010000000000100000010]

이 행렬 는 실제로 또는 . 간결한 Kronecker 제품 기반 표기법은 없습니다. 그것은 단지 그것이 무엇인지입니다.UI2⊗CNOTCNOT⊗I2


1

일반적으로 CNOT는 제어에 따라 대상을 뒤집습니다. 컨트롤이 인 경우 대상을 뒤집기로 선택하면 도 선택할 수 있습니다 . 따라서 일반적인 멀티 입자 상태 . 지금 당신은 당신의 통제 및 대상을 선택, 말의 수 제어이며 대상입니다. 에 CNOT 적용 다만됩니다 ↑(=[1 0]T)↓(=[0 1]T)|ϕ⟩=|↑1↓2↓3....↑n−1↓n⟩i′thk′th|ϕ⟩

CNOT|ϕ⟩=CNOT|↑1↓2...↑i...↑k...↑n−1↓n⟩=|↑1↓2...↑i...↓k...↑n−1↓n⟩

이러한 CNOT 게이트의 행렬을 구성하기 위해 상태가 작동 하면 ( -Pauli matrix) 를 적용하고 상태가 작동 하지 않으면 ( Identity)를 적용 합니다. 이 행렬을 목표 인 위치에 적용합니다 . 수학적으로 σxxi′thI2×2i′thk′th

CNOT=[|↑1...↑i...↑k−1⟩⟨↑1...↑i...↑k−1|⊗σx⊗|↑k+1...↑n⟩⟨↑k+1...↑n|+all permutations of states other then i′th]+[|↑1...↓i...↑k−1⟩⟨↑1...↓i...↑k−1|⊗I⊗|↑k+1...↑n⟩⟨↑k+1...↑n|+all permutations of states other then i′th]

참고 순열 행렬을 만드는 동안 상태 (대상)가 제외되고 위치에 연산자 또는 가 기록됩니다.k′thk′thσxI

qubit가 대상이고 가 제어 되는 5 개의 qubit를 예로 들어 보겠습니다 . 의 순열 행렬을 만들 수 있습니다. 제어가 이면 대상을 뒤집습니다. 그 반대도 마찬가지입니다.2nd4thCNOT↑

CNOT=|↑1⟩⟨↑1|⊗σx⊗|↑3↑4↑5⟩⟨↑3↑4↑5|+|↑1⟩⟨↑1|⊗σx⊗|↑3↑4↓5⟩⟨↑3↑4↓5|+|↑1⟩⟨↑1|⊗σx⊗|↓3↑4↑5⟩⟨↓3↑4↑5|+|↑1⟩⟨↑1|⊗σx⊗|↓3↑4↓5⟩⟨↓3↑4↓5|+|↓1⟩⟨↓1|⊗σx⊗|↑3↑4↑5⟩⟨↑3↑4↑5|+|↓1⟩⟨↓1|⊗σx⊗|↑3↑4↓5⟩⟨↑3↑4↓5|+|↓1⟩⟨↓1|⊗σx⊗|↓3↑4↑5⟩⟨↓3↑4↑5|+|↓1⟩⟨↓1|⊗σx⊗|↓3↑4↓5⟩⟨↓3↑4↓5|+|↑1⟩⟨↑1|⊗I⊗|↑3↓4↑5⟩⟨↑3↓4↑5|+|↑1⟩⟨↑1|⊗I⊗|↑3↓4↓5⟩⟨↑3↓4↓5|+|↑1⟩⟨↑1|⊗I⊗|↓3↓4↑5⟩⟨↓3↓4↑5|+|↑1⟩⟨↑1|⊗I⊗|↓3↓4↓5⟩⟨↓3↓4↓5|+|↓1⟩⟨↓1|⊗I⊗|↑3↓4↑5⟩⟨↑3↑4↓5|+|↓1⟩⟨↓1|⊗I⊗|↑3↓4↓5⟩⟨↑3↓4↓5|+|↓1⟩⟨↓1|⊗I⊗|↓3↓4↑5⟩⟨↓3↓4↑5|+|↓1⟩⟨↓1|⊗I⊗|↓3↓4↓5⟩⟨↓3↓4↓5|

-2

먼저 CNOT⊗𝐼2 행렬을 작성한 다음 matlab을 사용하여 index2 및 index3의 순서를 변경하십시오. 이런 식으로, 당신은 많은 qubits를 할 수 있습니다.


안녕하세요! 더 명확하게 답변을 확장 할 수 있습니까? 아마도 예제가 도움이 될 것입니다 :)
— met927
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.