양자 병렬 처리를 이용함으로써 함수를 계산할 수 있다는 것은 잘 알려져 있습니다. 많은 다른 가치를 위해 동시에. 그러나 각 값의 정보를 추출하려면 (예 : Deutsch의 알고리즘) 영리한 조작이 필요합니다.
반대의 경우를 생각해 우리가 계산하는 양자 병렬 처리를 사용할 수있는 많은 기능을 (예를 들어) 단일 값 대해 동시에 ?
양자 병렬 처리를 이용함으로써 함수를 계산할 수 있다는 것은 잘 알려져 있습니다. 많은 다른 가치를 위해 동시에. 그러나 각 값의 정보를 추출하려면 (예 : Deutsch의 알고리즘) 영리한 조작이 필요합니다.
반대의 경우를 생각해 우리가 계산하는 양자 병렬 처리를 사용할 수있는 많은 기능을 (예를 들어) 단일 값 대해 동시에 ?
답변:
정확한 답은 당신이 원하는 정확한 종류의 중첩에 달려 있습니다. 피라미드와 Niel의 답변은 모두 다음과 같은 것을 제공합니다.
여기에 다른 기능에 라벨을 붙이는 Niel을 따랐습니다 , 등 중첩하려는 총 함수 수로 또한 나는 함수의 일부 설명을 나타냅니다 저장된 프로그램으로. 그만큼 상태를 정규화하기 위해 필요한 숫자 만 있으면됩니다.
이것은 단순히 . 저장된 프로그램과 얽혀 있습니다. 저장된 프로그램을 추적해야한다면. 즉, 저장된 프로그램이 '쓰레기'를 구성 할 수 있으므로 신뢰할 수있는 간섭 효과를 방지 할 수 있습니다. 아니면 그렇지 않을 수도 있습니다. 이 중첩이 계산에 어떻게 사용되는지에 달려 있습니다.
쓰레기를 없애고 싶다면 더 까다로워집니다. 예를 들어, 원하는 것이 단일이라고 가정하십시오. 그 효과가
가능한 모든 입력 (나는 계산 기준으로 작성된 비트 문자열이라고 가정합니다). 함수가 입력보다 출력이 더 긴 경우를 대비하여 입력 측에 빈 큐 비트도 포함했습니다.
이로부터 우리는 함수가 만족해야하는 조건을 매우 빨리 찾을 수 있습니다. 입력 상태가 직교 세트를 형성하기 때문에 출력도 마찬가지입니다. 이렇게하면 이러한 방식으로 결합 할 수있는 기능의 종류가 크게 제한됩니다.
기능 다른 계산 브랜치에서 평가하려는 경우, 계산이 가능하도록 어떤 방식 으로든 지정 가능해야합니다 (예 : 일련의 고전적인 논리 게이트). 그리고 세트 계산하려는 함수 중 하나는 계산 가능해야합니다. 방법의 사양을 계산할 수 있어야합니다. 인수에 대해 계산해야합니다. 실제로 : 기능을 설명 할 수단이 있어야합니다.저장된 프로그램으로. (이것은 양자 계산을 고려하기 전에도 "하나의 함수 또는 모든 함수를 계산하는 문제" 입력에 "의미가 있습니다.)
함수를 저장된 프로그램으로 지정하는 방법이 있으면 기본적으로 수행됩니다. 프로그램은 본질적으로 다른 종류의 입력으로, 중첩으로 준비하고 계산을 통해 고정 입력 또는 입력 중첩을 평가할 수 있습니다. 각 분기의 사양에 따른 기능
그렇게함으로써 comptational 이점을 얻는 것은 다른 문제이며, 함수의 특정 구조를 포함해야합니다 질문을 이해하기에 충분한 정보가 있으면 간단히 "중첩 평가"를 활용할 수 있습니다.
기능을 제공하는 회로 설명 같이 그리고 회로주는 같이 이 작업을 수행하는 몇 가지 방법이 있습니다.
큐 비트 레지스터로 시작 , 주 준비 처음 두 레지스터에. 이는 첫 번째 레지스터에 1 을 적용하여 해당 레지스터를 상태 로 설정함으로써 수행 할 수 있습니다. CNOT를 적용하기 전에 . 그런 다음 신청하십시오 첫 번째 레지스터에서 세 번째 레지스터까지 두 번째에서 세 번째로.
1.1. 이것은 세 번째 레지스터가 현재 상태에 있음을 나타냅니다.초기 작업 (최대 )는 처음 두 레지스터의 반대입니다. 그러나 임의의 제어 된 단일 작업을 구현하는 데 어려움이 있고 (불필요하게 여분의 큐 비트를 사용하는) 일반적인 단일 전화 걸기를 통해 직접 구현하는 것이 더 쉬울 것입니다.. 이것은 구현하지 않습니다. ...도 아니다 새롭고 다른 기능
1.2. 처음 두 레지스터의 초기 동작을 반대로 바꾸지 않으면 세 번째가 얽힌 상태가됩니다. 과 다른 답변에서 논의됩니다.
상태로 시작 그리고 적용 첫 번째 레지스터에 두 번째로. 이는 두 기능이 동일한 상태의 사본에 독립적으로 적용되는 클래식 병렬 처리에 가장 가깝습니다. 큐 비트 수의 두 배를 요구하는 것 외에, 여기서 문제는 복제가 없기 때문에 복사하기 위해, 그것은 알려 지거나 고전적인 상태 여야한다 (즉, 계산 기초에서 중첩을 포함하지 않아야 함). 대략적인 복제 도 사용할 수 있습니다.
상태로 시작 뿐만 아니라 클래식 레지스터. 단일 적용 1 중첩 상기 제 1 레지스터를 넣어. 이제이 레지스터를 측정 하고 (클래식 레지스터에 결과 입력) 클래식 작업을 적용하십시오 IF RESULT = 0 U_f ELSE U_g
. 이것은 위의 작업 중 어느 것보다 강력하지 않은 것처럼 보일 수 있지만 이것은 양자 채널과 동등한 의미입니다.. 이러한 방법은 무작위 단일화를 만드는 데 사용될 수 있으며, 예를 들어 boson 샘플링 및 무작위 벤치마킹에 적용 할 수 있습니다.
에 의해 주어진 1