Homework 5: Graphs and Loose Ends
Handed out Monday, November 28. Due at the start of class Thursday, December 8-NO LATE ACCEPTED.
Prove by induction that
.
(This is because
def tree_grow(start): reached = {} fringe = {start} while fringe is non-empty: curr = "get next node" from fringe fringe = fringe - {curr} "process" curr reached = reached U {curr} for all children c of curr: if c "is interesting" and c is not in reached: fringe = fringe U {c}
For each of the following algorithms, explain how to implement the quoted primatives in the tree-growing algorithm. The first one is done for you:
Note: Giving values of
Hint: check the Wikipedia page linked to the course resource page, and feel free
to search a table of integrals if you forget that the antiderivative of
is
plus a constant, of course.
Extra hint from Greg: this problem is hard. Directly applying the integration method (as defined on Wikipedia) will make you a little bit unhappy (try it to find out why). But, one can resolve this by cleverly splitting the summation into two pieces...