3-5 Variations on $O$ and $\Omega$

Some authors define \(\Omega\) in a slightly different way than we do; let's use \({\Omega}^{\infty}\) (read "omega infinity") for this alternative definition. We say that \(f(n) = {\Omega}^{\infty}(g(n))\) if there exists a positive constant \(c\) such that \(f(n) \ge cg(n) \ge 0\) for infinitely many integers \(n\).

a. Show that for any two functions \(f(n)\) and \(g(n)\) that are asymptotically nonnegative, either \(f(n) = O(g(n))\) or \(f(n) = {\Omega}^{\infty}(g(n))\) or both, whereas this is not true if we use \(\Omega\) in place of \({\Omega}^{\infty}\).

b. Describe the potential advantages and disadvantages of using \({\Omega}^{\infty}\) instead of \(\Omega\) to characterize the running times of programs.

Some authors also define \(O\) in a slightly different manner; let's use \(O'\) for the alternative definition. We say that \(f(n) = O'(g(n))\) if and only if \(|f(n)| = O(g(n))\).

c. What happens to each direction of the "if and only if" in Theorem 3.1 if we substitute \(O'\) for \(O\) but we still use \(\Omega\)?

Some authors define \(\tilde O\) (read "soft-oh") to mean \(O\) with logarithmic factors ignored:

\[ \begin{aligned} \tilde{O}(g(n)) = \\{f(n): & \text{ there exist positive constants $c$, $k$, and $n_0$ such that } \\\\ & \text{ $0 \le f(n) \le cg(n) \lg^k(n)$ for all $n \ge n_0$ }.\\} \end{aligned} \]

d. Define \(\tilde\Omega\) and \(\tilde\Theta\) in a similar manner. Prove the corresponding analog to Theorem 3.1.

a. We have

\[ f(n) = \begin{cases} O(g(n)) \text{ and } {\Omega}^{\infty}(g(n)) & \text{if $f(n) = \Theta(g(n))$}, \\\\ O(g(n)) & \text{if $0 \le f(n) \le cg(n)$}, \\\\ {\Omega}^{\infty}(g(n)) & \text{if $0 \le cg(n) \le f(n)$, for infinitely many integers $n$}. \end{cases} \]

If there are only finite \(n\) such that \(f(n) \ge cg(n) \ge 0\). When \(n \to \infty\), \(0 \le f(n) \le cg(n)\), i.e., \(f(n) = O(g(n))\).

Obviously, it's not hold when we use \(\Omega\) in place of \({\Omega}^{\infty}\).

b.

  • Advantages: We can characterize all the relationships between all functions.
  • Disadvantages: We cannot characterize precisely.

c. For any two functions \(f(n)\) and \(g(n)\), we have if \(f(n) = \Theta(g(n))\) then \(f(n) = O'(g(n))\) and \(f(n) = \Omega(g(n))\) and \(f(n) = \Omega(g(n))\).

But the conversion is not true.

d. We have

\[ \begin{aligned} \tilde\Omega(g(n)) = \\{f(n): & \text{ there exist positive constants $c$, $k$, and $n_0$ such that } \\\\ & \text{ $0 \le cg(n)\lg^k(n) \le f(n)$ for all $n \ge n_0$}.\\} \end{aligned} \]
\[ \begin{aligned} \tilde{\Theta}(g(n)) = \\{f(n): & \text{ there exist positive constants $c_1$, $c_2$, $k_1$, $k_2$, and $n_0$ such that } \\\\ & \text{ $0\le c_1 g(n) \lg^{k_1}(n) \le f(n)\le c_2g (n) \lg^{k_2}(n)$ for all $n\ge n_0$.}\\} \end{aligned} \]

For any two functions \(f(n)\) and \(g(n)\), we have \(f(n) = \tilde\Theta(g(n))\) if and only if \(f(n) = \tilde O(g(n))\) and \(f(n) = \tilde\Omega(g(n))\).