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


18

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

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

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

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

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

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

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


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

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

답변:


9

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

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

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

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

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

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


7

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

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

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


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

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

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

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

우리는 물품 따라서 경우 다음 복잡성 질의 최적화 알고리즘이 주어진 총 함수 대 , 복잡도와 시간 최적의 알고리즘이있다 와 와 . 다시 말해 총 함수에 대한 쿼리 최적화 알고리즘과 시간 최적화 알고리즘 간의 쿼리 복잡도를 기하 급수적으로 분리 할 수는 없습니다. 이러한 느슨한 경계가 개선 될 수 있다면 놀라지 않을 것입니다.( 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.