기능은 항상 무증상입니까?


15

우리는 두 알고리즘의 복잡성과 비교하면,이 경우는 일반적으로 그 중 f(n)=O(g(n)) 또는 g(n)=O(f(n)) (아마도 모두), f 및 예를 들어 두 알고리즘의 실행 시간입니다.g

항상 그런가요? 즉, 관계 및 항상 유지 됩니까? , 일반 함수 , ? 그렇지 않다면, 어떤 가정을해야합니까? 그리고 알고리즘 실행 시간에 대해 이야기 할 때 (왜) 괜찮습니까?g ( N ) = O ( F ( N ) ) F g에프()=영형(())()=영형(에프())에프

답변:


21

모든 기능 쌍이 표기법 과 비교되는 것은 아닙니다 . 기능 고려 F ( N을 ) = Ng ( N ) = { 1 경우  N  홀수이고 , n은 2 경우  N  짝수 . 또한 g ( n ) 과 같은 함수 는 실제로 알고리즘 실행 시간으로 발생합니다. 주어진 정수 n 이 소수 인지 확인하려면 명백한 무차별 대입 알고리즘을 고려하십시오 .O()f(n)=n

g(n)={1if n is odd, n2if n is even.
g(n)n
IsPrime(n):
  for i ← 2 to (n-1)
     if i·⌊n/i⌋ = n
        return False
  return True

이 알고리즘은 n 이 짝수 일 때 산술 연산 이 필요합니다 . O ( Θ(1)n작업을 할 때N복합이지만,Θ(N)연산, N은소수이다. 따라서 공식적으로이 알고리즘은 를 사용하는 알고리즘과비교할 수 없습니다.O(n)nΘ(n)n모든n에대한 n 산술 연산.

알고리즘을 분석 할 때 대부분의 경우 비교적 간단한 함수 f에 대해 형식의 점근 적 상한 만 원합니다 . 예를 들어, 대부분의 교과서는 O ( n ) 산술 연산 에서 실행되는 간단하고 정확하게보고합니다 . 전형적인 상한 함수는 지수, 다항식 및 대수의 곱입니다 (계승 및 반복 대수 와 같은 더 이국적인 짐승 도 때때로 나타납니다). 그러한 두 가지 기능이 비교 가능하다는 것을 증명하는 것은 어렵지 않습니다.영형(에프())에프IsPrime(n)O(n)

이 MathOverflow 질문 도 참조하십시오 .


7

Wikipedia에서 큰 O 표기법의 정의 :

IF 및 모두 충분히 큰 값하는 양의 정수를 M 등이있는 경우에만 , F ( x는 ) M을 곱한 많아야 인 g ( X ) 의 절대 값이다. 즉, F ( X ) O ( g ( X ) ) 의 경우와 양의 실수가있는 경우에만 M 과 실수 X 0 되도록을xf(x)g(x)f(x)O(g(x))Mx0

|f(x)|<=M|g(x)|for allx>x0

수렴하지 않는 함수 (상수 또는 무한대로)는 어떻게됩니까?

함수를보십시오 g ( x ) = 10f(x)=|xsin(x)|g(x)=10

에 대해 , x = k π 와 같은 일부 x > x 0이 있으므로 f ( x ) = 0-M - M f ( x ) > g ( x )에 대해 거짓이되고, g ( x )x0x>x0x=kπf(x)=0M미디엄에프(엑스)>(엑스)(엑스)영형(에프(엑스))

그러나, 쉽게 볼 수 각 따라서뿐만 아니라 임의의 상수에 의해 제한되지 않고 M , X 는 0 , 일부가 X > X 0 되도록 F ( X ) < M g ( X ) 가양 수율 것이다 F ( X ) O ( g ( x ) )|엑스에스나는(엑스)|미디엄엑스0엑스>엑스0에프(엑스)<미디엄(엑스)에프(엑스)영형((엑스))

참고 : g ( x ) 사이의 최대 상수 차이를 허용하는 big O 인 경우 g ( x ) = log ( x ) 와 동일한 아이디어가 적용됩니다.미디엄에프(엑스)(엑스)(엑스)=로그(엑스)


6

다음 은 비대칭 적으로 비교할 수없는 한 쌍의 단조 함수입니다. 실제로 발생하는 대부분의 복잡성이 실제로 단조롭 기 때문에 이는 관련이 있습니다.

에프(엑스)=Γ(엑스+1)=엑스!
(엑스)=Γ(엑스1/2+/2)

Γ


4

특급(2로그엑스+로그로그엑스)/엑스2에프,에프=영형()에프=ω()에프/

결론은 알고리즘 분석에서 발생하는 두 가지 "간단한"기능 비슷 하다는 것입니다 . 여기서 "단순"은 사례별로 정의가없고 (거의 많은 기본 사례를 제외하고) 때때로 실행 시간을 나타내는 역 Ackermann 함수와 같은 놀라운 기능이 나타나지 않음을 의미합니다.


좋은! 그러나주기적인 요소는 d & c 알고리즘의 평균 사례 분석에서 자주 발생합니다. 내가 아는 것은 상수에 의해 양쪽에 묶여 있기 때문에 점근 적 비교에 해를 끼치 지 않습니다.
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.