Scott Aaronson 이 작성한 이 블로그 포스트 는 Shor 알고리즘에 대한 매우 유용하고 간단한 설명입니다 .
두 번째로 유명한 양자 알고리즘 등의 설명이 있는지 궁금 해요 : 그로버의 알고리즘이 검색 정렬되지 않은 크기의 데이터베이스 에서 시간.
특히, 러닝 타임의 초기 놀라운 결과에 대한 이해하기 쉬운 직관을보고 싶습니다!
Scott Aaronson 이 작성한 이 블로그 포스트 는 Shor 알고리즘에 대한 매우 유용하고 간단한 설명입니다 .
두 번째로 유명한 양자 알고리즘 등의 설명이 있는지 궁금 해요 : 그로버의 알고리즘이 검색 정렬되지 않은 크기의 데이터베이스 에서 시간.
특히, 러닝 타임의 초기 놀라운 결과에 대한 이해하기 쉬운 직관을보고 싶습니다!
답변:
Craig Gidney의 좋은 설명이 있습니다 (그는 블로그 에 회로 시뮬레이터를 포함한 다른 훌륭한 내용도 있습니다 ).
기본적으로 Grover 알고리즘 True
은 가능한 입력 중 하나와 False
다른 모든 입력에 대해 반환하는 함수가있을 때 적용됩니다 . 알고리즘의 역할은를 반환하는 알고리즘을 찾는 것입니다 True
.
이를 위해 입력을 비트 문자열로 표시하고 및 큐 비트의 캐릭터의 상태. 비트 문자열 그래서 0011
네 개의 큐 비트 상태로 인코딩 될 수 예.
또한 양자 게이트를 사용하여 기능을 구현할 수 있어야합니다. 특히, 우리는 단일 구현할 일련의 게이트를 찾아야 합니다.
여기서 는 함수가 반환 할 비트 문자열 True
이고 는 반환 할 비트 문자열입니다 False
.
모든 가능한 Hadamarding으로 아주 쉬운 모든 가능한 비트 열의 중첩으로 시작하면 모든 입력은 1 의 동일한 진폭으로 시작됩니다. (여기서은 검색중인 비트 문자열의 길이이므로 사용중인 큐 비트 수)입니다. 그러나 우리는 오라클 적용하는 경우, 우리가 의지 변화를 찾고있는 상태의 진폭 .
이것은 쉽게 관찰 할 수있는 차이가 아니므로이를 증폭시켜야합니다. 이를 위해 Grover Diffusion Operator , 합니다. 이 연산자의 효과는 기본적으로 각 진폭이 평균 진폭과 어떻게 다른지 살펴보고이 차이를 반전시키는 것입니다. 따라서 특정 진폭이 평균 진폭보다 일정량 더 크면 평균보다 적은 양이되고 그 반대도 마찬가지입니다.
특히 비트 문자열 의 중첩이있는 경우 확산 연산자는 효과가 있습니다.
여기서 는 평균 진폭입니다. 따라서 모든 진폭 는 됩니다. 왜 이것이 효과가 있는지, 어떻게 구현하는지 알아 보려면 강의 노트를 참조하십시오 .
대부분의 진폭은 평균보다 조금 더 클 것입니다 (단일 − 1 의 효과로 인해) )이므로이 연산을 통해 평균보다 작은 비트가됩니다. 큰 변화는 아닙니다.
우리가 찾고있는 주가 더 강하게 영향을받을 것입니다. 진폭은 평균보다 훨씬 작으므로 확산 연산자를 적용한 후 평균이 훨씬 커집니다. 따라서 확산 연산자의 최종 효과는 진폭이 1 인 스키밍 상태에 간섭 효과를 유발하는 것입니다. 모든 잘못된 답변에서와 오른쪽 하나에 추가합니다. 이 과정을 반복함으로써 우리는 솔루션을 식별 할 수있을 정도로 많은 솔루션을 제공 할 수있는 지점으로 빠르게 이동할 수 있습니다.
물론,이 모든 것은 모든 작업이 확산 연산자에 의해 수행되었음을 보여줍니다. 검색은 우리가 연결할 수있는 응용 프로그램 일뿐입니다.
너무 기술적이지 않고 통찰력을 얻는 데 유용한 그래픽 접근 방식을 발견했습니다. 입력이 필요합니다 :
이 마지막 작업은 표시된 항목을 -1 단계로 표시 할 수있는 작업입니다. 상태를 정의 할 수도 있습니다 에 직교 될 | X ⟩ 있도록 { | X ⟩ , | ψ ⊥ ⟩ } 의 범위에 대한 정규직 교 기초를 형성 { | X ⟩ , | ψ ⟩ } . 정의한 두 작업 모두이 공간을 유지합니다. { | X ⟩ , | ψ ⊥ ⟩ }범위 내에서 상태를 반환합니다. 또한 둘 다 단일이므로 입력 벡터의 길이가 유지됩니다.
2 차원 공간 내에서 고정 길이의 벡터는 원의 원주로 시각화 될 수있다. 자, 및 | X ⟩ .