답변:
n 비트를 m 비트 (여기서 m < n )에 매핑 하는 함수 가 있다고 가정하겠습니다 .
물론이 작업을 수행하기 위해 클래식 회로를 설계 할 수도 있습니다. 그것을 라고합시다 . 입력 n 비트로받습니다. 입력 X 로 가져 와서 f ( X )를 출력 한다고 가정 해 봅시다 .
이제 양자 회로를 사용하여 동일한 작업을 수행하려고합니다. 하자 전화를 입력으로 취, | X ⟩ 출력 | f ( X ) ⟩ . 양자 역학이 선형이기 때문에 입력 큐비 트는 물론 모든 n 비트 스트링 의 중첩에있을 수 있음을 기억하십시오 . 따라서 입력은 어떤 상태에있을 수 있습니다. ∑ X ∈ { 0 , 1 } n α X | X ⟩ . 선형성으로 출력은 ∑ X ∈ { 0 ,.
양자 역학의 진화는 단일하다 . 그리고 그것은 단일하기 때문에 뒤집을 수 있습니다. 이것은 본질적으로 입력 상태에서 양자 게이트 를 적용하면 | X ⟩ 와 OUPUT 상태 얻을 U를 | X ⟩ , 당신은 항상 역 게이트 적용 할 수있는 U를 † 상태로 돌아 가야 | X ⟩ .
위 그림에서 입력 라인 수 (즉, 6 개)는 각 단계의 출력 라인 수와 정확히 동일합니다. 이는 작업의 단일성 때문입니다. 이것을 논리 AND와 같은 고전적인 연산과 비교하십시오. 여기서 은 단일 비트 출력 0을 제공합니다 . 0 ∧ 0 과 1 ∧ 0 조차 동일한 출력 0에 매핑 되었기 때문에 출력에서 초기 비트 0 과 1 을 재구성 할 수 없습니다 . 그러나 고전적인 NOT 게이트를 고려하십시오. 입력이 0이면 1 을 출력 하는 반면 입력이 0 이면0 을 출력합니다. 이 매핑은 일대일이므로 가역적 단일 게이트, 즉Pauli-X 게이트로 쉽게 구현할 수 있습니다. 그러나 클래식 AND 또는 클래식 OR 게이트를 구현하려면 조금 더 생각해야합니다.
CSWAP 게이트를 고려하십시오 . 체계를 보여주는 대략적인 다이어그램은 다음과 같습니다.
제어 비트에 따라 SWAP 게이트에서 다른 두 개는 서로 바뀔 수 있습니다. 세 개의 입력 라인과 세 개의 출력 라인이 있습니다. 따라서 단일 양자 게이트로 모델링 할 수 있습니다. 이제 경우 : x = 0 이면 출력은 0 이고 x = 1 이면 출력은 y 입니다.
당신이 통지하는 경우, 경우 , 우리는 출력이다 ˉ X ∧ y를 하면서 경우 X = 1 우리가 출력됩니다 X ∧ y는 . 따라서 우리 는 원하는 "정크"출력 ˉ x ∧ y 및 x로 끝나더라도 원하는 출력 x ∧ y 를 성공적으로 생성 할 수 있습니다. 흥미로운 사실은 CSWAP 게이트의 역수가 CSWAP 게이트 자체라는 것입니다 (확인!).
그게 다야! 모든 클래식 게이트는 NAND 게이트 로 구성 할 수 있으며, 물론 AND 및 NOT 게이트로 구성 할 수 있습니다. 가역 양자 게이트를 사용하여 클래식 NOT과 클래식 AND 게이트를 효과적으로 모델링했습니다. 안전 을 위해 CNOT를 사용하면 비트를 복사 할 수 있기 때문에 qauntum CNOT 게이트 를 목록에 추가 할 수도 있습니다 .
따라서, 기본적인 메시지는 양자 CSWAP, CNOT를 사용하고 NOT 게이트 우리 복제 수 있다는 어떠한 고전 게이트. BTW, 양자 게이트가 사용될 때 생성되는 "정크"비트를 제거하는 영리한 트릭이 있습니다. 그러나 그것은 또 다른 이야기입니다.
PS : "정크"비트를 제거하는 것이 매우 중요합니다. 그렇지 않으면 계산 오류가 발생할 수 있습니다!
참조 및 이미지 크레디트 : UC Berkeley가 edX에서 제공하는 양자 역학 및 양자 계산 MOOC .