"상태 생성"문제를 세 부분으로 나누어 단순화 할 수 있습니다.
- 단계 또는 어느 주가 어느 규모인지 걱정하지 않고 필요한 규모의 모음을 준비하십시오.
- 단계를 수정하십시오.
- 순서를 수정하십시오.
이제 하디 상태를 고려하십시오. 우리가해야 할 크기는 얼마입니까? 우리는 하나의 인스턴스가 필요합니다3 /12−−√ 그리고 인스턴스의 세 인스턴스 1 /12−−√. 우리는 계속 분리되는 "남은 진폭"상태를 가짐으로써 한 번에 하나씩 만들 수 있습니다.
우리는 모든 진폭을 한 상태에서 왼쪽으로 여기하면서 시작합니다. ℓ0| 1000 ...00⟩ 어디 ℓ0= 1. 우리가 원하는 것은 원하는 크기를 남겨두고 여기를 오른쪽으로 옮기는 것입니다. 시작하기 위해 우리는 규모를 떠나고 싶습니다3 /12−−√. 우리는 통제로 그것을 할 수 있습니다아르 자형와이(θ0)여기서 컨트롤은 가장 왼쪽 큐빗이고 대상은 오른쪽 바로 큐빗입니다. 올바른 값을 선택함으로써θ, 이것은 상태를 초래할 것입니다 3 /12−−√| 1000 ...00⟩+ℓ1|1100 ... 00⟩. 그런 다음 두 번째 큐 비트를 첫 번째 큐 비트로 다시 CNOT하여ℓ1| 1000 ...00⟩+3 /12−−√| 0100 ...00⟩. 다음으로 우리는 떠나고 싶습니다1 /12−−√. 우리는 다른 것을 수행아르 자형와이가장 왼쪽에있는 큐 비트에 의해 제어되고 뒤로 CNOT가 뒤 따르지만, 이번에는 대상에서 왼쪽에있는 큐 비트가 세 번째입니다. 완벽한 것을 선택함으로써θ1 우리는 상태를 생산할 것입니다 ℓ2| 1000 ...00⟩+3 /12−−√| 0100 ...00⟩+1 /12−−√ℓ2| 0010 ...00⟩. 그리고 필요한 모든 진폭을 얻을 때까지이 작업을 계속하면 개별 큐 비트가 흥분되어 편리하게 처리됩니다.
이제 Y 회전으로 생성 된 잘못된 위상을 수정하려고합니다. 하디 상태의 경우 모든 단계가 긍정적이기 때문에 쉽습니다. 일반적으로 각 큐 비트 위치를 타겟팅합니다.케이 와 아르 자형지(ϕ케이) 적절히 선택된 작업 ϕ케이 그리고 그것은 단계를 올바르게 얻을 것입니다.
이제 주문을 제대로하고 싶습니다. 가장 쉬운 방법은 출력 큐비 트인 일부 추가 큐 비트를 확보하는 것입니다. 지금까지 준비한 각 큐 비트와 각 출력 큐 비트에 대해 둘 사이에 CNOT를 추가하거나 추가하지 않습니다. 예를 들어 진폭이있는 상태3 /12−−√ ~로되어있다 | 11⟩그런 다음 맨 왼쪽 큐빗에서 두 출력 큐빗으로 CNOT해야합니다. 그런 다음 많은 제어 NOT 연산을 사용하여 가장 왼쪽 큐빗을 계산 해제해야합니다. 각 출력 큐 비트에 대해 하나의 컨트롤이 있어야하며 컨트롤의 유형 (큐빗을 켠 상태와 큐빗을 껐을 때)은 큐 비트를 토글했는지 여부에 따라 결정됩니다.
이러한 단계를 적용하면 하디 상태를 만들기위한 비효율적이지만 올바른 회로가 생성됩니다. Quirk에서 회로를 열 수 있습니다 .
너무 많은 작업 공간을 사용하지 않고 상태를 생성하려는 경우 작업이 더 어려워집니다. 그러나 크기와 위상, 순서 패턴을 따를 수 있습니다. 또한 멋진 패턴을 가진 크기 집합을 준비하는 영리한 방법이 있습니다. 예를 들어, 하나의 진폭 만이 다른 진폭과 다른 경우, 한 라운드의 부분 진폭 증폭이 상태를 준비하기에 충분할 수 있습니다.