병렬 프로세스를 실행하여 Grover 알고리즘을 가속화 할 수 있습니까?


10

클래식 컴퓨팅에서는 병렬 컴퓨팅 노드를 최대한 많이 실행하여 키 검색 (예 : AES)을 실행할 수 있습니다.

많은 Grover 알고리즘도 실행할 수 있습니다.

내 질문은 ; 클래식 컴퓨팅에서와 같이 하나 이상의 Grover 알고리즘을 사용하여 속도를 높일 수 있습니까?

답변:


6

확실히! 당신이 가지고 있다고 상상해보십시오K=2k 검색 오라클의 사본 US사용할 수 있습니다. 일반적으로 작업을 반복하여 검색합니다.

Hn(In2|00|n)HnUS,
초기 상태에서 시작 (H|0)n. 시간이 걸립니다Θ(N). (사용하고 있습니다In 를 나타내는 2n×2n 단위 행렬.)

이것을 다음으로 바꿀 수 있습니다 2k 각각에 의해 색인 된 병렬 사본 x{0,1}k을 사용하여

(IkH(nk))Ik(Ink2|00|(nk))(IkH(nk))US
그리고 주에서 시작 |x(H|0)(nk) 이를 실행하는 데 필요한 시간은 O(N/K)요구하는 비용으로 K 배 더 많은 공간.

스케일링의 관점에서, 이것은 관련이없는 결과로 간주 될 수 있습니다. 고정 된 수의 오라클이 있다면K, 당신은 고정 (K) 개선 (있는 경우와 마찬가지로 K 병렬 클래식 코어에서 얻을 수있는 최선의 개선은 K)이며 배율을 변경하지 않습니다. 그러나 기본 실행 시간이 변경됩니다. 우리는 Grover의 알고리즘이 정확히 최적이라는 것을 알고 있습니다. 단일 oracle로 가능한 최소 시간이 필요합니다. 그래서, 당신이 얻을 알고K 시간의 향상은 특정 값에서 특정 실행 시간의 벤치 마크와 관련하여 유용합니다. N.


그러나 이렇게하면 클래식 성능과 비교할 때 그 의미를 잃지 않습니까? 결국, 당신은 또한 주어진 여부를 확인하는 작업을 실행하여 클래식 검색 속도를 높일 수 있습니다x모든 입력에 대한 병렬 대상입니다. 이를 위해서는 가용 한 자원에 대한 추가적인 가정이 필요하지만, 당신의 주장에서 같은 종류의 가정이 필요합니다
glS

1
N 무한대로 간다 K하지 않습니다. 문제는 커지지 만 리소스는 거의 남아 있지 않습니다.
AHusain

1
이 답변은 정확합니다 (DaftWullie가 경고하는 것처럼 최적이 아닐 수도 있음). 이것은 고전적인 회로 복잡성에서와 마찬가지로 병렬화와 동일합니다. 병렬화로 인해 속도를 높이려면 회로 깊이를 살펴보십시오 (여러 프로세스를 조정해도 전체 작업 이 줄어들지 않기 때문에 ). 경우에도 중요하지 않습니다K병렬화를 통한 깊이 개선에 관심이 있거나 그렇지 않은 경우입니다. 양자 계산 자체와 마찬가지로 문제에 더 많은 컴퓨터를 던지기 만해도 모든 것이 마술처럼 빠르지는 않습니다!
Niel de Beaudrap 8

3

어떤 의미에서, 다른 노드에서 병렬로 수행하면 실행 시간을 절약 할 수 있습니다. 그러나 복잡성 (일반적으로 속도 향상이라고 함)에 대해 이야기한다면 약간의 분석이 필요합니다.

당신은 우리가 필요로한다는 것에 동의합니다 N병렬이 아닌 경우에 대한 작업. 두 개의 노드가 있고 N 개의 요소 목록을 두 개의 크기 목록으로 구분N1,N2. 하위 목록을 검색하면N1,N2.

그러나 우리는

N=N1+N2N1+N2

그리고 병렬 프로세스에서 반환되는 결과 중 원하는 결과가 어떤 것인지 확인해야합니다. 복잡성에 상수를 추가하여 일반적으로O 표기법.

그러나 큐 비트의 수나 다른 제한이 제한되어 있기 때문에 하드웨어를 클러스터링해야하는 경우 특히 흥미로울 것입니다.


2
N1 = N2의 경우 여전히 불평등입니다. sqrt (2) * sqrt (N1) <2 * sqrt (N1)
Mariia Mykhailova

아 참으로 내 머리 속에는 $ \ sqrt {a b} = \ sqrt {a} \ sqrt {b} $ 생각했습니다. 자정과 피곤할 때 여기에 답을 멈춰야합니다. 지적 해 주셔서 감사합니다.
cnada

3
@cnada : 두 가지 다른 복잡성 개념이 있으며 둘 다 속도 향상과 관련이 있습니다. 하나는 크기 복잡성이고 다른 하나는 깊이 복잡성입니다. 달리 명시되지 않는 한, 우리는 종종 크기 복잡성을 고려하는 것을 선호하지만, 깊이 복잡성은 여전히 ​​양자 계산 복잡성에 매우 관심이있는 것으로, 예를 들어 MBQC [arXiv : quant-ph / 0301052 , arXiv : 0704.1736 ] 및 최근 결과 무조건 깊이 분리 [arXiv : 1704.00690 ].
Niel de Beaudrap

@NieldeBeaudrap 사람들이 깊이 복잡성을 더 많이 생각한다고 생각했습니다. 그러나 Grover의 경우 크기와 깊이의 복잡성은 거의 동일합니다. 그것은 문제의 크기에서 2 차적입니다 (일반적으로 N 요소 목록의 크기로 나타납니다). 내 접근 방식이 옳지 않다고 생각하십니까?
cnada

2
당신은 잘못된 것을 말하지 않고 , 단지 당신이 크기 복잡성을 과도하게 강조하고 깊이 복잡성의 이점을 실제로 발휘하지 못한다는 것을 지적하고 있습니다. 당신이 할 경우별로 흥미롭지 않습니다kO(1) 병렬 Grover 프로세스이지만 DaftWullie의 답변에서 알 수 있듯이 고전적인 사후 처리를 고려할 때 깊이 복잡성은 Nlog(k)N/k ...에 대한 k(N)Ω(1) 병렬 그로버 프로세스 k/log(k)(로그 요소는 어떤 프로세스가 솔루션을 찾았는지 식별하는 데 있습니다).
Niel de Beaudrap
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.