소개 :
충돌 문제 는 Scott Aaronson이 박사 학위 논문에서 설명한 2 대 1 버전 을 가장 자주 언급합니다 . 주어진 짝수이고, 함수 F : { 1 , . . . , N } → { 1 , . . . , n } f 는 일대일 또는 2 대 1 임을 미리 알고 있습니다. 모든 i i { 1 , 2에 대해 f ( i ) 값에 대해서만 쿼리 할 수 있습니다.nf:{1,...,n}→{1,...,n}ff(i) . 문제는 f 가 일대일인지,일대일인지를 확실하게 결정하기 위해 얼마나 많은 쿼리를해야하는지 묻습니다.i∈{1,2,...,n}f
2 대 1 버전을 결정적으로 해결하려면 쿼리 가 필요 하며 일반적으로 r 대 1 기능을 1 대 1 기능과 구별하려면 n / r + 1 쿼리 가 필요 합니다.n/2+1n/r+1
결정 론적 클래식 솔루션 :
이것은 비둘기 구멍 원리를 간단하게 적용한 것입니다. 함수가 r-to-1이면 쿼리 후에 충돌이 발견됩니다. 함수가 일대일이면 충돌이 없습니다. 운이 좋지 않으면 n / r 쿼리가 별개의 답변을 반환 할 수 있습니다. 따라서 n / r + 1 개의 쿼리가 필요합니다.n/r+1n/rn/r+1
무작위 고전 솔루션 :
임의성을 허용하면 문제가 더 쉽습니다. 생일 역설에 따르면 무작위로 (명확한) 쿼리를 선택하면 높은 확률로 Θ ( √ 후 고정 된 2 대 1 함수에서 충돌을 찾습니다.
검색어Θ(n−−√)
양자 BHT 솔루션 :
직관적으로, 알고리즘은
(고전적인) 무작위성을 사용하여 생일 역설의 제곱근 속도 향상과 Grover의 (양자) 알고리즘의 제곱근 속도 향상을 결합합니다.
n1/3ffffn2/3fO(n2/3−−−−√)=O(n1/3)f