Grover 알고리즘을위한 Oracle Construction


16

Mike와 Ike의 "Quantum Computation and Quantum Information"에서 Grover의 알고리즘에 대해 자세히 설명합니다. 그러나 그 책과 그로버 알고리즘에 대해 온라인에서 찾은 모든 설명에서, 우리가 어떤 상태를 찾고 있는지 알지 못한다면 그로버의 오라클이 어떻게 구성되어 있는지에 대한 언급이없는 것 같습니다. 연산. 특히, 내 질문은 이것입니다 : 일부 x 값, f (x) = 1, f (x) = 0 인 일부 f (x)가 주어지면 우리를 가져올 오라클을 어떻게 구성합니까? 초기 임의 상태 | x> | y>에서 | x> | y + f (x)>로? 가능한 한 명백한 세부 사항 (아마도 예?)이 크게 감사하겠습니다. Hadamard, Pauli 또는 기타 표준 양자 게이트를 사용하여 임의의 기능에 대한 이러한 구성이 가능한 경우,


"여기서 우리가 어떤 상태를 찾고 있는지 알지 못한다면 알고리즘의 목적을 무너 뜨리는 그로버의 오라클이 어떻게 구성되어 있는지에 대한 언급이없는 것 같습니다."... "그로버의 오라클"은 해결해야 할 문제입니다. 당신은 그것을 구성하지 않습니다. 당신은 그것에 접근 (오라클 액세스)하고 가치를 발견하기 위해 계산을 수행하도록 요청했습니다. 도움이된다면, 척 내가 물어 후 오라클을 구성하고, 당신이 문제를 해결하기 위해. (또한 항목 의 데이터베이스를 읽거나 쓰거나 준비하는 것이 Grover를 실행하는 것보다 오래 걸립니다 NN
time

2
그러나 오라클 대신 오라클에 f (x)를 주면 어떨까요? 3-SAT 문제를 해결하고 Grover를 사용하여 솔루션 속도를 높이고 싶다고 상상해보십시오. 우리는 문제의 f (x) (3-SAT 진리 절)를 알고 있지만 3-SAT에 꽂을 때 어떤 비트 문자열 x가 실제 결과를 산출 할 것인지 반드시 알 필요는 없습니다. 올바른 비트 문자열을 찾기 위해 3-SAT 함수에서 오라클을 구성하는 방법이 없어야합니까? 다른 사람이 제공해야 할 것이 없다면, Grover의 알고리즘은 인공적인 것 같습니다. 단순히 당신에게 주어진 운동입니다.
Will

답변:


20

오라클은 기본적으로 만족스러운 솔루션을 찾고자하는 술어의 구현입니다.

예를 들어, 3 토 문제가 있다고 가정하십시오.

(¬x1 ∨ ¬x3 ∨ ¬x4) ∧
    (x2 ∨ x3 ∨ ¬x4) ∧
    (x1 ∨ ¬x2 ∨ x4) ∧
    (x1 ∨ x3 ∨ x4) ∧
    (¬x1 ∨ x2 ∨ ¬x3)

또는 각 행이 3 절인 테이블 형식에서 x는 "이 변수 false"를 의미하고 o는 "이 변수 true"를 의미하고 공백은 "in in clause"를 의미합니다.

1 2 3 4
-------
x   x x
  o o x
o x   o
x o x

이제 다음과 같이 입력이 솔루션인지 계산하는 회로를 만드십시오.

솔루션 검사기

이제 회로를 오라클로 전환하려면 Z 게이트로 출력 비트를 누르고 가비지를 계산하지 마십시오 (예 : 계산 회로를 역순으로 실행).

오라클 회로

그것이 전부입니다. 술어를 계산하고 결과를 Z로 적중하고 술어를 계산 해제하십시오. 오라클입니다.

오라클 단계로 확산 단계를 반복 하면 그로버 검색이 가능합니다 .

그로버 검색

... 솔루션이 적은 예제를 선택해야하지만 진행 상황이 점진적입니다 (예시와 같이 시작 상태 솔루션 상태 평면을 따라 단계 당 90도 이상 회전하는 대신).


감사합니다. 이것은 대단히 도움이되었습니다. 놀랍게도 명확하고, 내가 요청한 모든 것에 대답했습니다 (그리고 심지어 일반적인 양자 게이트를 사용했습니다!) | 0을 넣는 대신 Hadamard 게이트로 중첩시키기 전에 모든 시작 큐 비트를 | 1> 상태로 변경하기로 결정한 이유가 있습니까? > Hadamards를 통한 주 큐 비트 (즉, 이점이 있습니까)? 또한 확산 단계에서 어떤 작업이 수행됩니까? 제어 된 X처럼 보이지만 | 1> 또는 | 0>을 제어로 사용하고 있습니까?
Will

(12|012|1)n

환상적인 답변, algassert.com/quirk 에 대한 링크에 감사드립니다 !
Frédéric Grosshans
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.