COS 423: Theory of Algorithms - PowerPoint PPT Presentation

About This Presentation
Title:

COS 423: Theory of Algorithms

Description:

A procedure for solving a mathematical problem (as of finding the ... 'algor' = Latin word for to be cold. Abu Ja'far al-Khwarizmi's = 9th century Arab scholar. ... – PowerPoint PPT presentation

Number of Views:334
Avg rating:3.0/5.0
Slides: 52
Provided by: kevin59
Category:
Tags: cos | algor | algorithms | theory

less

Transcript and Presenter's Notes

Title: COS 423: Theory of Algorithms


1
COS 423 Theory of Algorithms
  • Princeton University Spring, 2001
  • Kevin Wayne

2
Theory of Algorithms
  • Algorithm. (webster.com)
  • A procedure for solving a mathematical problem
    (as of finding the greatest common divisor) in a
    finite number of steps that frequently involves
    repetition of an operation.
  • Broadly a step-by-step procedure for solving a
    problem or accomplishing some end especially by a
    computer.
  • "Great algorithms are the poetry of computation."
  • Etymology.
  • "algos" Greek word for pain.
  • "algor" Latin word for to be cold.
  • Abu Ja'far al-Khwarizmi's 9th century Arab
    scholar.
  • his book "Al-Jabr wa-al-Muqabilah" evolved into
    today's high school algebra text

3
Imagine A World With No Algorithms
  • Fast arithmetic.
  • Cryptography.
  • Quicksort.
  • Databases.
  • FFT.
  • Signal processing.
  • Huffman codes.
  • Data compression.
  • Network flow.
  • Routing Internet packets.
  • Linear programming.
  • Planning, decision-making.

4
What is COS 423?
  • Introduction to design and analysis of computer
    algorithms.
  • Algorithmic paradigms.
  • Analyze running time of programs.
  • Data structures.
  • Understand fundamental algorithmic problems.
  • Intrinsic computational limitations.
  • Models of computation.
  • Critical thinking.
  • Prerequisites.
  • COS 226 (array, linked list, search tree, graph,
    heap, quicksort).
  • COS 341 (proof, induction, recurrence,
    probability).

5
Administrative Stuff
  • Lectures (Kevin Wayne)
  • Monday, Wednesday 1000 - 1050, COS 104.
  • TA's (Edith Elkind, Sumeet Sobti)
  • Textbook Introduction to Algorithms (CLR).
  • Grading
  • Weekly problem sets.
  • Collaboration, no-collaboration.
  • Class participation, staff discretion.
  • Undergrad / grad.
  • Course web site courseinfo.princeton.edu/courses
    /COS423_S2001/
  • Fill out questionnaire.

6
Approximate Lecture Outline
  • Algorithmic paradigms.
  • Divide-and-conquer.
  • Greed.
  • Dynamic programming.
  • Reductions.
  • Analysis of algorithms.
  • Amortized analysis.
  • Data structures.
  • Union find.
  • Search trees and extensions.
  • Graph algorithms.
  • Shortest path, MST.
  • Max flow, matching.

7
Approximate Lecture Outline
  • NP completeness.
  • More reductions.
  • Approximation algorithms.
  • Other models of computation.
  • Parallel algorithms.
  • Randomized algorithms.
  • Miscellaneous.
  • Numerical algorithms.
  • Linear programming.

8
College Admissions
Sample problem. Algorithm. Analysis.
References The Stable Marriage Problem by Dan
Gusfield and Robert Irving, MIT Press,
1989. Introduction to Algorithms by Jon Kleinberg
and Éva Tardos.
9
College Admissions
  • Goal Design a self-reinforcing college
    admissions process.
  • Given a set of preferences among colleges and
    applicants, can we assign applicants to colleges
    so that for every applicant X, and every college
    C that X is not attending, either
  • C prefers every one of its admitted students to
    X
  • X prefers her current situation to the situation
    in which she is attending college C.
  • If this holds, the outcome is STABLE.
  • Individual self-interest prevents any applicant /
    college to undermine assignment by joint action.

10
Love, Marriage, and Lying
Standard disclaimer.
11
Stable Matching Problem
  • Problem Given N men and N women, find a
    "suitable" matching between men and women.
  • Participants rate members of opposite sex.
  • Each man lists women in order of preference from
    best to worst.

12
Stable Matching Problem
  • Problem Given N men and N women, find a
    "suitable" matching between men and women.
  • Participants rate members of opposite sex.
  • Each man lists women in order of preference from
    best to worst.
  • Each woman lists men in order of preference.

13
Stable Matching Problem
  • Problem Given N men and N women, find a
    "suitable" matching between men and women.
  • PERFECT MATCHING everyone is matched
    monogamously.
  • each man gets exactly one woman
  • each woman gets exactly one man
  • STABILITY no incentive for some pair of
    participants to undermine assignment by joint
    action.
  • in matching M, an unmatched pair (m,w) is
    UNSTABLE if man m and woman w prefer each other
    to current partners
  • unstable pair could each improve by dumping
    spouses and eloping
  • STABLE MATCHING perfect matching with no
    unstable pairs.(Gale and Shapley, 1962)

14
Example
  • Lavender assignment is a perfect matching.Are
    there any unstable pairs?

Mens Preference List
Womens Preference List
Man
1st
2nd
3rd
Woman
1st
2nd
3rd
Xavier
A
B
C
Amy
Y
X
Z
Yancey
B
A
C
Bertha
X
Y
Z
Zeus
A
B
C
Clare
X
Y
Z
15
Example
  • Green assignment is a stable matching.

Mens Preference List
Womens Preference List
Man
1st
2nd
3rd
Woman
1st
2nd
3rd
A
Y
X
Z
Xavier
B
C
Amy
B
X
Y
Z
Yancey
A
C
Bertha
A
C
X
Y
Z
Zeus
B
Clare
16
Example
  • Orange assignment is also a stable matching.

Mens Preference List
Womens Preference List
Man
1st
2nd
3rd
Woman
1st
2nd
3rd
X
Z
Xavier
A
C
Amy
B
Y
Y
Z
Yancey
B
C
Bertha
A
X
A
X
Y
Zeus
Clare
B
C
Z
17
Stable Roommate Problem
  • Not obvious that any stable matching exists.
  • Consider related "stable roommate problem."
  • 2N people.
  • Each person ranks others from 1 to 2N-1.
  • Assign roommate pairs so that no unstable pairs.

Preference List
1st
2nd
3rd
B
Adam
C
D
Bob
A
D
C
Chris
B
D
A
Doofus
A
B
C
18
Propose-And-Reject Algorithm
  • Intuitive method that guarantees to find a stable
    matching.

19
Implementation and Running Time Analysis
  • Engagements.
  • Maintain two arrays wifem, and husbandw set
    equal to 0 if participant is free.
  • Store list of free men on a stack (queue).
  • Preference lists.
  • For each man, create a linked list of women,
    ordered from favorite to worst.
  • men propose to women at top of list, if rejected
    goto next
  • For each woman, create a "ranking array" such
    that mth entry in array is woman's ranking of man
    m.
  • allows for queries of the form does woman w
    prefer m to m' ?
  • Resource consumption.
  • Time ?(N2).
  • Space ?(N2).
  • Optimal.

20
A Worst Case Instance
  • Number of proposals ? n(n-1) 1.
  • Algorithm terminates when last woman gets first
    proposal.
  • Number of proposals n(n-1) 1 for following
    family of instances.

Men's Preference List
Women's Preference List
Man
1st
2nd
3rd
4th
5th
Man
1st
2nd
3rd
4th
5th
Victor
A
C
B
E
D
Amy
W
Y
X
V
Z
Wyatt
B
D
C
E
A
Bertha
X
Z
Y
W
V
Xavier
C
A
D
E
B
Clare
Y
V
Z
X
W
Yancey
D
B
A
E
C
Diane
Z
W
V
Y
X
A
Zeus
B
C
D
E
V
Erika
W
X
Y
Z
21
Proof of Correctness
  • Observation 1. Men propose to their favorite
    women first.
  • Observation 2. Once a woman is matched, she
    never becomes unmatched. She only "trades up."
  • Fact 1. All men and women get matched (perfect).
  • Suppose upon termination Zeus is not matched.
  • Then some woman, say Amy, is not matched upon
    termination.
  • By Observation 2, Amy was never proposed to.
  • But, Zeus proposes to everyone, since he ends up
    unmatched.(contradiction)

22
Proof of Correctness
  • Observation 1. Men propose to their favorite
    women first.
  • Observation 2. Once a woman is matched, she
    never becomes unmatched. She only "trades up."
  • Fact 2. No unstable pairs.
  • Suppose (Amy, Zeus) is an unstable pair each
    preferseach other to partner in Gale-Shapley
    matching S.
  • Case 1. Zeus never proposed to Amy.
  • Zeus must prefer Bertha to Amy (Observation 1)
  • (Amy, Zeus) is stable. (contradiction)
  • Case 2. Zeus proposed to Amy.
  • Amy rejected Zeus (right away or later)
  • Amy prefers Yancey to Zeus (women only trade
    up)
  • (Amy, Zeus) is stable (contradiction)

S
Amy-Yancey
Bertha-Zeus
23
Understanding the Solution
  • For a given problem instance, there may be
    several stable matchings.
  • Do all executions of Gale-Shapley yield the same
    stable matching?If so, which one?
  • Fact 3. Yes. Gale-Shapley finds MAN-OPTIMAL
    stable matching!
  • Man m is a valid partner of woman w if there
    exists some stable matching in which they are
    married.
  • Man-optimal assignment every man receives best
    valid partner.
  • simultaneously best for each and every man
  • there is no stable matching in which any single
    man individually does better

24
Proof of Fact 3
  • Proof.
  • Suppose, for sake of contradiction, some man
    ispaired with someone other than best partner.
  • since men propose in decreasing order
    ofpreference, some man is rejected by valid
    partner
  • Let Yancey be first such man, and let Amy be
    first valid partner that rejects him.
  • When Yancey is rejected, Amy forms (or reaffirms)
    engagement with man, say Zeus, whom she prefers
    to Yancey.
  • Let Bertha be Zeus' partner in S.
  • Zeus not rejected by any valid partner at the
    point when Yancey is rejected by Amy (since
    Yancey is first to be rejected by valid partner).
    Thus, Zeus prefers Amy to Bertha.
  • But Amy prefers Zeus to Yancey.
  • Thus (Amy, Zeus) is unstable pair in S.

S
Amy-Yancey
Bertha-Zeus
25
Understanding the Solution
  • Fact 4. Gale-Shapley finds WOMAN-PESSIMAL
    matching.
  • Each woman married to worst valid partner.
  • simultaneously worst for each and every woman.
  • there is no stable matching in which any single
    woman individually does worse
  • Proof.
  • Suppose (Amy, Zeus) matched in S, but Zeus is
    not worst valid partner for Amy.
  • There exists stable matching S in which Amy is
    paired with man, say Yancey, whom she likes less
    than Zeus.
  • Let Bertha be Zeus' partner in S.
  • Zeus prefers Amy to Bertha (man optimality).
  • (Amy, Zeus) form unstable pair in S.

S
Amy-Yancey
Bertha-Zeus
26
Understanding the Solution
  • Fact 5. The man-optimal stable matching is
    weakly Pareto optimal.
  • There is no other perfect matching (stable or
    unstable), where every man does strictly better.
  • Proof.
  • Let Amy be last woman in some execution of
    Gale-Shapley (men propose) algorithm to receive a
    proposal.
  • No man is rejected by Amy since algorithm
    terminates when last woman receives first
    proposal.
  • No man matched to Amy will be strictly better off
    than in man-optimal stable matching.

27
Extensions Unacceptable Partners
  • Yeah, but in real-world every woman is not
    willing to marry every man, and vice versa?
  • Some participants declare others as
    "unacceptable."(prefer to be alone than with
    given partner)
  • Algorithm extends to handle partial preference
    lists.
  • Matching S unstable if there exists man m and
    woman w such that
  • m is either unmatched in S, or strictly prefers w
    to his partner in S
  • w is either unmatched in S, or strictly prefers m
    to her partner in S.
  • Fact 6. Men and women are each partitioned into
    two sets
  • those that have partners in all stable matchings
  • those that have partners in none.

28
Extensions Sets of Unequal Size
  • Also, there may be an unequal number of men and
    women.
  • E.g., M 100 men, W 90 women.
  • Algorithm extends.
  • WLOG, assume W lt M.
  • Matching S unstable if there exists man m and
    woman w such that
  • m is either unmatched in S, or strictly prefers w
    to his partner in S
  • w is either unmatched in S, or strictly prefers m
    to her partner in S.
  • Fact 7. All women are matched in every stable
    matching. Men are partitioned into two subsets
  • men who are matched in every stable matching
  • men who are matched in none.

29
Extensions Limited Polygamy
  • What about limited polygamy?
  • E.g., Bill wants 3 women.
  • Algorithm extends.
  • Matching S unstable if there exists man m and
    woman w such that
  • either w is unmatched, or w strictly prefers m to
    her partner
  • either m does not have all its "places" filled in
    the matching, or m strictly prefers w to at least
    one of its assigned residents.

30
Application Matching Residents to Hospitals
  • Sets of unequal size, unacceptable partners,
    limited polygamy.
  • Matching S unstable if there exists hospital h
    and resident r such that
  • h and r are acceptable to each other
  • either r is unmatched, or r prefers h to her
    assigned hospital
  • either h does not have all its places filled in
    the matching, or h prefers r to at least one of
    its assigned residents.

31
Application Matching Residents to Hospitals
  • Matching medical school residents to hospitals.
    (NRMP)
  • Hospitals Men (limited polygamy allowed).
  • Residents Women.
  • Original use just after WWII (predates computer
    usage).
  • Ides of March, 13,000 residents.
  • Rural hospital dilemma.
  • Certain hospitals (mainly in rural areas) were
    unpopular and declared unacceptable by many
    residents.
  • Rural hospitals were under-subscribed in NRMP
    matching.
  • How can we find stable matching that benefits
    "rural hospitals"?
  • Rural Hospital Theorem
  • Rural hospitals get exactly same residents in
    every stable matching!

32
Deceit Machiavelli Meets Gale-Shapley
  • Is there any incentive for a participant to
    misrepresent his/her preferences?
  • Assume you know mens propose-and-reject
    algorithm will be run.
  • Assume that you know the preference lists of all
    other participants.
  • Fact 8. No, for any man yes, for some women!

33
Lessons Learned
  • Powerful ideas learned in COS 423.
  • Isolate underlying structure of problem.
  • Create useful and efficient algorithms.
  • Sometimes deep social ramifications.
  • Historically, men propose to women. Why not vice
    versa?
  • Men propose early and often.
  • Men be more honest.
  • Women ask out the guys.
  • Theory can be socially enriching and fun!
  • CS majors get the best partners!!!

34
Love, Marriage, and Lying Extra Slides
35
Example With a Unique Stable Matching
  • Red matching is unique stable matching.

Mens Preference List
Womens Preference List
Man
1st
2nd
3rd
Woman
1st
2nd
3rd
Z
X
Xavier
B
C
Amy
A
Y
X
Y
Yancey
B
A
Bertha
C
Z
C
Y
X
Zeus
Clare
B
A
Z
36
How to Represent Men and Women
  • Represent men and women as integers between 0 and
    N-1.
  • 0 through N-1 since C array indices start at 0.
  • Could use struct if we want to carry around more
    information, e.g., name, age, astrological sign.

37
How to Represent Marriages
  • Use array to keep track of marriages.

int wifeN int husbN for (m 0 m lt N
m) wifem -1 for (w 0 w lt N w)
husbw -1
38
Filling in Some of the Code
while (marriages lt N) for (m 0 wifem !
-1 m) while (-1 wifem) let w
be man ms favorite women to whom he has not
yet proposed if (-1 husbw) husbm
w wifew m marriages else if (w
prefers m to current fiancé) m' husbw
wifem' -1 husbm w wifew
m
find unmatched man
while (m unmatched)
if (w unmatched) m and w get engaged
m' current fiancé of wm' now unmatchedm and w
get engaged
39
Representing the Preference Lists
  • Use 2D-array to represent preference lists.
  • 2D-array is array of arrays.
  • mpmi w if man ms ith favorite woman is w.
  • wpwi m if woman ws ith favorite man is m.

mp10 3man 1 likes woman 3 the best
int mpNN int wpNN
40
Initializing the Preference Lists
  • Could read from stdin.
  • Well assign random lists for each man and woman.
  • Use randomPermutation function from Lecture P2.
  • Need N random permutations for men, and N for
    women.

int mpNN int wpNN for (m 0 m lt N
m) randomPermutation(mpm, N) for (w 0
w lt N w) randomPermutation(wpw, N)
mpm is man ms preference list array.
41
Dumping
  • Does woman w2 prefer man m13 to man m20?
  • Yes, m1 appears on woman wspreference list
    before m2.

42
Keeping Track of Mens Proposals
  • Unmatched man proposes to most favorable woman to
    whom he hasnt already proposed.
  • How do we keep track of which woman a man has
    proposed to?
  • Men propose in decreasing order of preference.
  • Suffices to keep track of number of proposals in
    array.
  • proposem i if man m has proposed to i woman
    already.

43
Keeping Track of Mens Proposals
  • Unmatched man proposes to most favorable woman to
    whom he hasnt already proposed.
  • How do we keep track of which woman a man has
    proposed to?
  • Men propose in decreasing order of preference.
  • Suffices to keep track of number of proposals in
    array.
  • proposem i if man m has proposed to i woman
    already.

find next woman to propose to
while (-1 wifen) w mpmpropsm
propsm . . .
propsm is ranking of next woman on preference
list make next proposal to woman mpmpropsm
44
Try Out The Code
45
Try Out The Code
46
Try Out The Code
  • Observation code isREALLY slow for large N.

47
Why So Slow?
  • Does woman w2 prefer man m13 to man m20?
  • Need to search through row 2 to find answer.This
    is repeated many times.If N is large, this can
    be very expensive.

48
An Auxiliary Data Structure
  • Create a 2D array that stores mens ranking of
    women.
  • mrmw i if man ms ranking of woman w is i.
  • wrwm i if woman ws ranking of man m is i.

49
An Auxiliary Data Structure
  • Create a 2D array that stores mens ranking of
    women.
  • mrmw i if man ms ranking of woman w is i.
  • wrwm i if woman ws ranking of man m is i.
  • Does man m 3 prefer woman w1 2 to woman w2
    4?

if (mrmw1 lt mrmw2) YES else NO
mrmw1 2mrmw2 4
50
Check if Marriage is Stable
  • Check if husbN and wifeN correspond to a
    stable marriage.
  • Good warmup and useful for debugging.
  • Check every man-woman pair to see if theyre
    unstable.
  • Use ranking arrays.

m prefers w to current wife
w prefers m to current husband
51
Check if Marriage is Stable
  • Check if husbN and wifeN correspond to a
    stable marriage.
  • Good warmup and useful for debugging.
  • Check every man-woman pair to see if theyre
    unstable.
  • Use ranking arrays.
  • Time/space tradeoff for using auxiliary ranking
    arrays.
  • Disadvantage requires twice as much memory
    (storage).
  • Advantage dramatic speedup in running
    time(using 400 MHz Pentium II with N 10,000).
  • 1 second using ranking arrays.
  • 2 hours by searching preference list sequentially!
Write a Comment
User Comments (0)
About PowerShow.com