There are five questions for 100 total points. All are based on lectures 5-9, and thus on Chapters 3 and 4 of the Adler notes.
Students are responsible for understanding and following the academic honesty policies indicated on the course main page.
Problem 1.1 (20): Two easy problems on minimum spanning trees:
Problem 1.2 (20): A matching in an undirected graph is a set of edges such that no two edges in the set share a vertex. Suppose we have an undirected graph G = (V,E) with a positive weight on each vertex, and we want to find the matching in G that maximizes the total weight of the vertices that are incident to edges of the matching.
A simple greedy algorithm solves this problem, and here we will show this by designing a matroid. Here the elements of our matroid will be vertices rather than edges. We need to design a set I of sets of vertices such that I is a subset system, I satisfies the exchange property, and a maximum-weight set in I is a solution to our problem. Describe such an I, explain why it satisfies these conditions, and also show directly that I satisfies the Cardinality Property of Theorem 13 on page 31 of the Adler notes.
Problem 1.3 (20): Suppose I am given a string of text with n letters and I would like to interpret it as containing words from a dictionary of size k. Each of the k words w1,...,wk in the dictionary has a point value vi, and the score to be optimized is the sum of the values in the best set of non-overlapping words in the string, minus a penalty of one point for every letter that we do not assign to a word. The problem with the most naive approach to the problem is that there may be exponentially many possible ways to break the string into words. Describe and analyze a more efficient algorithm using dynamic programming.
Problem 1.4 (20): Suppose we are given a directed graph G = (V,E) where each edge is labeled with a single color from a set of colors C. For every pair of nodes x and y, we want to know whether there is a path from x to y that uses every color in C.
Problem 1.5 (20): Let E be a finite set of elements and C be a finite set of attributes. Each element of E may have zero, one, or more of the attributes. A set T ⊆ E is called a traversal if there exists a subset A of C, with |A| = |T|, and a one-to-one function f from T to A such that each element e in T has attribute f(a) (perhaps along with other attributes). That is, it is possible to pick an attribute held by each element in T such that no attribute is used twice.
Prove that if I is the set of all traversals, (E,I) forms a matroid. Design an optimization problem, introducing an appropriate weighting function, such that the generic greedy algorithm using this monoid solves your problem.
Last modified 6 March 2006