"가장 최악의 사례"이외의 사례에 대한 복잡성 클래스


10

평균 사례의 복잡성과 관련하여 복잡성 클래스가 있습니까? 예를 들어, 예상되는 다항식 시간을 결정하는 데 문제가있는 명명 된 복잡성 클래스가 있습니까?

또 다른 질문은 아래에 예시 된 최상의 사례 복잡성을 고려합니다 .

결정 에 적어도 지수 시간이 필요한 일련의 (자연) 문제가 있습니까?

명확히하기 위해 EXP가 완료된 언어 고려하십시오 . 분명히 모든 인스턴스 가 지수 시간을 요구하는 것은 아닙니다 . 다항식 시간에서도 결정될 수있는 인스턴스가 있습니다. 따라서 의 가장 복잡한 경우 는 지수 시간이 아닙니다.L

편집 : 몇 가지 모호성이 생겼으므로 더 명확하게하려고합니다. "최상의 경우"복잡성이란 문제의 복잡성이 일부 기능에 의해 제한 되는 복잡성 클래스를 의미 합니다. 예를 들어, 일부 선형 지수보다 적은 시간 내에 결정될 수없는 언어 클래스로 BestE 를 정의 하십시오 . 상징적으로 은 임의의 Turing machine을 나타내고 , 및 은 자연수입니다.c n 0 n미디엄0

이자형에스이자형 ()(미디엄)[((미디엄)=)(0)(>0)(엑스{0,1})[(미디엄(엑스))2|엑스|]]

여기서 는 입력 에서 중지 되기까지 걸리는 시간을 나타냅니다 .M의 X(미디엄(엑스))미디엄엑스

우리는 모든 튜링 머신 이 그 힘에 관계없이 시간에 따라 선형 지수보다 적은 언어를 결정할 수 없기 때문에 그러한 종류의 문제를 정의하는 것은 매우 이상하다는 것을 인정 합니다.미디엄

그러나 모든 튜링 기계에는 시간이 필요하기 때문에 다항식 시간 대응 물 ( BestP )은 자연 스럽습니다.적어도 그 입력을 읽으십시오.|엑스|

추신 : 어쩌면 "모든 Turing machine "으로 정량화하는 대신 , 다항식 Turing 기계와 같은 미리 지정된 클래스의 Turing 기계로 제한해야합니다. 이런 식으로 와 같은 클래스를 정의 할 수 있습니다. 이 클래스는 다항식 튜링 머신에서 결정하기 위해 2 차 시간이 필요한 언어의 클래스입니다.B e s t ( n 2 )MBest(n2)

PS2 : 회로 복잡성 대응을 고려할 수도 있는데, 여기서 언어를 결정하기 위해 가장 작은 회로 크기 / 깊이를 고려합니다.


쉬운 SAT 사례가 있다고해서 예상되는 시간이 다항식이라는 의미는 아닙니다. 잘 모르겠습니다 ..
Lev Reyzin

@Lev Reyzin : SAT가 예상되는 시간에 있다는 것을 의미하지는 않았습니다. 저는 SAT가 쉬운 사례를 가지고 있기 때문에 "최상의 경우"복잡성은 어렵다고 말할 수 없습니다.
MS Dousti

아시다시피, 평균 사례 복잡성과 최상의 사례 복잡성은 두 가지 별도의 질문입니다! 어쨌든 나는 나의 첫 번째 독서에서 이것을 놓쳤다 – 나의 실수.
Lev Reyzin

나는 BestE에 대한 당신의 정의를 분석 할 수 없습니다. M과 x는 그들의 정량화 밖에 앉아 있습니다 ... 또한, 당신은 이 이 아닌 입력을 거부하기 를 원하지 않습니까? M
Ryan Williams

@Ryan : 결함을 지적 해 주셔서 감사합니다. 나는 그것을 고쳤다.
MS Dousti

답변:


13

정의를 구문 분석 할 수는 없지만 훨씬 더 강력한 시간 계층 구조, 특히 "거의 모든 곳"시간 계층 구조가 알려져 있음을 알아야합니다.

다음은 공식 성명은 다음과 같습니다 바인딩 모든 시간 , 언어가 올바르게 모든 결정 알고리즘 인식합니다 것을 그 속성 보다 점근 적으로 더 큰 시간에 실행해야합니다 충분히 적은 시간 동안 유한하게 많은 입력을 제외한 모든 입력에 대해 . L T I M E [ T ( n ) ] L t ( n ) t ( n )T(n)LTIME[T(n)]Lt(n)t(n)

"충분히 작은"은 합니다.t(n)로그()영형(())

우리가 선택한 가정 에 대한 예를, 하드 언어 구 . 그런 다음 을 올바르게 인식하는 알고리즘 은 특정 길이를 초과하는 모든 입력 에서 최소 시간이 걸립니다 . 이것은 클래스 BestE에서 찾고있는 것 같습니다. L L 2 , N / N (2)()=22/2

참고:

John G. Geske, Dung T. Huynh, Joel I. Seiferas : 거의 모든 곳에서 복잡한 집합과 결정 론적 시간-복잡한 클래스 분리에 대한 참고 사항 Inf. 계산. 92 (1) : 97-104 (1991)


고마워요 나는 당신이 내 질문을 아주 잘 이해했다고 생각합니다. 그리고 당신의 소개 문장 "나는 당신의 정의를 해석 할 수 없습니다"는 당신의 겸손의 표시
일뿐입니다

2
올바르게 추측했다면 다음과 같이 정의해야합니다. "L \ in BestE \ iff (\ exists c) (\ forall M) [(L (M) = L) \ Rightarrow (\ exists n_0) (\ forall n > n_0) (\ forall x \ in \ {0,1 \} ^ n) [T (M (x))> 2 ^ {c | x |})] "
Ryan Williams

그렇습니다. 마지막 순간에 정의를 편집하고 일부 수량자를 잘못 배치했습니다. 귀하의 정의에 따라 질문을 수정했습니다.
MS Dousti

12

평균 사례 복잡성의 다양한 개념을 다루려고 시도하는 많은 클래스가 있습니다. Complexity Zoo에서 관심있는 일부 클래스는 다음과 같습니다.

평균

HeurP

DistNP

(NP, P- 샘플링 가능)

Arora / Barak 는 distP, distNP 및 sampNP를 정의하는 많은 유사한 클래스 (18 장)를 다룹니다.

이 클래스들 사이의 정확한 관계는 Impagliazzo의 Five Worlds가 특징이며, 이전 에 다른 질문에서 질문했습니다 .

"최상의 경우"복잡성 질문에 관한 한, 나는 당신이 무엇을 의미하는지 잘 모르겠습니다. 당신이 찾고있는 사람이 있습니까 EXP ?

모든 인스턴스에서 최상의 사례 실행 시간으로 정의 된 복잡성 클래스를 의미하는 경우, 주어진 문제의 사소한 사례 만 살펴볼 것이기 때문에 우선 순위를 측정하는 것은 매우 복잡하지 않습니다.


잘 했어요! 이것이 질문의 평균 사례 복잡성 부분에 필요한 것입니다. "최고의 사례"부분과 관련하여, 나는 그 질문의 원래 진술이 모호하다는 것을 알아 차렸다. 내 잘못이야! 많이 편집 했으므로 다시 읽어보십시오.
MS Dousti

5

나는미디엄이자형[()]''¯=Σ이자형에스이자형이자형

(역사적 측면 : 면역 개념은 1944 년 P가 정의되기 훨씬 전에 계산 이론에서 Post에 의해 처음 개발되었습니다 . Post는 실제로 "간단한 집합"으로 간주됩니다-보완이 면역 인 경우 집합은 간단합니다. "면역"이라는 단어는 일반적으로 "계산 가능한 세트에 대한 면역"을 의미합니다.이 설정에서 모든 무한 ce 세트에는 무한한 계산 가능한 것이 포함되어 있기 때문에 면역은 "면역에서 ce 세트"와 동일합니다. 많은 사람들이 줄어드는 개념이지만, 맹세하지 못했습니다.)


미디엄미디엄(엑스)=1

''

1
@Sadeq : 고맙습니다. @Ryan : True (또는 몇 시간 전 : 그는 정의를 업데이트했습니다). 그러면 이중 면역 대신 면역이됩니다. 어느 쪽이든, 나는 주로 "면역"이라는 키워드를 지적하고 싶었습니다.
Joshua Grochow

2

알고리즘에 대해 이야기 할 때 문제가 아닌 다른 경우가 더 의미가 있습니다. 반면에 복잡성 클래스는 알고리즘이 아니라 문제에 관한 것입니다. 따라서 모든 알고리즘에서 복잡도 클래스는 항상 최악의 경우입니다.

복잡하게, 목표는 주어진 문제의 인스턴스를 해결하는 데 필요한 자원의 수를 아는 것입니다. 따라서 주어진 인스턴스와 알고리즘에 대해 이러한 리소스가 필요하다는 것을 알고 있습니다.

알고리즘 분석에서 목표는 알고리즘이 문제의 모든 인스턴스에서 자원의 상한을 갖도록하는 것입니다. 사소한 한계는 문제의 복잡성 등급입니다. 유용하지 않은 단계를 수행하는 알고리즘은 그보다 시간이 오래 걸리기 때문입니다. 그러나 알고리즘의 특정 사항을 감안할 때 범위를 향상시킬 수 있습니다.

예를 들어, mergesort를 분석한다고 가정 해 봅시다. 솔루션이 주어지면 다항식 시간으로 확인할 수 있으므로 정렬은 NP입니다. 그러나 분석하면이 값을 로 낮출 수 있습니다Θ

최선의 경우, 모든 문제가 필요한 최소한의 리소스를 찾는 것은 사소한 일입니다. 입력 길이가 O (n)이고 출력 길이가 O (m)라고 가정합니다. 그런 다음 최상의 경우를 위해 다음 TM M은 항상 O (n) + O (m)에서 실행됩니다.

M {입력, 인스턴스, 솔루션}

  1. 주어진 인스턴스와 머신에서 인코딩 된 인스턴스를 비교하십시오.
  2. 동일하면 인코딩 된 솔루션을 반환하십시오.
  3. 그렇지 않으면 무차별 검색을 수행하십시오.

-1

영형(1)


1
나는 그것이 문제에 대한 올바른 알고리즘으로 간주한다고 생각하지 않습니다. 그러나 알고리즘이 입력을 사전에 지정한 특정 인스턴스 (O (1) 시간)와 같은지 먼저 확인하도록 수정할 수 있습니다. 그렇다면 미리 계산 된 답변을 출력합니다. 그렇지 않은 경우 어떤 방법 으로든 주어진 인스턴스를 해결합니다. 그것에 대해, 생각 어떤 을 위해 O에서 올바른 알고리즘의 실행 (1) 시간 마다 우리가 다른 인스턴스에 대한 O 표기법 뒤에 다른 상수를 취할 수 있다면, 예. 따라서 문자 그대로의 "가장 복잡한 경우"가 유용하지 않은 이유입니다.
Ito Tsuyoshi

결정 론적이며 비 확률 적 인 계산에 대해 이야기하는 경우 두 인코딩의 인스턴스가 동일한 지 확인하는 데 선형 시간 (O (n) 시간)이 필요합니다. 입력 인코딩의 n 비트를 스캔하고 동일한 지 확인하십시오 프로그래밍 된 인코딩으로
Daniel Apon

2
@Daniel : 예. 그러나 인스턴스 중 하나가 고정 된 경우 고정 된 인스턴스의 길이에 따라 상수가 일정한 시간 만 걸립니다.
이토 쓰요시
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.