Чи завжди функції асимптотично порівнянні?


15

Коли ми порівнюємо складність двох алгоритмів, зазвичай буває, що або або (можливо, обидва), де і - час виконання (наприклад) двох алгоритмів.f(n)=O(g(n))g(n)=O(f(n))fg

Це завжди так? Тобто чи завжди виконується хоча б одне із співвідношень і , тобто для загальних функцій , ? Якщо ні, то які припущення ми маємо робити, і (чому) це нормально, коли ми говоримо про час роботи алгоритму?f(n)=O(g(n))g(n)=O(f(n))fg

Відповіді:


21

Не кожна пара функцій порівнянна з позначеннями ; розглянемо функції та O()f(n)=n

g(n)={1if n is odd, n2if n is even.
Moreover, functions like g(n) do actually arise as running times of algorithms. Consider the obvious brute-force algorithm to determine whether a given integer n is prime:
IsPrime(n):
  for i ← 2 to (n-1)
     if i·⌊n/i⌋ = n
        return False
  return True

This algorithm requires Θ(1) arithmetic operations when n is even, O(n) operations when n is composite, but Θ(n) operations when n is prime. Thus, formally, this algorithm is incomparable with an algorithm that uses n arithmetic operations for every n.

Most of the time when we analyze algorithms, we only want an asymptotic upper bound of the form O(f(n)) for some relatively simple function f. For example, most textbooks would simply (and correctly) report that IsPrime(n) runs in O(n) arithmetic operations. Typical upper bound functions are products of exponentials, polynomials, and logarithms (although more exotic beasts like factorials and iterated logarithms also show up occasionally). It is not hard to prove that any two such functions are comparable.

See also this MathOverflow question.


7

From wikipedia, definition of big O notation:

if and only if there is a positive constant M such that for all sufficiently large values of x, f(x) is at most M multiplied by g(x) in absolute value. That is, f(x)O(g(x)) if and only if there exists a positive real number M and a real number x0 such that

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

What happens for functions that do not converge (to a constant nor infinity)?

Look at the functions f(x)=|xsin(x)|, and g(x)=10

for each x0, there is some x>x0, such that x=kπ, thus f(x)=0 - so for each M - Mf(x)>g(x) will yield false, and g(x)O(f(x))

However, it is easy to see that |xsin(x)| is not bounded by any constant as well, thus for each M,x0, there is some x>x0 such that f(x)<Mg(x) will also yield false, and f(x)O(g(x))

Note: for definition if big O that allows a maximum constant difference between Mf(x) and g(x), the same idea will apply with g(x)=log(x)


6

Here's a pair monotonic functions that are not asymptotically comparable. This is relevant because most complexities arising in practice are in fact monotonic.

f(x)=Γ(x+1)=x!
g(x)=Γ(x1/2+3/2)

Here, Γ is the gamma function. The second function is specially constructed to be very similar to the factorial, just "sampled" at slightly offset points in the gamma function. The functions cross each other periodically in such a way that neither is asymptotically bound by the other.


4

Дозволяти Lбути класом функцій, отриманих від функції тотожності та констант, використовуючи такі операції: додавання, віднімання, множення, ділення, логарифм та експоненціальність. Наприклад,досвід(2журналх+журналжурналх)/х2. Харді довів, що для кожні дві функціїf,гL які є позитивними і мають тенденцію до нескінченності, справедливо одне з наступних: f=о(г), f=ω(г), f/гпрагне до постійної. Див. Сторінку 18 його книги "Накази нескінченності".

Підсумок полягає в тому, що будь-які дві "прості" функції, що виникають при аналізі алгоритму , порівнянні. Тут "простий" означає, що не існує визначення випадків (крім кінцево багатьох базових випадків), і не виникають дивовижні функції, такі як зворотна функція Акермана, яка іноді фіксується у тривалість часу.


Приємно! Примітно, що періодичні елементи часто зустрічаються в аналізі середніх випадків (алгоритму досліджень і досліджень). Той, кого я знаю, з обох сторін пов'язаний константами, тому вони не зашкодять асимптотичній порівнянності.
Рафаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.