You are on page 1of 3

Algorithms: CSE 202 — Homework I

Problem 1: Stable matching with indifference (KT 1.5)


The Stable Matching Problem, as discussed in the text, assumes that all men and women have a fully
ordered list of preferences. In this problem we will consider a version of the problem in which men and
women can be indifferent between certain options. As before we have a set M of n men and a set W of n
women. Assume each man and each woman ranks the members of the opposite gender, but now we allow
ties in the ranking. For example (with n = 4), a woman could say that m1 is ranked in first place; second
place is a tie between m2 and m3 (she has no preference between them); and m4 is in last place. We will
say that w prefers m to m′ if m is ranked higher than m′ on her preference list (they are not tied).
With indifferences in the rankings, there could be two natural notions for stability. And for each, we can
ask about the existence of stable matchings, as follows.
(a) A strong instability in a perfect matchings S consists of a man m and a woman w, such that each of
m and w prefers the other to their partner in S. Does there always exist a perfect matching with no
strong instability? Either give an example of a set of men and women with preference lists for which
every perfect matching has a strong instability; or give an algorithm that is guaranteed to find a perfect
matching with no strong instability.

(b) A weak instability in a perfect matching S consists of a man m and a woman w, such that their partners
in S are w′ and m′ , respectively, and one of the following holds:

- m prefers w to w′ , and w either prefers m to m′ or is indifferent between these two choices; or


- w prefers to m to m′ , and m either prefers w to w′ or is indifferent between these two choices.

In other words, the pairing between m and w is either preferred by both, or preferred by one while the other
is indifferent. Does there always exist a perfect matching with no weak instability? Either give an example
of a set of men and women with preference lists for which every perfect matching has a weak instability; or
give an algorithm that is guaranteed to find a perfect matching with no weak instability.

Problem 2: Stable matching considering truthfulness (KT 1.8)


For this problem, we will explore the issue of truthfulness in the Stable Matching Problem and specifically
in the Gale-Shapley algorithm. The basic question is: Can a man or a woman end up better off by lying
about his or her preferences? More concretely, we suppose each participant has a true preference order. Now
consider a woman w. Suppose w prefers man m to m′ , but both m and m′ are low on her list of preferences.
Can it be the case that by switching the order of m and m′ on her list of preferences (i.e., by falsely claiming
that she prefers m′ to m) and running the algorithm with this false preference list, w will end up with a man
m′′ that she truly prefers to both m and m′ ? (We can ask the same question for men, but will focus on the
case of women for purpose of this question.)
Resolve this question by doing one of the following two things:

1
(a) Give a proof that, for any set of preference lists, switching the order of a pair on the list cannot improve
a woman’s partner in the Gale-Shapley algorithm; or

(b) Give an example of a set of preference lists for which there is a switch that would improve the partner
of a woman who switched preferences.

Problem 3: Coulomb forces (KT 5.4)


You’ve been working with some physicists who need to study, as part of their experimental design, the
interactions among large numbers of very small charged particles. Basically, their setup works as follows.
They have an inert lattice structure, and they use this for placing charged particles at regular spacing along a
straight line. Thus we can model their structure as consisting of the points {1, 2, 3, . . . , n} on the real line;
and at each of these points j, they have a particle with charge qj . (Each charge can be either positive or
negative.)
They want to study the total force on each particle, by measuring it and then comparing it to a computa-
tional prediction. This computational part is where they need your help. The total net force on particle j, by
Coulomb’s Law, is equal to
X Cqi qj X Cqi qj
Fj = − .
(j − i)2 (j − i)2
i<j i>j

They’ve written the following simple program to compute Fj for all j:

for j = 1, 2, . . . , n do
Initialize Fj to 0
for i = 1, 2, . . . , n do
if i < j then
Cqi qj
Add (j−i) 2 to Fj

else if i > j then


Cqi qj
Add − (j−i) 2 to Fj

end if
end for
Output Fj
end for

It’s not hard to analyze the running time of this program: each invocation of the inner loop, over i, takes
O(n) time, and this inner loop is involved O(n) times total, so the overall running time is O(n2 ).
The trouble is, for the large values of n they’re working with, the program takes several minutes to run.
On the other hand, their experimental setup is optimized so that they can throw down n particles, perform
the measurements, and be ready to handle n more particles within a few seconds. So they’d really like it
if there were a way to compute all the forces Fj much more quickly, so as to keep up with the rate of the
experiment.
Help them out by designing an algorithm that computes all the forces Fj in O(n log n) time.

Problem 4: Local minimum (KT 5.7)


Suppose now that you’re given an n × n grid graph G. (An n × n grid graph is just the adjacency graph of

2
L1
L5
L2 L4

L3

Figure 1: An instance of hidden surface removal with five lines (labeled L1 to L5 in the figure). All the lines
except for L2 are visible.
an n × n chessboard. To be completely precise, it is a graph whose node set is the set of all ordered pairs of
natural numbers (i, j), where 1 ≤ i ≤ n and 1 ≤ j ≤ n; the nodes (i, j) and (k, l) are joined by an edge if
and only if |i − k| + |j − l| = 1.)
Each node v is labeled by a real number xv ; you may assume that all these labels are distinct. Show how
to find a local minimum (A node v of G is a local minimum if the label xv is less than the label xw for all
nodes w that are joined to v by an edge. ) of G using only O(n) probes to the nodes of G. (Note that G has
n2 nodes.)

Problem 5: Hidden surface removal (KT 5.5)


Hidden surface removal is a problem in computer graphics that scarcely needs an introduction: when
Woody is standing in front of Buzz, you should be able to see Woody but not Buzz; when Buzz is standing
in front of Woody, . . . well, you get the idea.
The magic of hidden surface removal is that you can often compute things faster than your intuition
suggests. Here’s a clean geometric example to illustrate a basic speed-up that can be achieved. You are
given n nonvertical lines in the plane, labeled L1 , L2 , . . . , Ln , with the ith line specified by the equation
y = ai x + bi . We will make the assumption that no three of the lines all meet at a single point. We say
line Li is uppermost at a given x-coordinate x0 if its y-coordinate at x0 is greater than the y-coordinates of
all the other lines at x0 : ai x0 + bi > aj x0 + bj for all j 6= i. We say line Li is visible if there is some
x-coordinate at which it is uppermost – intuitively, some portion of it can be seen if you look down from
“y = ∞”.
Give an algorithm that takes n lines as input and in O(n log n) time returns all the ones that are visible.
Figure 1 gives an example.