CNOT(controlled-NOT) 게이트는 양자 컴퓨팅에서 가장 중요한 단일 게이트입니다.
CNOT는 if 문의 양자 등가물입니다. 다음과 같이 말합니다:
먼저, 큐비트를 뒤집는다는 것은 무엇을 의미하는가?
큐비트를 뒤집는 방법은 여러 가지가 있습니다. 여기 세 가지가 있습니다. 각각은 |0⟩(북극)에서 시작해 |1⟩(남극)에서 끝나지만, 다른 경로를 거칩니다:
셋 모두 |0⟩을 |1⟩로 뒤집고, 그 반대도 마찬가지입니다. 하나를 선택해야 합니다!
CNOT의 뒤집기는 구체적으로 X 게이트, 즉 x축을 중심으로 한 180° 회전입니다.
그래서 정말로 CNOT는 이렇게 말합니다:
그것이 어떻게 보이는지 봅시다.
제어된 뒤집기는 어떻게 보이는가?
첫 번째 큐비트가 |1⟩일 때
첫 번째 큐비트가 |1⟩(아래)이므로 CNOT는 두 번째에 X 게이트를 적용합니다.
두 번째 큐비트는 X를 적용한 것처럼 |0⟩에서 |1⟩로 뒤집혔습니다. 상태는 |11⟩이 됩니다. 첫 번째는 변하지 않습니다. 그것이 보스이고, CNOT는 항상 두 번째만 건드립니다.
첫 번째 큐비트가 |0⟩일 때
그렇다면 첫 번째 큐비트가 대신 |0⟩이라면 어떻게 될까요? 어떻게 될 것 같나요?
예측한 후 직접 확인해 보세요:
아무것도 변하지 않습니다. 첫 번째 큐비트가 |0⟩이었으므로 if 문이 작동하지 않았습니다. 상태는 |00⟩으로 유지됩니다.
중첩 상태에서
흥미로운 경우가 있습니다. 만약 첫 번째를 |0⟩과 |1⟩ 사이의 무언가, 50-50 중첩으로 설정하면 어떻게 될까요? (먼저 아다마르를 적용해 그곳에 도달합니다.) 이는 다음 상태에서 시작한다는 뜻입니다:
이제 첫 번째 큐비트에 대해 두 가지 가능성(또는 세계)이 있습니다. 아래 시각화에서 그것들을 빨강과 파랑으로 색칠합니다. 처음에는 빨강과 파랑 세계 모두에서 두 번째 큐비트가 "위" 위치에 있다는 점을 주목하세요. 그 큐비트에서는 세계가 겹쳐서 단지 흰색을 얻습니다.
그러나 CNOT를 수행함에 따라 빨강과 파랑 세계가 갈라집니다. 빨강 세계에서 첫 번째 큐비트는 0 위치에 있고, 파랑 세계에서는 1 위치에 있어, 파랑 세계만 뒤집힙니다.
그래서 두 세계가 병렬로 진행되는 것을 상상하세요:
- 빨강 세계: 첫 번째 큐비트는 줄곧
|0⟩이었습니다. CNOT는 아무것도 하지 않습니다. 우리는|00⟩으로 끝납니다. - 파랑 세계: 첫 번째 큐비트는 줄곧
|1⟩이었습니다. CNOT는 두 번째 큐비트를 뒤집습니다. 우리는|11⟩로 끝납니다.
양자역학은 하나를 선택하지 않습니다. 원래 50-50 분할에 의해 가중치를 두어 둘 다 유지합니다. 결과는 매우 유명한 얽힌 쌍인 벨 상태 (|00⟩ + |11⟩)/√2입니다.
측정하면 어떻게 되는가?
두 큐비트는 이제 상관관계가 있습니다. 첫 번째 큐비트를 측정해 아래에 있다는 것을 알면, 파랑 세계에 있다는 것을 알게 됩니다. 따라서 다른 큐비트도 아래에 있어야 합니다!
양자계를 측정하면 붕괴가 발생합니다. 이는 다른 모든 세계를 지운다는 뜻입니다.
양자 얽힘은 측정 결과 사이의 의존성입니다. 분명히 결과는 서로 의존하므로, 측정하기 전에는 분명히 얽혀 있습니다! 그러나 측정한 후에는 더 이상 의존성이 없습니다.
또 다른 시각화
참고로 이전 시각화는 Z 기저 측정에서 발생하는 두 세계를 보여주었습니다(그래서 세계가 z축에 배치되었습니다).
그러나 Z 축에서 측정할 필요는 없습니다. 어떤 방향에서든 측정할 수 있습니다. 구 주위에 우리가 도달할 수 있는 더 많은 가능한 세계가 있습니다.
이 다음 시각화는 어떤 방향에서의 측정에 대해서도 모든 잠재적 미래 상태에 고유한 색을 부여합니다. 다시, 두 큐비트의 상관관계가 있는 세계는 동일한 색으로 색칠됩니다.
이 시각화는 완전히 이해하려면 한참 들여다봐야 한다는 점을 유의하세요. 양자 얽힘에 대한 가이드가 도움이 될 것입니다.
진리표
네 가지 고전 입력에 대해:
| 입력 | 제어 | 이전 대상 | 이후 대상 | 출력 |
|---|---|---|---|---|
| |00⟩ | 0 | 0 | 0 | |00⟩ |
| |01⟩ | 0 | 1 | 1 | |01⟩ |
| |10⟩ | 1 | 0 | 1 (뒤집힘) | |11⟩ |
| |11⟩ | 1 | 1 | 0 (뒤집힘) | |10⟩ |
첫 번째 큐비트는 절대 변하지 않습니다. 두 번째는 첫 번째가 1과 같을 때 정확히 뒤집힙니다. CNOT는 자기 자신이 역원입니다: 두 번 적용하면 원래 상태로 돌아갑니다.
행렬
계산 기저(|00⟩, |01⟩, |10⟩, |11⟩ 순서)에서 CNOT는 다음과 같습니다:
왼쪽 상단 2×2 블록은 항등(첫 번째 큐비트 = 0이면 두 번째는 그대로)이며, 오른쪽 하단 2×2 블록은 파울리-X 게이트(첫 번째 큐비트 = 1이면 두 번째를 뒤집음)입니다.
실제 세계에서 CNOT는 어떻게 수행되는가
CNOT는 실제 큐비트에서 다양한 방식으로 수행됩니다.
전자 스핀 큐비트(예: 이온 트랩)에서는, 얽히게 하려는 두 전자에 서로 다른 두 레이저를 쏩니다. 첫 번째 전자가 위를 향하고 있다면, 자신의 레이저를 흡수하여 전체 트랩에 미세 진동을 일으킵니다. 두 번째 레이저는 그 진동을 두 번째 큐비트의 뒤집기로 변환합니다. 이렇게 전자 스핀 사이에 양자 얽힘을 만듭니다.

왜 CNOT가 중요한가
단일 큐비트 게이트만으로는 두 큐비트를 얽히게 할 수 없습니다. 각 큐비트를 하루 종일 독립적으로 회전시켜도 그들은 독립적으로 유지됩니다. 진정으로 다중 큐비트인 일을 하려면 적어도 하나의 두 큐비트 게이트가 필요하며, CNOT가 표준입니다.
두 개의 특정 단일 큐비트 게이트(아다마르와 T 게이트)와 함께 CNOT는 보편 게이트 집합을 이룹니다. 어떤 수의 큐비트에 대한 어떤 양자 연산이든, 원하는 정밀도로 이 세 게이트로 만들 수 있습니다. 대부분의 양자 하드웨어 벤더는 정확히 이 게이트 집합을 네이티브 연산으로 구현합니다.
관련 개념
- 아다마르 게이트: CNOT 전에 첫 번째 큐비트에 일반적으로 실행하는 게이트.
- 파울리-X (NOT): 첫 번째가 1일 때 CNOT가 두 번째 큐비트에 적용하는 게이트.
- 양자 게이트란 무엇인가? 포괄 개념.
- 블로흐 구: 두 구체 각각이 나타내는 것.
자주 묻는 질문
CNOT 게이트는 무엇을 하나요?
CNOT는 두 큐비트 게이트입니다. 첫 번째가 |1⟩ 상태일 때만 두 번째 큐비트를 뒤집습니다. 첫 번째 큐비트가 |0⟩이면 두 번째는 그대로 둡니다.
왜 CNOT가 양자 얽힘을 만드나요?
CNOT 진리표는 무엇인가요?
네 가지 고전 입력에 대해:
| 입력 | 출력 |
|---|---|
| |00⟩ | |00⟩ |
| |01⟩ | |01⟩ |
| |10⟩ | |11⟩ |
| |11⟩ | |10⟩ |
CNOT는 가역적인가요?
네. 모든 양자 게이트처럼 CNOT는 유니터리이므로 가역적입니다. 사실 자기 자신이 역원입니다: CNOT를 두 번 적용하면 시작점으로 돌아갑니다.
왜 CNOT가 그렇게 중요한가요?
단일 큐비트 게이트로는 양자 얽힘을 생성할 수 없습니다. 여러 큐비트에 걸쳐 진정으로 양자적인 일을 하려면 적어도 하나의 두 큐비트 게이트가 필요하며, CNOT가 표준 선택입니다. H 및 T와 함께 CNOT는 보편 게이트 집합을 이루며, 이는 어떤 양자 연산도 이 세 게이트로 만들 수 있다는 뜻입니다.
CNOT 행렬은 무엇인가요?
계산 기저에서 4×4 행렬. 블록 형태로 (첫 번째 큐비트 = 0) 부분공간의 2×2 항등과 (첫 번째 큐비트 = 1) 부분공간의 파울리-X입니다: 정확히 "첫 번째가 1일 때만 두 번째 큐비트를 뒤집어라".
Qubi 구매하기
얽힌 큐비트를 손에 쥐세요.
손에 쥘 수 있는 큐비트 한 쌍을 만들었습니다. 개념을 확실히 하는 데 도움이 되며, 실제 양자 컴퓨터에 연결할 수도 있습니다!