Homework 1
Algorithms and Data
Spring 2012
Karl Lieberherr
Due date:
Jan. 18, 2012, beginning of class.
Propose or oppose claims on Piazza by Jan. 12, 2012.
Remember to sign up for Piazza asap.
Page numbers refer to the text book by Kleinberg and Tardos.
The claims covered are from or motivated by
chapter 1. Read Chapter 1 first.
The claims
IntervalScheduling
WeightedIntervalScheduling
BipartiteMatching
IndependentSet
QuantifiedNumerical
are families of claims that have a numerical parameter x or c.
Your goal is to choose x so that the claim is true and so that
the claim becomes false for a value >x. (similar for c)
Claim
QuantifiedBoolean1, for example,
asks you to come up with a simple algorithm
that maps an x to a y. The same with claim
QuantifiedNumerical.
Get together in small teams of 2 students to work on the claims.
It is up to you to decide who plays proposer and opposer/agreer.
The rules to follow are summarized here:
http://www.ccs.neu.edu/home/lieber/courses/algorithms/general/quantifier-game/rules
Use Piazza to propose exactly one of the following claims.
Your objective must be to propose true and maximum claims
that nobody can strengthen nor refute.
Try not to make the same claim twice.
When all true and maximum claims have been made
refute, strengthen or agree with one of the
claims already on Piazza.
Try not to refute, strengthen or agree the
same claim twice.
The students who don't propose and oppose/agree
check the consistency of the exchanges. For example,
an independent set of a graph must be a subset of the node
set of the graph.
Claim IntervalScheduling(S,x)
The Interval Scheduling instance S in Fig. 1.4 on page 13
has a subset of compatible requests of size x. Maximize x.
Number the requests left to right and top to bottom.
Claim WeightedIntervalScheduling(S,x)
The WeightedInterval Scheduling instance S in Fig. 6.1 on
page 252
has a subset of compatible requests of weight x. Maximize x.
Claim BipartiteMatching(G,x):
The bipartite graph G in Figure 1.5 on page 15
has a matching of size x. Maximize x.
Claim IndependentSet(G,x):
The undirected graph G in Figure 1.6 on page 16
has an independent set of size x. Maximize x.
(what follows is similar to Competitive Facility Location (only 2 steps))
Bool = Boolean
Claim QuantifiedBoolean1:
ForAll x in Bool Exists y in Bool:
(or (and x y) (and !x !y))
Claim !QuantifiedBoolean1:
Exists x in Bool ForAll y in Bool:
(! (or (and x y) (and !x !y)))
Claim QuantifiedBoolean2:
ForAll x in Bool Exists y in Bool:
(and (or x y) (or !x y) (or x !y))
Claim !QuantifiedBoolean2:
Exists x in Bool ForAll y in Bool:
(! (and (or x y) (or !x y) (or x !y)))
Some of the claims are true and others are false.
[0,1] real numbers between 0 and 1.
Claim QuantifiedNumerical(c):
ForAll x in [0,1] Exists y in [0,1]
x*y + (1-x)*(1-y^2) >= c
Maximize c.
Family of claims QuantifiedNumerical(c) where c in [0,1].
For example, QuantifiedNumerical(0.5) is a true claim
and QuantifiedNumerical(0.75) is a false claim.
For each value of c between 0 and 1 we have a corresponding
claim which is either true or false. Somewhere between
0.5 and 0.75 there is a maximum c called cmax so that
QuantifiedNumerical(cmax) is true but for all eps>0, eps a real number,
QuantifiedNumerical(cmax + eps) is false.
What to turn in:
For each claim say whether it is true or false and for the maximization claims
whether they can be strengthened or are maximum.
For the true claims give an argument how you defend them against
your partner.
For the false claims give your approach to refute them.
It is sufficient to turn in one document per team of two.
But the postings on Piazza have to be done individually.