Big Omega Notation Proving - complexity-theory

To show that 3n^2 - 25n = Ω(n^2)
For n ≥ n / 2 for n ≥ 0
n – 25/3 ≥ 3n / (2 x 25) for n ≥ 9
3n^2 - 25n ≥ 9n^2 / 50 for n ≥ 9
3n2 - 25n ≥ c·n2 for n ≥ n0 where c=9 / 50 and n0 = 9
Therefore, by definition
3n2 - 25n = Ω(n2).
Above is the proof that 3n^2 - 25n = Ω(n^2).
Why use n ≥ n / 2?
How is n – 25/3 ≥ 3n / (2 x 25) derived?

I am not sure why do we need n>=n/2. What we do need is that n >= 0 => n*3 >= 0 and so we can multiply the first inequality by 3*n on both sides.
(1) n – 25/3 ≥ 3n / (2 x 25) is a simple linear inequality. By doing some transformation we get:
(1) <=> (47/50)*n - 25/3 >= 0 <=> (47/50)n >= 25/3 <=> n >= (25/3)(50/47) <=> n >= 1250/141 <=> n >= 8 + 122/141
And from the above we get that this inequality holds true for all n >= 9 > 8 + 122/141. This is just one of the inequalities you can use to prove this big omega notation. Hope my answer helps.

Related

Determining whether an expression has omega complexity

6n^4 −3n^2 +3 is Ω(n4)
Hello, I need to determine whether this statement is true or false.
Any help is appreciated.
Thank you
I am leaning towards true due to the n^4, however the omega complexity is making me doubt this.
I believe if it was big O it would be a true statement.
f is Omega(g) if there exist constants c and n0 such that for all n > n0, f(n) >= c * g(n). For us, we need to evaluate whether there are constants n0 and c such that 6n^4 - 3n^2 + 3 > cn^4 for all n > n0. If we choose n = 5 we get...
6n^4 - 3n^2 + 3 > 5n^4
n^4 - 3n^2 + 3 > 0
Using the quadratic formula we can find values for n^2 where the LHS equals zero:
n^2 = [-b +- sqrt(b^2 - 4ac)] / 2a
= [3 +- sqrt(9 - 12] / 2
But the discriminant is negative, which means there are no real values of n^2 where the LHS equals 0. This means that the LHS has no roots and never crosses the X-axis; it is either always positive or always negative. We can see which is the case easily by plugging in 0:
0^4 - 30^2 + 3 = 3 > 0
So, with the choice of c=5, our inequality is true for all n; we are free to choose any n0, e.g., n0 = 1 works.
Because there exists a pair c=5 and n0=1 which gives us f(n) = 6n^4 - 3n^2 + 3 > 5n^4 = cg(n) for all n > n0, we can say that f is Omega(g).

Asymptotic Notation: Finding two constants such that n >= n0

Here is an asymptotic notation problem:
Let g(n) = 27n^2 + 18n and let f(n) = 0.5n^2 − 100. Find positive constants n0, c1 and c2 such that c1f(n) ≤ g(n) ≤ c2f(n) for all n ≥ n0.
Is this solving for theta? Do I prove 27n^2 + 18n = Ω(0.5n^2 − 100) and then prove (27n^2 + 18n) = O(0.5n^2 − 100)?
In that case wouldn't c1 and c2 be 1 and 56 respectively, and n0 would be the higher of the two n0 that I find?
There are infinitely many solutions. We just need to fiddle with algebra to find one.
The first thing to note is that both g and f are positive for all n≥15. In particular, g(15) = 6345, f(15) = 12.5. (All smaller values of n make f<0.) This implies n0=15 might work fine as well as any larger value.
Next note g'(n) = 54n + 18 and f'(n) = n.
Since f(15) < g(15) and f'(n) < g'(n) for all n >= 15, choose c1 = 1.
Proof that this is a good choice:
0.5n^2 − 100 ≤ 27n^2 + 18n <=> 26.5n^2 + 18n + 100 ≥ 0
...obviously true for all n≥15.
What about c2? First, we want c2*f(n) to grow at least as fast as g: c2f'(n)≥g'(n), or c2*n ≥ 54n + 18 for n ≥ 15. So choose c2 ≥ 56, which obviously makes this true.
Unfortunately, c2=56 doesn't quite work with n0 = 15. There's the other criterion to meet: c2*f(15)≥g(15). For that, 56 isn't big enough: 56*f(15) is only 700; g(15) is much bigger.
It turns out by substitution in the relation above and a bit more algebra that c2 = 508 does the trick.
Proof:
27n^2 + 18n ≤ 508 * (0.5n^2 − 100)
<=> 27n^2 + 18n ≤ 254n^2 − 50800
<=> 227n^2 - 18n - 50800 ≥ 0
At n=15, this is true by simple substitution. For all bigger values of n, note the lhs derivative 454n - 18 is positive for all n≥15, so the function is also non-decreasing over that domain. That makes the relation true as well.
To summarize, we've shown that n0=15, c1=1, and c2=508 is one solution.

Asymptotic Notation: Proving Big Omega, O, and Theta

I have a few asymptotic notation problems I do not entirely grasp.
So when proving asymptotic complexity, I understand the operations of finding a constant and the n0 term of which the notation will be true for. So, for example:
Prove 7n+4 = Ω(n)
In such a case we would pick a constant c, such that it is lower than 7 since this regarding Big Omega. Picking 6 would result in
7n+4 >= 6n
n+4 >= 0
n = -4
But since n0 cannot be a negative term, we pick a positive integer, so n0 = 1.
But what about a problem like this:
Prove that n^3 − 91n^2 − 7n − 14 = Ω(n^3).
I picked 1/2 as the constant, reaching
1/2n^3 - 91n^2 - 7n -14 >= 0.
But I am unsure how to continue. Also, a problem like this, I think regarding theta:
Let g(n) = 27n^2 + 18n and let f(n) = 0.5n^2 − 100. Find positive constants n0, c1 and c2 such
that c1f(n) ≤ g(n) ≤ c2f(n) for all n ≥ n0.
In such a case am I performing two separate operations here, one big O comparison and one Big Omega comparison, so that there is a theta relationship, or tight bound? If so, how would I go about that?
To show n3 − 91n2 − 7n − 14 is in Ω(n3), we need to exhibit some numbers n0 and c such that, for all n ≥ n0:
n3 − 91n2 − 7n − 14 ≥ cn3
You've chosen c = 0.5, so let's go with that. Rearranging gives:
n3 − 0.5n3 ≥ 91n2 + 7n + 14
Multiplying both sides by 2 and simplifying:
182n2 + 14n + 28 ≤ n3
For all n ≥ 1, we have:
182n2 + 14n + 28 ≤ 182n2 + 14n2 + 28n2 = 224n2
And when n ≥ 224, we have 224n2 ≤ n3. Therefore, the choice of n0 = 224 and c = 0.5 demonstrates that the original function is in Ω(n3).

Proving Big-Omega Function

I am trying to prove that a function is in Ω(𝑛^3), however the constant C is fixed to 3.
The function is:
𝑓(𝑛) = 3𝑛^3 − 39𝑛^2 + 360𝑛 + 20
In order to prove that 𝑓 is Ω(𝑛^3), we need constants 𝑐, 𝑛_0 > 0 such that
|𝑓(𝑛)| ≥ C|𝑛^3|
for every 𝑛 ≥ 𝑛_0.
When plugging in C = 3, you would get the inequality
3𝑛^3 − 39𝑛^2 + 360𝑛 + 20 ≥ 3𝑛^3
which would equal
−39𝑛^2 + 360𝑛 + 20 ≥ 0
I'm stuck here, because I can't find an n_0 that satisfies the equation for every 𝑛 ≥ 𝑛0.
Also, if c = 2.25 fixed, how do I find the smallest integer that satisfies n_0 ?
How to prove it in general
Proving 𝑓 in Ω(𝑛^3) with 𝑓(𝑛) = 3𝑛^3 − 39𝑛^2 + 360𝑛 + 20 is pretty simple.
The exact definition (from Wikipedia) is:
In words you need to find a constant c such that c * g will always be smaller than f (from a given n_0). You are of course allowed to choose this c small and the n_0 big.
We first drop some unnecessary stuff in order to estimate f:
−39𝑛^2 is greater than -n^3 for all n >= 39
360𝑛 is obviously greater than 0
20 is also greater than 0
Okay, putting that together we receive:
f(n) >= 3n^3 - n^3 + 0 + 0
= 2n^3
for n >= 39.
We choose C = 2 (or something smaller), n_0 = 39 (or something greater) and follow that
C * |g(n)| = 2 * |n^3| <= |2 * n^3| <= |f(n)|
<=> C * |g(n)| <= |f(n)|
for all n > n_0. By definition this means 𝑓 in Ω(𝑛^3).
Your specific scenario
For C = 3 fixed this is obviously not possible since 3 * n^3 is always greater than 3𝑛^3 − 39𝑛^2 + 360𝑛 + 20 (for some n_0). This is due to the second summand −39𝑛^2.
Take a look at the plot:
You see that 3n^3 grows beyond f, for all n >= n_0 with n_0 at about 9.286. The exact value is:
n >= (2 / 39) * (90 + 8295^(0.5))
Here is the query at Wolfram Alpha.
But it is possible for a fixed C = 2.25 as you can see at this query. It is true for all n >= 40.

Is my explanation about big o correct in this case?

I'm trying to explain to my friend why 7n - 2 = O(N). I want to do so based on the definition of big O.
Based on the definition of big O, f(n) = O(g(n)) if:
We can find a real value C and integer value n0 >= 1 such that:
f(n)<= C . g(n) for all values of n >= n0.
In this case, is the following explanation correct?
7n - 2 <= C . n
-2 <= C . n - 7n
-2 <= n (C - 7)
-2 / (C - 7) <= n
if we consider C = 7, mathematically, -2 / (C - 7) is equal to negative infinity, so
n >= (negative infinity)
It means that for all values of n >= (negative infinity) the following holds:
7n - 2 <= 7n
Now we have to pick n0 such that for all n >= n0 and n0 >= 1 the following holds:
7n - 2 <= 7n
Since for all values of n >= (negative infinity) the inequality holds, we can simply take n0 = 1.
You're on the right track here. Fundamentally, though, the logic you're using doesn't work. If you are trying to prove that there exist an n0 and c such that f(n) ≤ cg(n) for all n ≥ n0, then you can't start off by assuming that f(n) ≤ cg(n) because that's ultimately what you're trying to prove!
Instead, see if you can start with the initial expression (7n - 2) and massage it into something upper-bounded by cn. Here's one way to do this: since 7n - 2 ≤ 7n, we can (by inspection) just pick n0 = 0 and c = 7 to see that 7n - 2 ≤ cn for all n ≥ n0.
For a more interesting case, let's try this with 7n + 2:
7n + 2
≤ 7n + 2n (for all n ≥ 1)
= 9n
So by inspection we can pick c = 9 and n0 = 1 and we have that 7n + 2 ≤ cn for all n ≥ n0, so 7n + 2 = O(n).
Notice that at no point in this math did we assume the ultimate inequality, which means we never had to risk a divide-by-zero error.

Resources