점근 표기법

testwiki
둘러보기로 이동 검색으로 이동

틀:위키데이터 속성 추적 점근 표기법(漸近 表記法, 틀:Llang)은 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론해석학의 방법이다. 알고리즘복잡도를 단순화할 때나 무한급수의 뒷부분을 간소화할 때 쓰인다.

대표적으로 다음의 다섯 가지 표기법이 있다.

  • 대문자 O 표기법
  • 소문자 o 표기법
  • 대문자 오메가(Ω) 표기법
  • 소문자 오메가(ω) 표기법
  • 대문자 세타(Θ) 표기법

이 중 압도적으로 많이 쓰이는 것이 대문자 O 표기법으로, 란다우 표기법이라고도 한다.

특히, 알고리즘복잡도를 나타내는 용어로는 "계산 복잡도 이론" 또는 "시간복잡도"로 대문자 O 표기법이 일반적으로 사용된다.

대문자 O 표기법 (Big-O notation)

정의

함수 f(x), g(x)에 대해 f(x)O(g(x))라는 것은 상한 점근에 관한 다음의 동치인 정의와 같다.

  • x>x0를 만족하며 충분히 큰 모든 x에 대하여 |f(x)|M|g(x)|가 성립하도록 하는 양의 실수 M과 실수x0가 존재한다.
  • |xa|<δ를 만족하는 x에 대하여 |f(x)|M|g(x)| 가 성립하도록 하는 양수 δM이 존재한다.
  • lim supxa|f(x)g(x)|<.

이를 f(x)=O(g(x)) 혹은 f(x)O(g(x))로 표기하기도 한다.

다항식 f,g를 다음과 같이 정의한다.

f(x)=6x42x3+5
g(x)=x4

이때 f(x)=O(g(x)) or O(x4)이 된다. 증명은 다음과 같다.

|6x42x3+5|6x4+2x3+5 (x>1일 때)
|6x42x3+5|6x4+2x4+5x4 (x3<x4와 같은 방법)
|6x42x3+5|13x4
|6x42x3+5|13|x4|

표기법 문제

f(x)=O(g(x))라는 표현에서, 등호는 원래의 등호와는 다른 의미를 가진다. 예를 들어, 어떤 함수가 O(x)이면 O(x2)이므로 O(x)=O(x2)로 표기할 수는 있지만, O(x2)=O(x)와 같이 쓰는 것은 잘못된 표기이다. 이 때, 등호 표기는 일반적인 표기법과 다르게 사용된 기호의 남용으로 볼 수 있다.

이러한 문제를 방지하기 위해, O(g(x))를 원래 정의에서 해당하는 함수들의 집합으로 정의하는 경우도 많이 사용된다. 이러한 경우 f(x)O(g(x))과 같이 표기할 수 있고, 이것은 기호의 원래 정의와 잘 맞아 떨어진다.

다른 표기법들

대문자 O 표기법과 비슷하게, 다음의 표기법들이 사용된다.

표기법 설명 수학적 정의
f(n)O(g(n)) 상한 점근 limn|f(n)g(n)|<
f(n)o(g(n)) limnf(n)g(n)=0
f(n)Ω(g(n)) 하한 점근 limn|f(n)g(n)|>0
f(n)ω(g(n)) limnf(n)g(n)=
f(n)Θ(g(n)) 상한/하한 점근 0<limn|f(n)g(n)|<

또한 Õ 표기법은 대문자 O 표기법의 일종으로, O~(g(n))O(g(n)logkg(n))(k는 임의의 상수)를 의미한다. 이 표기법은 함수의 로그 증가 비율을 무시하는 의미를 가지고 있다.

같이 보기

틀:전거 통제