00 upvotes00 downvotes

33 views3 pagesalgorithm hw problem

Nov 11, 2018

© © All Rights Reserved

PDF, TXT or read online from Scribd

algorithm hw problem

© All Rights Reserved

33 views

00 upvotes00 downvotes

algorithm hw problem

© All Rights Reserved

You are on page 1of 3

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:

- 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.

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.

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

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

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.

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.)

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.

## Much more than documents.

Discover everything Scribd has to offer, including books and audiobooks from major publishers.

Cancel anytime.