Wiki는 다항식 시간 을 다음과 같이 정의합니다.
알고리즘은 실행 시간이 다항식 에 의해 상한선 인 경우 다항식 시간이라고합니다. 알고리즘에 대한 입력의 크기, 즉, 상수 $ k $에 대한 $ T (n) = O (n ^ k) $
I 일반적으로 다항식 시간 과 지수 시간 <의 차이를 이해합니다. / a>는 지수 함수가 다항식 함수보다 점근 적으로 ( 참조 ) 엄격하게 빠르게 증가한다는 것입니다.
핵심을 이해하려고합니다. 지수 시간 의 정의.
-
지수 시간 ?
- 다항식 에서 어떤 변경을해야합니까? 지수 시간 ? ( it 에 의해 처음에 알고리즘 정의를 언급하고 있습니다. 질문)
댓글
- 1. 기하 급수적으로 많은 일을하십시오. 2. 다항식을 기본의 거듭 제곱으로 사용합니다. > 1.
- 초를 이해하지 못합니다 ' 질문. 다항식은 다항식입니다. 지수는 지수입니다. 다항식을 지수로 만들기 위해 무엇을 변경해야하는지 묻는 것은 로그를 코사인으로 만들기 위해 무엇을 변경해야하는지 묻는 것과 같습니다.
- @DavidRicherby P = NP이면 지수 시간 함수가 있습니까? 다항식으로 지수 시간 함수를 어떻게 정의 할 수 있습니까?
- P = NP이면 지수 함수는 확실히 존재합니다. P = NP 인 경우에도 ' 기하 급수적 인 시간이 걸리는 문제가 아직있을 수 있지만 즉시 떠오르는 것은 없습니다. 지수 함수는 다항식으로 정의 할 수 있지만 그 다항식은 무한히 길어야합니다. 이에 관심이있는 경우 ' 테일러 확장을 찾아 볼 수 있습니다.
- @ymbirtt 시간 계층 정리 의 가장 쉬운 버전조차도 EXPTIME 완료 문제에 대한 다항식 시간 알고리즘이 없다고 말합니다. 이는 ' 무조건적인 결과입니다. ' P $ \ neq $ NP라는 가정에 의존하지 않습니다.
답변
-
조심해야 할 징후가 있지만이 질문에 대한 쉬운 답은 없습니다. . 예를 들어, 집합의 가능한 모든 하위 집합을 검사하는 것은 기하 급수적입니다. 따라서 정수 집합이 $ \ {x_1, …, x_n \} $이고 이들의 모든 하위 집합을 확인하여 합계가 있는지 확인하려면 $ 0 $까지 정확히 $ 2 ^ n $ 서브 세트를 고려해야하므로이 방법은 지수 시간이됩니다. 여러 가지 다른 트랩이 알고리즘을 지수 시간으로 만들 수 있으므로 광범위한 범주를 찾는 것보다 사례별로 알고리즘을 분석하십시오.
-
알고리즘이 완료하는 데 $ n ^ 2 $ 단계가 걸리면 다항식입니다. $ 2 ^ n $ 단계가 필요하면 지수입니다. 차이점은 $ n $의 위치입니다. $ n > 1 $, $ m > 0 $에 대해 $ O (n ^ m) $이면 고정 $ m $의 경우 $ n $의 다항식이지만 고정 $ n $의 경우 $ m $의 지수입니다.
댓글
- 주의하십시오. $ n ^ m $ 함수는 ' $ m $가 상수가 아닌 경우 $ n $에서 다항식이 아닙니다. 그리고 $ m $ 가 상수이지만 ' 함수가 해당 상수에서 지수 적이라고 말하는 것은 의미가 없습니다.
- 예, 당신은 ' 맞습니다. ' 명확하게 설명하겠습니다.
답변
문제를 고려하고 전체 검색 공간을 열거 할 때 기하 급수적 인 시간 무차별 대입 알고리즘을받는 경우가 많습니다. 일반적으로 하위 집합 문제를 생각합니다 (SAT에서는 다음 중 하위 집합을 선택합니다. true로 설정된 변수), 순열 문제 (TSP에서 모든 여행은 도시의 순열) 및 파티션 문제 (그래프 색상에서는 p 정점을 색상 클래스로 아티 션). 또는 정렬을 고려하십시오 : $ n $ 정수의 $ n! $ 순열이 있습니다. 모든 순열을 살펴보고 정렬되었는지 확인하십시오. 어리 석고 느리지 만 작동합니다.
댓글
- $ O (n!) $가 $ O ( k ^ n) $. ' 여전히 시간 복잡성에 대해 배우고 자하는 경우,이를 증명하는 데 유용한 정보가 될 수 있습니다.