도이치–조사 알고리듬

도이치–조사 알고리듬은 1992년 데이비드 도이치와 리처드 조사가 제안하고 1998년 리차드 클리브, 아서 에케르트, 키아라 맥카벨로 및 마이클 모스카가 개선한 결정론적 양자 알고리듬이다. 현재 실용성은 거의 없지만, 가능한 결정론적 고전 알고리듬보다 기하급수적으로 빠른 양자 알고리듬의 첫 번째 예 중 하나로 역사적인 의미가 있다. 도이치-조사 알고리듬으로 푸는 문제는, 양자 알고리듬에는 쉽고 결정적 고전 알고리듬에는 어렵도록 의도적으로 설계된 문제이다. 이는 양자 컴퓨터로 오류 없이 효율적으로 해결할 수 있는 블랙박스 문제인 반면, 결정론적 고전 컴퓨터는 문제를 해결하기 위해 블랙박스에 대한 기하급수적인 쿼리가 필요하다. 보다 자세히 설명하면, 양자 컴퓨터에서 다항식 시간 내에 정확하게 해결할 수 있는 문제 클래스인 EQP와 P가 다른 것과 관련하여 오라클을 생성한다. 이 문제는 확률적 고전 컴퓨터에서 해결하기 쉽기 때문에 확률적 고전 컴퓨터에서 다항식 시간의 유계 오류로 해결할 수 있는 문제 클래스인 BPP와 오라클 분리를 생성하지 않는다. 반면에, 사이먼 문제는 BQP와 BPP 사이에 오라클이 분리되는 문제의 예이다. 도이치-조사 문제에서 다음 함수를 구현하는 오라클로 알려진 블랙박스 양자 컴퓨터가 주어져 있다: f : { 0 , 1 } n → { 0 , 1 } {\displaystyle f\colon \{0,1\}^{n}\rightarrow \{0,1\}} 이 함수는 n {\displaystyle n} 비트 이진수를 0 {\displaystyle 0} 또는 1 {\displaystyle 1} 로 보낸다. 이 함수는 상수 함수(정의역 전체에서 0 {\displaystyle 0} 또는 정의역 전체에서 1 {\displaystyle 1} )이거나 균형 함수 (정확히 정의역의 원소들 절반에 대해 1 {\displaystyle 1} , 나머지 절반에 대해 0 {\displaystyle 0} )이다. 이때, 도이치-조사 문제는, 오라클을 사용하여 f {\displaystyle f} 가 상수 함수인지 균형 함수인지 판단하는 것이다. 기존의 결정론적 알고리듬의 경우 n {\displaystyle n} 비트에 대해, 최악의 경우 f {\displaystyle f} 를 계산해야하는 횟수는 지수함수적으로 증가한다. 반면에 함수가 균형 함수이고 처음 두 출력 값이 다른 경우 최상의 경우가 발생한다. 기존의 무작위 알고리듬의 경우, 충분히 큰 k {\displaystyle k} 에 대해 f {\displaystyle f} 를 k {\displaystyle k} 번 계산하면 높은 확률로 정답을 생성한다.( k ≥ 1 {\displaystyle k\geq 1} 에 대해 ϵ ≤ 1 / 2 k {\displaystyle \epsilon \leq 1/2^{k}} 확률로 실패). 하지만, 오류 가능성이 없는 답을 원할 경우 필요한 f {\displaystyle f} 계산의 횟수는 여전히 지수함수적이다. 그러나, 도이치-조사 양자 알고리듬은 f {\displaystyle f} 에 대한 계산 한 번으로 항상 올바른 답을 내놓는다. 도이치-조사 알고리듬은 n = 1 {\displaystyle n=1} 인 경우에만 해를 제공했던 다음 데이비드 도이치의 초기(1985)작업"입력이 1비트인 불 함수 f : { 0 , 1 } → { 0 , 1 } {\displaystyle f:\{0,1\}\rightarrow \{0,1\}} 가 주어졌을 때, 이 함수가 상수 함수인가?" 을 일반화 하였다. 도이치가 원래 제안한 알고리듬은 사실 결정론적이지 않았다. 알고리듬은 절반의 확률로 성공했다. 1992년에 도이치와 조사는 n {\displaystyle n} 비트 입력을 가진 함수로 일반화된 결정적 알고리듬을 만들었다. 도이치의 알고리듬과 달리, 이 알고리듬에는 하나가 아닌 두 개의 함수 계산이 필요했다. 도이치-조사 알고리듬에 대한 추가 개선 사항은 클레브와 다른 사람들에 의해 이루어졌다. 이들은 도이치-조사 알고리듬을 결정론적이며 f {\displaystyle f} 의 쿼리 하나만 필요한 알고리듬으로 만들었다. 그러나 알고리듬의 이름은 도이치와 조사가 사용한 획기적인 방법을 기리기 위해 여전히 도이치-조사 알고리듬이라고 한다. 도이치-조사 알고리듬이 작동하려면 x {\displaystyle x} 에서 f ( x ) {\displaystyle f(x)} 값을 계산하는 오라클 계산은 x {\displaystyle x} 결어긋남이 없는 양자 오라클이어야 한다. 또한 x {\displaystyle x} 의 사본을 만들면 안된다. 만약 복제가 된다면 양자역학의 복제 불가능성 정리를 위반 하기 때문이다. 알고리듬은 n + 1 {\displaystyle n+1} 큐비트가 | 0 ⟩ ⊗ n | 1 ⟩ {\displaystyle |0\rangle ^{\otimes n}|1\rangle } 인 상태에서 시작한다. 즉, 처음 n {\displaystyle n} 큐비트는 각각 상태 | 0 ⟩ {\displaystyle |0\rangle } 에 있고 마지막 큐비트는 | 1 ⟩ {\displaystyle |1\rangle } 인 상태이다. 그 다음, 각 큐비트에 아다마흐 변환을 적용 해서 다음 상태를 얻는다: 1 2 n + 1 ∑ x = 0 2 n − 1 | x ⟩ ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle {\frac {1}{\sqrt {2^{n+1}}}}\sum _{x=0}^{2^{n}-1}|x\rangle (|0\rangle -|1\rangle )} . 이때, f {\displaystyle f} 는 양자 오라클로 구현되었다고 가정한다. 이 오라클은 상태 | x ⟩ | y ⟩ {\displaystyle |x\rangle |y\rangle } 를 | x ⟩ | y ⊕ f ( x ) ⟩ {\displaystyle |x\rangle |y\oplus f(x)\rangle } 로 보낸다. 여기서, ⊕ {\displaystyle \oplus } 는 2 {\displaystyle 2} 를 법으로 하는 덧셈을 나타낸다. 여기에 양자 오라클을 적용하면 다음을 얻는다: 1 2 n + 1 ∑ x = 0 2 n − 1 | x ⟩ ( | 0 ⊕ f ( x ) ⟩ − | 1 ⊕ f ( x ) ⟩ ) {\displaystyle {\frac {1}{\sqrt {2^{n+1}}}}\sum _{x=0}^{2^{n}-1}|x\rangle (|0\oplus f(x)\rangle -|1\oplus f(x)\rangle )} . 한편, x {\displaystyle x} 와 f ( x ) {\displaystyle f(x)} 는 각각 0 {\displaystyle 0} 또는 1 {\displaystyle 1} 이다. 이 두 가지 가능성을 시험하면 위의 상태가 다음과 같다는 것을 알 수 있다. 1 2 n + 1 ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) | x ⟩ ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle {\frac {1}{\sqrt {2^{n+1}}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}|x\rangle (|0\rangle -|1\rangle )} . 이 때, 마지막 큐비트 | 0 ⟩ − | 1 ⟩ 2 {\displaystyle {\frac {|0\rangle -|1\rangle }{\sqrt {2}}}} 는 무시할 수 있으며, 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) | x ⟩ {\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}|x\rangle } 부분만 고려하면 된다 다음으로, 첫 번째 큐비트에 아다마흐 변환을 적용하여 H ⊗ n | k ⟩ = 1 2 n ∑ j = 0 2 n − 1 ( − 1 ) k ⋅ j | j ⟩ {\displaystyle H^{\otimes n}|k\rangle ={\frac {1}{\sqrt {2^{n}}}}\sum _{j=0}^{2^{n}-1}(-1)^{k\cdot j}|j\rangle } (여기서 k ⋅ j {\displaystyle k\cdot j} 는 비트 곱들의 합 j 0 k 0 ⊕ j 1 k 1 ⊕ ⋯ ⊕ j n − 1 k n − 1 {\displaystyle j_{0}k_{0}\oplus j_{1}k_{1}\oplus \cdots \oplus j_{n-1}k_{n-1}} 이다.) 다음을 얻는다: 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) [ 1 2 n ∑ y = 0 2 n − 1 ( − 1 ) x ⋅ y | y ⟩ ] = ∑ y = 0 2 n − 1 [ 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ( − 1 ) x ⋅ y ] | y ⟩ . {\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}\left[{\frac {1}{\sqrt {2^{n}}}}\sum _{y=0}^{2^{n}-1}(-1)^{x\cdot y}|y\rangle \right]=\sum _{y=0}^{2^{n}-1}\left[{\frac {1}{2^{n}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}(-1)^{x\cdot y}\right]|y\rangle .} 이것으로부터 우리는 상태 k {\displaystyle k} 에 대한 확률이 | 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ( − 1 ) x ⋅ k | 2 {\displaystyle \left|{\frac {1}{2^{n}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}(-1)^{x\cdot k}\right|^{2}} 로 측정됨을 알 수 있다. | 0 ⟩ ⊗ n {\displaystyle |0\rangle ^{\otimes n}} 에 해당하는 k = 0 {\displaystyle k=0} 을 측정할 확률은 | 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) | 2 {\displaystyle {\bigg |}{\frac {1}{2^{n}}}\sum _{x=0}^{2^{n}-1}(-1)^{f(x)}{\bigg |}^{2}} 이다. f ( x ) {\displaystyle f(x)} 가 상수(보강 간섭)이면 위 상태는 1 {\displaystyle 1} 로 측정 되고, 균형 함수(상쇄 간섭)이면 0 {\displaystyle 0} 로 측정 된다. 즉, 오직 f ( x ) {\displaystyle f(x)} 가 상수 함수일 때 만 최종 측정 값이 | 0 ⟩ ⊗ n {\displaystyle |0\rangle ^{\otimes n}} (모두 0 {\displaystyle 0} )이다. 도이치 알고리듬은 일반 도이치-조사 알고리듬의 f : { 0 , 1 } n → { 0 , 1 } {\displaystyle f\colon \{0,1\}^{n}\rightarrow \{0,1\}} 에서 n = 1 {\displaystyle n=1} 일 때에 해당한다. f ( 0 ) = f ( 1 ) {\displaystyle f(0)=f(1)} 인지 확인 하는 것과 f ( 0 ) ⊕ f ( 1 ) {\displaystyle f(0)\oplus f(1)} 값을 확인하는 것은 같다. (여기서, ⊕ {\displaystyle \oplus } 제어된 NOT 게이트로 구현되었고 양자 XOR 게이트로 볼 수도 있는 2 {\displaystyle 2} 를 법으로 하는 덧셈이다.) 이 값이 0 {\displaystyle 0} 이면 f {\displaystyle f} 는 상수 함수고, 1 {\displaystyle 1} 이면 f {\displaystyle f} 는 균형 함수다. 2 {\displaystyle 2} 큐비트 상태 | 0 ⟩ | 1 ⟩ {\displaystyle |0\rangle |1\rangle } 에서 시작한다. 아다마흐 변환을 각 큐비트에 적용해서 다음을 얻는다: 1 2 ( | 0 ⟩ + | 1 ⟩ ) ( | 0 ⟩ − | 1 ⟩ ) . {\displaystyle {\frac {1}{2}}(|0\rangle +|1\rangle )(|0\rangle -|1\rangle ).} | x ⟩ | y ⟩ {\displaystyle |x\rangle |y\rangle } 를 | x ⟩ | f ( x ) ⊕ y ⟩ {\displaystyle |x\rangle |f(x)\oplus y\rangle } 로 보내는 함수 f {\displaystyle f} 의 양자 구현이 주어졌다고 가정한다. 이를 현재 상태에 적용하면 1 2 ( | 0 ⟩ ( | f ( 0 ) ⊕ 0 ⟩ − | f ( 0 ) ⊕ 1 ⟩ ) + | 1 ⟩ ( | f ( 1 ) ⊕ 0 ⟩ − | f ( 1 ) ⊕ 1 ⟩ ) ) {\displaystyle {\frac {1}{2}}(|0\rangle (|f(0)\oplus 0\rangle -|f(0)\oplus 1\rangle )+|1\rangle (|f(1)\oplus 0\rangle -|f(1)\oplus 1\rangle ))} = 1 2 ( ( − 1 ) f ( 0 ) | 0 ⟩ ( | 0 ⟩ − | 1 ⟩ ) + ( − 1 ) f ( 1 ) | 1 ⟩ ( | 0 ⟩ − | 1 ⟩ ) ) {\displaystyle ={\frac {1}{2}}((-1)^{f(0)}|0\rangle (|0\rangle -|1\rangle )+(-1)^{f(1)}|1\rangle (|0\rangle -|1\rangle ))} = ( − 1 ) f ( 0 ) 1 2 ( | 0 ⟩ + ( − 1 ) f ( 0 ) ⊕ f ( 1 ) | 1 ⟩ ) ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle =(-1)^{f(0)}{\frac {1}{2}}\left(|0\rangle +(-1)^{f(0)\oplus f(1)}|1\rangle \right)(|0\rangle -|1\rangle )} 를 얻는다. 마지막 큐비트와 전체 페이즈를 무시하므로 다음 항만 고려한다: 1 2 ( | 0 ⟩ + ( − 1 ) f ( 0 ) ⊕ f ( 1 ) | 1 ⟩ ) . {\displaystyle {\frac {1}{\sqrt {2}}}(|0\rangle +(-1)^{f(0)\oplus f(1)}|1\rangle ).} 이 상태에 아다마흐 변환을 적용하면 1 2 ( | 0 ⟩ + | 1 ⟩ + ( − 1 ) f ( 0 ) ⊕ f ( 1 ) | 0 ⟩ − ( − 1 ) f ( 0 ) ⊕ f ( 1 ) | 1 ⟩ ) {\displaystyle {\frac {1}{2}}(|0\rangle +|1\rangle +(-1)^{f(0)\oplus f(1)}|0\rangle -(-1)^{f(0)\oplus f(1)}|1\rangle )} = 1 2 ( ( 1 + ( − 1 ) f ( 0 ) ⊕ f ( 1 ) ) | 0 ⟩ + ( 1 − ( − 1 ) f ( 0 ) ⊕ f ( 1 ) ) | 1 ⟩ ) . {\displaystyle ={\frac {1}{2}}((1+(-1)^{f(0)\oplus f(1)})|0\rangle +(1-(-1)^{f(0)\oplus f(1)})|1\rangle ).} 여기서, f ( 0 ) ⊕ f ( 1 ) = 0 {\displaystyle f(0)\oplus f(1)=0} 임과 | 0 ⟩ {\displaystyle |0\rangle } 을 측정하는 것이 동치이고 f ( 0 ) ⊕ f ( 1 ) = 1 {\displaystyle f(0)\oplus f(1)=1} 임과 | 1 ⟩ {\displaystyle |1\rangle } 를 측정하는것이 동치이다. 따라서 확실하게 f ( x ) {\displaystyle f(x)} 가 상수 함수인지 아닌지 알 수 있다. 번스타인-바지라니 알고리듬 David Deutsch; Richard Jozsa (1992). “Rapid solutions of problems by quantum computation”. 《Proceedings of the Royal Society of London A》 439 (1907): 553–558. Bibcode:1992RSPSA.439..553D. doi:10.1098/rspa.1992.0167.  R. Cleve; A. Ekert; C. Macchiavello; M. Mosca (1998). “Quantum algorithms revisited”. 《Proceedings of the Royal Society of London A》 454 (1969): 339–354. arXiv:quant-ph/9708016. Bibcode:1998RSPSA.454..339C. doi:10.1098/rspa.1998.0164.  Simon, Daniel (November 1994). “On the Power of Quantum Computation”. 《94 Proceedings of the 35th Annual Symposium on Foundations of Computer Science》: 116–123. doi:10.1109/SFCS.1994.365701. ISBN 0-8186-6580-7.  Johansson, N.; Larsson, JÅ. (2017). “Efficient classical simulation of the Deutsch–Jozsa and Simon's algorithms”. 《Quantum Inf Process (2017)》 16 (9): 233. arXiv:1508.05027. Bibcode:2017QuIP...16..233J. doi:10.1007/s11128-017-1679-7.  David Deutsch (1985). “Quantum Theory, the Church-Turing Principle and the Universal Quantum Computer”. 《Proceedings of the Royal Society of London A》 400 (1818): 97–117. Bibcode:1985RSPSA.400...97D. doi:10.1098/rspa.1985.0070.  도이치-조사 알고리듬에 대한 도이치의 강의