처음부터 양자 회로를 만드는 방법


9

저는 현재 Eleanor Rieffel과 Wolfgang Polak의 Quantum Computing a Gentle Introduction이라는 책을 사용하여 현재 자율 학습을하고 있습니다.

이전 장들과 연습 문제들을 잘 살펴 보았지만 (다행히 앞 장들에는 많은 예제들이 있었지만) 나는 양자 회로에 관한 5 장에서 멈췄습니다. 필자는 예제가 부족하여 저자가 제시하는 개념을 이해하지만 연습에 해당 개념을 적용하는 데 어려움이 있습니다.

문제가있는 연습 (및 해결책을 찾을 수없는 곳이나 철저한 / 입문 설명)은 다음과 같습니다.

질문 :

작성을위한 회로를 설계하십시오. |Wn=1n(|0001+|0010+|0100)++|1000) ...에서 |0000

그리고 "강건한 상태"를 만들기위한 회로를 설계하십시오. 112(3|00+|01+|10+|11)

누군가가 올바른 방향으로 나를 가리켜 주거나 일부 문학 / 자습서를 참조하여 이러한 종류의 운동을 더 잘 이해할 수 있습니까?

아마도 관련 질문 : 임의의 양자 상태를 생성하기 위해 회로를 구성하기위한 팁과 요령


1
Hardy 상태에 익숙하지 않지만 작성한 내용을 확인할 수 있습니까? 그것은 표준화되지 않았고 (사소한 종류의), 그래서 나는 그것이 당신이 의도 한 것이 아니라고 생각합니다. W-state의 경우 아마도이 질문 을 확인하고 싶을 것입니다 .
DaftWullie

네 말이 맞아 오타를 만들었 어 나는 그것들을 편집했고, 이제 그것들은 정확 / 정규화되었다. 그리고 고마워요!
Joery

1
그런데이 논문 arxiv.org/abs/quant-ph/0104030 은 임의의 양자 상태를 구성하는 일반적인 기술을 제공합니다.
역설

답변:


7

DaftWullie가 지적했듯이 여기에 훌륭한 답변 모음이 있습니다 .

Hardy 상태 질문 (및 이와 유사한 다른 많은 작업)의 경우 다음과 같이 접근 할 수 있습니다.

  • 로 시작 |0 ... 0 상태.
  • 첫 번째 큐빗을 "올바른 상태로"시작하십시오. (α|0+β|1)|0 ... 0, 어디 αβ는 각각 0과 1로 시작하는 모든 기본 상태의 상대 가중치입니다. 특히 Hardy 상태의 경우 두 가지 기본 상태는 0으로 시작합니다.112(|00+|01) 두 가지 기본 상태는 1로 시작합니다. 112(|10+|11); 상대 가중치는 진폭의 제곱의 합입니다.912+112=1012112+112=212각각. 따라서 첫 번째 큐빗을 상태에 넣어야합니다(1012|0+212|1) 사용 아르 자형와이 문.
  • 제어 된 상태를 적용하여 두 번째 큐빗을 올바른 상태로 유지하여 계속 아르 자형와이첫 번째 큐빗을 컨트롤로 사용하는 게이트. 처음 두 항을 올바르게 얻으려면 항을 변환해야합니다.1012|0|0 용어로 112(|00+|01)정상 상태 변환과 동일 |0|0 으로 110(|00+|01) 국가에 영향을 미치지 않고 |1|0 (더 큰 식의 용어를 독립형 상태로 전환 할 때 재 정규화에 유의하십시오!) 이렇게하려면 0으로 제어 할 수 있습니다. 아르 자형와이 첫 번째 큐빗을 컨트롤로, 두 번째 큐빗을 대상으로합니다.
  • 더 많은 큐 비트가있는 경우 더 많은 제어 큐 비트를 사용하여 회전을보다 구체적으로 지정하여이 작업을 계속합니다.

보다 공식적이고 덜 임시적인 설명을 원한다면 Shende, Bullock 및 Markov 가이 논문 을 볼 수 있습니다 .


당신의 대답은 위대합니다! 나는 하향식 접근 방식, 즉 최종 상태에서 시작하여 분해 및 기본 상태를 향한 게이트를 찾으려고 시도했기 때문에 붙어 있다고 생각합니다. 이 문서와 종이는 큰 도움이됩니다. 감사합니다!
Joery

4

"상태 생성"문제를 세 부분으로 나누어 단순화 할 수 있습니다.

  1. 단계 또는 어느 주가 어느 규모인지 걱정하지 않고 필요한 규모의 모음을 준비하십시오.
  2. 단계를 수정하십시오.
  3. 순서를 수정하십시오.

이제 하디 상태를 고려하십시오. 우리가해야 할 크기는 얼마입니까? 우리는 하나의 인스턴스가 필요합니다/12 그리고 인스턴스의 세 인스턴스 1/12. 우리는 계속 분리되는 "남은 진폭"상태를 가짐으로써 한 번에 하나씩 만들 수 있습니다.

우리는 모든 진폭을 한 상태에서 왼쪽으로 여기하면서 시작합니다. 0|1000 ... 00 어디 0=1. 우리가 원하는 것은 원하는 크기를 남겨두고 여기를 오른쪽으로 옮기는 것입니다. 시작하기 위해 우리는 규모를 떠나고 싶습니다/12. 우리는 통제로 그것을 할 수 있습니다아르 자형와이(θ0)여기서 컨트롤은 가장 왼쪽 큐빗이고 대상은 오른쪽 바로 큐빗입니다. 올바른 값을 선택함으로써θ, 이것은 상태를 초래할 것입니다 /12|1000 ... 00+1|1100 ... 00. 그런 다음 두 번째 큐 비트를 첫 번째 큐 비트로 다시 CNOT하여1|1000 ... 00+/12|0100 ... 00. 다음으로 우리는 떠나고 싶습니다1/12. 우리는 다른 것을 수행아르 자형와이가장 왼쪽에있는 큐 비트에 의해 제어되고 뒤로 CNOT가 뒤 따르지만, 이번에는 대상에서 왼쪽에있는 큐 비트가 세 번째입니다. 완벽한 것을 선택함으로써θ1 우리는 상태를 생산할 것입니다 2|1000 ... 00+/12|0100 ... 00+1/122|0010 ... 00. 그리고 필요한 모든 진폭을 얻을 때까지이 작업을 계속하면 개별 큐 비트가 흥분되어 편리하게 처리됩니다.

이제 Y 회전으로 생성 된 잘못된 위상을 수정하려고합니다. 하디 상태의 경우 모든 단계가 긍정적이기 때문에 쉽습니다. 일반적으로 각 큐 비트 위치를 타겟팅합니다.케이아르 자형(ϕ케이) 적절히 선택된 작업 ϕ케이 그리고 그것은 단계를 올바르게 얻을 것입니다.

이제 주문을 제대로하고 싶습니다. 가장 쉬운 방법은 출력 큐비 트인 일부 추가 큐 비트를 확보하는 것입니다. 지금까지 준비한 각 큐 비트와 각 출력 큐 비트에 대해 둘 사이에 CNOT를 추가하거나 추가하지 않습니다. 예를 들어 진폭이있는 상태/12 ~로되어있다 |11그런 다음 맨 왼쪽 큐빗에서 두 출력 큐빗으로 CNOT해야합니다. 그런 다음 많은 제어 NOT 연산을 사용하여 가장 왼쪽 큐빗을 계산 해제해야합니다. 각 출력 큐 비트에 대해 하나의 컨트롤이 있어야하며 컨트롤의 유형 (큐빗을 켠 상태와 큐빗을 껐을 때)은 큐 비트를 토글했는지 여부에 따라 결정됩니다.

이러한 단계를 적용하면 하디 상태를 만들기위한 비효율적이지만 올바른 회로가 생성됩니다. Quirk에서 회로를 열 수 있습니다 .

간단한 준비

너무 많은 작업 공간을 사용하지 않고 상태를 생성하려는 경우 작업이 더 어려워집니다. 그러나 크기와 위상, 순서 패턴을 따를 수 있습니다. 또한 멋진 패턴을 가진 크기 집합을 준비하는 영리한 방법이 있습니다. 예를 들어, 하나의 진폭 만이 다른 진폭과 다른 경우, 한 라운드의 부분 진폭 증폭이 상태를 준비하기에 충분할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.