0% found this document useful (0 votes)
16 views4 pages

373 HW2soln

The document provides solutions to problems involving algorithm analysis, order of growth rates, relations, and functions. For problem R-3.2, the solution finds that the crossing point where algorithms A and B have equal operation counts is n=16, so n0=17. For R-3.3, the crossing point is n=20, so n0=21. The sum of even numbers from 0 to 2n is proven to be n(n+1) using induction. Functions are ordered from least to greatest growth rate. Examples are given of relations that are reflexive but not transitive or symmetric, and transitive but not reflexive. It is shown that a function of integers cannot be transitive but

Uploaded by

Deepak Singj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views4 pages

373 HW2soln

The document provides solutions to problems involving algorithm analysis, order of growth rates, relations, and functions. For problem R-3.2, the solution finds that the crossing point where algorithms A and B have equal operation counts is n=16, so n0=17. For R-3.3, the crossing point is n=20, so n0=21. The sum of even numbers from 0 to 2n is proven to be n(n+1) using induction. Functions are ordered from least to greatest growth rate. Examples are given of relations that are reflexive but not transitive or symmetric, and transitive but not reflexive. It is shown that a function of integers cannot be transitive but

Uploaded by

Deepak Singj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

HW 2 Pen & Paper Solutions:

R-3.2: total of 2 points possible


The number of operations executed by algorithms A and B are 8nlogn and 2n2,
respectively. Determine n0 such that A is better than B for all n > n0.

Solution
The graphs describing the behavior of these algorithms start out with A higher (slower)
than B, and eventually cross. After the point where they cross, B is always higher than
A. Therefore we need to find the point where they cross, that is the value where
8nlogn = 2n2. Applying algebra we get:
8nlogn = 2n2
4nlogn = n2
4 logn = n
4 = n / logn
Solving for n we get n=16, since 4 = 16/log216 = 16/4 = 4

Thus n0 = 17, since for all n >= 17, A will be faster than B (at 16 they’re equal.)

Another acceptable solution was to show the number of operations for each algorithm for
all n up to the point where they cross.

Common problems
Many people used logs with bases other than 2. Common ones were log10 and ln. It’s
common in algorithmic analysis to use log base 2, as many algorithms use a divide and
conquer strategy that naturally produces log base 2 behavior. Some people had the right
idea but made an algebraic mistake. Partial credit was given. No credit was lost if you
put 16 instead of 17 (i.e. if you confused > with >=.)

R-3.3: total of 2 points possible


The number of operations executed by algorithms A and B are 40n2 and 2n3, respectively.
Determine n0 such that A is better than B for all n > n0.

Solution
The approach is the same as in 3.2. Equate the formulae and solve for n.
40n2 = 2n3
20 n2 = n3
20 = n

Thus n0 = 21, since for all n >= 21, A will be faster than B (at 20, they’re equal.)

R-3.6: total of 2 points possible

What is the sum of all the even numbers from 0 to 2n for any positive integer n? Use
induction to prove your answer.
Solution

The question asks what the sum is for:


0 + 2 + 4 + 6 + 8 + … + 2n
For any value of n.

The answer is n(n+1).

Here is the inductive proof

Base case: n = 1
Sum(2*i) for i = 0, 1 is 0 + 2 = 2.
n(n+1) = 1(1+1) = 1(2) = 2
So the base case works.

Inductive hypothesis:
Assume: Sum(2*i) for i=0..n = n(n+1)
Show: same holds for n+1
Sum(2*i) for i=0..n+1 = (n+1)((n+1)+1) = (n+1)( n+2) = n2 + 3n + 2

Sum(2*i) for i=0..n+1 =


Sum(2*i) for i=0..n + 2*(n+1) Replace underlined portion using inductive assumption
n(n+1) + 2*(n+1) Multiply out 2*(n+1) term
n(n+1) + 2n+2 Multiple out n(n+1) term
n2 + n + 2n + 2 Gather terms
n2 + 3n + 2
This is equal to the show line above, so we’re done.

Common problems
Many people simply didn’t do any inductive proof.

R-3.8: total of 2 points possible


Order the following functions by asymptotic growth rate.

4nlogn+2n 210 2logn 3n+100logn 4n 2n n2+10n n3 nlogn

Solution
Ordered from least to greatest:

210 2logn 3n+100logn 4n nlogn 4nlogn+2n n2+10n n3 2n

Explanation:
210 is constant time
2logn is linear O(n) by the definition of log
3n+100logn is O(n)
4n is also O(n) and larger than 3n+100logn because the 4n term is larger than the 3n term
nlogn is O(nlogn)
4nlogn+2n is also O(nlogn) because the nlogn term dominates the 2n term
n2+10n is O(n2)
n3 is O(n3)
2n is O(2n) - exponential

Common mistakes
Many people missed the fact that 2logn is linear. If that was your only mistake, I didn’t
take off. I also didn’t penalize as heavily in comparing within an order (e.g. 3n+100logn
and 4n are both O(n) so I didn’t count off as much is you flipped them but kept them in
the same place relative to all the other entries.)

Relational properties: total of 4 points, one for each part


Give an example of each of these situations or explain why it is impossible. The answer
should be non-trivial, i.e., not the empty set.

• A relation which is reflexive, not transitive, and not symmetric


o Answer: {(a,a), (b,b), (c,c) (a, b), (b, c)} over the set {a, b, c}
This is reflexive, R(x,x) is true for all x. It is not transitive because R(a, b)
and R(b, c) but it’s not true that R(a,c). It is not symmetric because R(a,b)
but it’s not true that R(b,a)
o Common mistakes: Some people put something like {(a,a), (b,b)}.
However this is both transitive and symmetric, though trivially so. In all
cases where (x,y) and (y,z), it’s also the case that (x,z). The only cases
where this is true is where x = y = z = a OR x = y = z = b, but nonetheless
it is true in those cases. A similar argument holds for symmetry.
• A relation which is transitive and not reflexive
o Answer: {(a, b), (b, c), (a, c)}
o Another answer, <. (The < relation over the integers is transitive but not
reflexive)
• A function of the integers which is reflexive
o Answer: The = (equality) function is reflexive.
o Common mistake: Some people thought that because the problem
statement pointed out that a function of the integers has all integers as it’s
domain and (a subset of) the integers as it’s range, this was impossible
because = requires that the range and domain are the same. However, this
isn’t a problem since it may not be a proper subset. Another common
mistake was to give the function in terms of a domain {1, 2, 3} rather than
all integers. While I accepted this (and added “…” to indicate that it
should have been extended), this type of thinking caused problems for the
next question. Similarly many people completely ignore the part about it
being a function of the integers and wrote functions whose domains (and
ranges) were things like {a,b,c} or {x,y,z}.
• A function of the integers which is transitive and not reflexive.
o Answer: this is impossible because to be transitive, it must be the case that
if (x,y) and (y,z) are in the function then so must be (x, z), however that
would imply two different values for (x). But functions (as opposed to
relations) must have a unique value for any input. Put another way, you
can’t have f(x) = y, f(y) = z and then f(x)=z, since f(x) already equals y.
The only way for a function to be transitive is if it’s trivially so, as in the
case of =. But in that case, it’s also reflexive.
o Common problems: Though a number of people pointed out the problem
with having repeated x values with different y, z, etc. Very few mentioned
the case of the trivially transitive function being reflexive. However as
long as you got the first part about repeated x values, full credit was given.
A number of people did things like {(1,2), (2,3), (1,3)} which is not a
function, or worse, {(a,b), (b,c), (a,c)} which is neither a function, nor
does it have the integers as its domain.

You might also like