시간과 쿼리 복잡성 간의 균형


18

시간 복잡성이나 회로 하한선으로 직접 작업하는 것은 무섭습니다. 따라서 쿼리 복잡성 (또는 의사 결정 트리 복잡성)과 같은 도구를 개발하여 하한을 처리합니다. 각 쿼리는 하나 이상의 단위 단계를 수행하고 쿼리 간 계산은 무료로 계산되므로 시간 복잡도는 쿼리 복잡도만큼이나 높습니다. 그러나 분리에 대해 말할 수 있습니까?

고전 또는 양자 문헌에서의 작업에 대해 궁금하지만 QC의 사례를 더 잘 알고 있습니다.

Grover의 검색 및 Shor의 기간 찾기와 같은 일부 유명한 알고리즘에서 시간 복잡도는 쿼리 복잡성의 다중 로그 요소 내에 있습니다. 숨겨진 부분 군 문제와 같은 다른 사람들에게는 다항식 쿼리 복잡성 이 있지만 다항식 시간 알고리즘은 알려져 있지 않습니다.

시간과 쿼리 복잡성간에 차이가있을 수 있으므로 최적의 시간 복잡성 알고리즘이 쿼리 복잡성 알고리즘과 동일한 쿼리 복잡성을 가져야한다는 것은 분명하지 않습니다.

시간과 쿼리 복잡성간에 절충의 예가 있습니까?

가장 잘 알려진 시간 복잡성 알고리즘이 가장 잘 알려진 쿼리 복잡성 알고리즘과 다른 쿼리 복잡도를 갖는 문제가 있습니까? 다시 말해, 쿼리 간 작업을보다 쉽게하기 위해 더 많은 쿼리를 수행 할 수 있습니까?

아니면 무조건 최상의 시간 복잡성을 갖는 구현을 갖는 무증상 최적 쿼리 알고리즘의 버전이 항상 존재한다는 것을 보여주는 논증이 있습니까?


자연적인 문제를 원하십니까? 아니면 인공적인 문제도 괜찮습니까?
로빈 코타 리

2
자연 문제가 선호되지만 인공 문제는 대답이없는 것보다 낫습니다.
Artem Kaznatcheev

답변:


9

다음과 같은 속성을 가진 인공 함수를 작성하려는 시도가 있습니다.

  • 쿼리로 문제를 해결할 수 있지만 시간이 필요합니다 .exp ( n )O(logn)exp(n)
  • 시간으로 문제를 해결할 수 있지만 쿼리 가 필요 합니다O ( n )O(n)O(n)

입력 크기를 . 첫 번째 비트 (이 문자열 x라고 함)를 입력하여 EEXP에 대해 완료된 문제로 입력을 인코딩하십시오. 다음 비트 (이 문자열 y라고 함)는 x가 EEXP 완료 문제의 NO 인스턴스 인 경우에만 모두 0이라는 속성을 갖습니다.로그 n nn+lognlognn

즉, 첫 번째 비트는 어려운 문제를 인코딩하고 다음 비트는 문제의 해결 방법에 대한 실마리를 제공합니다. 그러나 비트 문자열을 보고 솔루션을 찾으 려면 쿼리를 작성하십시오.n n Ω ( n )lognnnΩ(n)

따라서이 문제는 첫 번째 비트 만 읽고 exp (n) 시간을 소비하거나 비트 를 읽고 선형 시간 만 사용하여 해결할 수 있습니다 .nlognn

양자 쿼리 복잡성에 대해 동일한 기능을 수행합니다. 필요한 경우 제곱근 기호를 삽입합니다.


7

로빈의 예의 더 극단적 인 버전 :

튜링 머신 인코딩하는 첫 번째 비트 (이 문자열 ) 와 함께 입력 크기를 으로 설정합니다 . 일부 함수 수정하십시오 . 튜링 기계 가 단계 미만으로 정지 되면 문자열의 마지막 비트를 합니다. 문제가 있는지 확인 후이다 미만 정지하고 단계 의 패리티 짝수이다.n - 1 x T x f ( n ) 1 T x f ( n ) T x f ( n ) xnn1xTxf(n)1Txf(n)Txf(n)x

따라서 쿼리를 작성하면 시간 에 문제를 해결할 수있는 반면 쿼리를 작성하면 시간 에 문제를 해결할 수 있습니다 .n1O(f(n))nO(n)


당신은 아마도 마지막 비트는 x의 패리티가 Turing 머신이 제 시간에 멈추는 경우에도 마찬가지라는 것을 의미했을 것입니다 (그렇지 않으면 질문은 하나의 쿼리 만 필요합니다). 이것은 훌륭하며 시간과 쿼리 사이에 원하는 종류의 분리를 제공하도록 수정할 수 있습니다. 및 함수를 고려한 다음 의 첫 번째 비트를 터닝 머신의 설명으로 설정하십시오. 비트 의 다른 이 패리티 가 심지어 가 단계 미만으로 . 그런 다음 대 쿼리를g(n)=ω(1)g(n)<ng(n)xng(n)xxTxf(n)>ng(n)nΘ(f(n)) 대 . n
Artem Kaznatcheev

내 이전 의견의 첫 문장을 무시하십시오.
Artem Kaznatcheev

7

나는 Robin Kothari의 답변과 Joe Fitzsimons의 수정을 좋아합니다. 응답의 명백한 확장으로 그들은 더 작고 더 큰 쿼리 복잡성과 더 크고 더 작은 시간 복잡성 사이의 분리 비율 (상수 대 비 상수 제외)을 달성 할 수 있습니다. 그러나 기능을 비 부분적으로 만드는 명확한 방법은 없습니다. 분리가있는 자연적인 문제를 지적하고 큰 분리가 전체 기능을 수행하기 어렵다는 것을 보여주고 싶습니다.


자연스러운 문제

Ben Reichardt는 이메일로 공식 평가 문제를 지적했습니다. 변수 에 대한 일반적인 1 회 읽기 AND-OR 공식을 평가하기위한 양자 쿼리 복잡도 는 입니다. 그러나 -쿼리 알고리즘은 시간 효율적이지 않습니다. 여기 에서 가장 빠른 알려진 알고리즘은 쿼리를 만들고 시간이 다항식으로 나쁘게 실행되는 것으로 표시됩니다. 따라서 우리는 알려진 분리가있는 자연적인 총체적인 문제가 있습니다. 이 분리가 존재해야한다는 증거는 없지만.nΘ(n)O(n)O(nlogn)

전체 기능을 분리하기가 더 어렵습니까?

나에게, 입증 가능한 분리로 전체 기능을 찾기가 더 어려워 보입니다. 총 함수와 부분 함수의 경우가 다르다는 것을 보여주기 위해 총 함수에 대한 쿼리 최적화 알고리즘과 시간 최적화 알고리즘의 쿼리 복잡성 사이의 최대 분리에 대한 논쟁을 제공 할 것입니다.

Simon의 [1] 하한을 사용하여 함수가 개의 변수 에 의존하는 경우 최소 를 쿼리해야 함을 알 수 있습니다. 다른 한편으로, 우리가 쿼리 할 가장 많은 것은 입니다. 모든 변수 를 쿼리 할 이유가 없습니다 . 출력은 변수의 독립 비트를 호출 함)과 무관 하므로 전체 함수의 경우 해당 불감 비트를 보면 비밀 구조가 표시되지 않습니다. 따라서 데드 비트가 모두 이라고 가정하면 총 함수에 대해 가장 시간이 최적화 된 알고리즘조차도 최대 쿼리 를 사용하도록 수정할 수 있습니다 .mΩ(logm)mnnmm0

우리는 물품 따라서 경우 다음 복잡성 질의 최적화 알고리즘이 주어진 총 함수 대 , 복잡도와 시간 최적의 알고리즘이있다 와 와 . 다시 말해 총 함수에 대한 쿼리 최적화 알고리즘과 시간 최적화 알고리즘 간의 쿼리 복잡도를 기하 급수적으로 분리 할 수는 없습니다. 이러한 느슨한 경계가 개선 될 수 있다면 놀라지 않을 것입니다.( Q 1 ( N ) , t (1) ( N ) ) ( Q 2 ( N ) , t (2) ( N ) ) (Q) 2 ( N ) F ( Q 1 ( N ) ) F ( N ) = O ( 2 N )(query complexity,time complexity)(q1(n),t1(n))(q2(n),t2(n))q2(n)f(q1(n))f(n)=O(2n)

[1] HU Simon, "병렬 RAM이 비 회생 부울 함수를 계산하기 위해 시간이 촉박 한 Z (loglogn)": Symp. 계산 이론의 기초, 컴퓨터 과학 강의 노트, Vol. 158, Springer, Berlin, 1983, 439–444 쪽.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.