다항식 시간 알고리즘은 무엇입니까?


최상의 답변

Google은 당신의 친구입니다 : 시간 복잡성-Wikipedia

다항식 시간

알고리즘은 다항식 a에 의해 상한 인 경우 div> 다항식 시간 > 알고리즘에 대한 입력 크기, 즉 T ( n ) = 일부 양의 상수 k 에 대한 {\ displaystyle O (n ^ {k})}.

문제 복잡성 클래스 P 계산 복잡성 이론 분야의 중심입니다. Cobham의 논문 은 다항식 시간이 “처리 가능”, “실행 가능”, “효율적”또는 “빠름”의 동의어라고 말합니다.

다항식 시간 알고리즘의 몇 가지 예 :

  • <의 선택 정렬 정렬 알고리즘 / div> n 정수는 일부 상수 A 에 대해 {\ displaystyle An ^ {2}} 연산을 수행합니다. 따라서 {\ displaystyle O (n ^ {2})}이며 다항식 시간 알고리즘입니다.
  • 모든 기본 산술 연산 (더하기, 빼기, 곱하기, 나누기 및 비교)은 다항식 시간에서 수행 할 수 있습니다.
  • 그래프 최대 일치 항목 은 다항식 시간으로 찾을 수 있습니다.

알고리즘 입문 과 같은 텍스트를 사용하는 알고리즘과 같은 컴퓨터 과학의 몇 가지 전통적인 과정을 수강하는 것이 좋습니다 ( 일명 CLRS) Flon의 ACM 문서

이론과 실습을 통합하는 기본 CS 과정 은 Wulf, Shaw, Hilfinger 및 Flon의 고전 텍스트를 사용합니다. 컴퓨터 과학의 기본 구조 .

답변

다항식 p (x)를 다항식 d (x)로 나누면 p (x) = d (x) q (x) + r이되는 몫 q (x)를 찾습니다. (x) 여기서 r (x)는 우리의 나머지입니다.

r (x)가 ≥︎ n 차수를 가졌다 고 가정하면 d (x)가 n 차일 때까지 더 많이 변조 할 수 있습니다. r (x) ^ {*}의 차수가 d (x)보다 훨씬 작습니다.

p (x) = x ^ 4 + 1 및 d (x) = x ^ 2가 있다고 가정 해 보겠습니다.

x ^ 4 + 1 = x ^ 2q (x) + r (x)

분명히 q (x) = x ^ 2

x ^ 4 + 1 = x ^ 2 \ cdot {x ^ 2} + r (x) ⇒︎ r (x) = 1

이제 계속해서 q (x) = x 및 g라고 말할 수 있습니다. et :

x ^ 4 + 1 = {x \ cdot {x}} ^ 2+ (x ^ 4-x ^ 3 + 1)

r (x) = x ^ 4-x ^ 3 + 1?

하지만 이것은 우리가 원하는 것이 아닙니다!

이것은 정수의 나누기 / 나머지와 유사합니다 :

p = dq + r

7 = 2 \ cdot {3} +1은 맞습니다

7 = 1 \ cdot {3} +4는 완전히 나누지 않았으므로 바람직하지 않습니다. 우리가 가져야 할 것보다 더 큰 r을 남겼습니다.

다항식에도 동일한 개념이 적용되지만 완료되면 차수가 결정됩니다.

\ text {deg} r ( x) text {deg} d (x)

또는 등가 클래스 모듈로 d (x)에서 나머지를 가장 낮은 수준의 요소로 완전히 줄이지 않았거나 덜 수학적인 용어로 다음을 수행 할 수 있습니다. 실제로 주어진 다항식으로 mod out 할 때 동등한 다항식의 전체 클래스를 찾지 만 나머지로 0과 n-1 사이의 차수를 가진 가장 작은 다항식 (끝점 포함)을 원합니다.

10 = 7 = 4 = 1 ~ \ text {mod} 3하지만 정수 긴 나눗셈의 유효한 나머지 경우는 하나뿐입니다!

x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2하지만 하나만 다항식 긴 나눗셈의 유효한 나머지 경우!

그래서

\ text {deg} r (x) text {deg} d (x)

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다