Richard Anderson Autumn 2019 Lecture 2

Slides:



Advertisements
Similar presentations
Lecture 14 Go over midterm results Algorithms Efficiency More on prime numbers.
Advertisements

CSE 421 Algorithms Richard Anderson Lecture 2. Announcements Office Hours –Richard Anderson, CSE 582 Monday, 10:00 – 11:00 Friday, 11:00 – 12:00 –Yiannis.
Lecture 4 CSE 331 Sep 9, Blog posts for lectures Starts from today See Sep 8 post on the blog.
Lecture 38 CSE 331 Dec 3, A new grading proposal Towards your final score in the course MAX ( mid-term as 25%+ finals as 40%, finals as 65%) .
CSE 421 Algorithms Richard Anderson Autumn 2006 Lecture 2.
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
CSE 421 Algorithms Richard Anderson Lecture 3. Classroom Presenter Project Understand how to use Pen Computing to support classroom instruction Writing.
Lecture 8 CSE 331 Sep 17, HW 1 due today Place Q1 and Q2 in separate piles I will not accept HWs after 1:15pm.
Lecture 6 CSE 331 Sep 10, Homeworks HW 1 posted online: see blog/piazza Pickup graded HW 0 in TA OHs.
The Stable Marriage Problem
Lecture 4 CSE 331 Sep 6, TA change Swapnoneel will leave us for 531 Jiun-Jie Wang will join us.
Lecture 5 CSE 331 Sep 11, Submit the form I’ll need confirmation in writing. No graded material will be handed back till I get this signed form.
Great Theoretical Ideas in Computer Science.
1 The Stable Marriage Problem Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij.
CSE 421 Algorithms Richard Anderson Winter 2009 Lecture 1.
CSEP 521 Applied Algorithms Richard Anderson Winter 2013 Lecture 1.
CSE 421 Algorithms Richard Anderson (for Anna Karlin) Winter 2006 Lecture 2.
The Stable Marriage Problem
CSCI 256 Data Structures and Algorithm Analysis lecture 1 Some slides by Kevin Wayne copyright 2005, Pearson Addison Wesley all rights reserved, and some.
CSCI 256 Data Structures and Algorithm Analysis Lecture 2 Some slides by Kevin Wayne copyright 2005, Pearson Addison Wesley all rights reserved, and some.
Matching Boys Girls A B C D E
Cybernetica AS & Tartu University
Stable Matching.
Lecture 4 CSE 331 Sep 7, 2016.
Lecture 8 CSE 331 Sep 14, 2011.
CS 583 Fall 2006 Analysis of Algorithms
CSE 421: Introduction to Algorithms
Lecture 5 CSE 331 Sep 10, 2010.
Lecture 4 CSE 331 Sep 6, 2017.
Lecture 6 CSE 331 Sep 11, 2017.
Richard Anderson (for Anna Karlin) Winter 2006 Lecture 1
CSE 311 Foundations of Computing I
Richard Anderson Lecture 28 Coping with NP-Completeness
Organization of Programming Languages
Richard Anderson Autumn 2006 Lecture 1
CSE 421: Introduction to Algorithms
Richard Anderson Lecture 3
Richard Anderson Lecture 28 NP Completeness
Lecture 5 CSE 331 Sep 6, 2013.
Lecture 5 CSE 331 Sep 7, 2012.
Automata and Formal Languages
Richard Anderson Lecture 27 NP Completeness
Richard Anderson Autumn 2015 Lecture 1
Richard Anderson Autumn 2016 Lecture 7
Lecture 7 CSE 331 Sep 13, 2011.
Richard Anderson Autumn 2016 Lecture 2
Richard Anderson Lecture 26 NP-Completeness
Richard Anderson Autumn 2006 Lecture 1
Lecture 6 CSE 331 Sep 12, 2011.
Lecture 9 CSE 331 Sep 20, 2010.
Lecture 5 CSE 331 Sep 5, 2014.
Richard Anderson Autumn 2016 Lecture 8 – Greedy Algorithms II
Lecture 6 CSE 331 Sep 12, 2016.
Richard Anderson Winter 2009 Lecture 2
Lecture 7 CSE 331 Sep 10, 2014.
Richard Anderson Winter 2019 Lecture 1
Piyush Kumar (Lecture 3: Stable Marriage)
Richard Anderson Lecture 27 Survey of NP Complete Problems
Lecture 5 CSE 331 Sep 9, 2011.
Richard Anderson Winter 2019 Lecture 7
Richard Anderson Winter 2019 Lecture 4
Lecture 7 CSE 331 Sep 11, 2013.
Richard Anderson Autumn 2015 Lecture 7
Richard Anderson Winter 2019 Lecture 2
Richard Anderson Lecture 25 NP Completeness
Richard Anderson Autumn 2016 Lecture 1
Richard Anderson Autumn 2015 Lecture 2
Richard Anderson Autumn 2019 Lecture 7
Richard Anderson Autumn 2019 Lecture 1 Announcements only
CSE 421 Richard Anderson Autumn 2019, Lecture 3
Presentation transcript:

Richard Anderson Autumn 2019 Lecture 2 CSE 421 Algorithms Richard Anderson Autumn 2019 Lecture 2

Announcements It’s on the web. Homework due Wednesdays HW 1, Due Wednesday, October 2, 1:30 pm It’s on the web Submit solutions on canvas pay attention to making explanations clear and understandable You should be on the course mailing list But it will probably go to your uw.edu account

Course Mechanics Homework Exams (In class) Approximate grade weighting Due Wednesdays About 5 problems, sometimes programming Target: 1 week turnaround on grading Exams (In class) Midterm, Wednesday, October 30, 2019 Final, Monday, December 9, 2:30-4:20 pm Approximate grade weighting HW: 50, MT: 15, Final: 35 Course web Slides, Handouts Instructor Office hours (CSE2 344): Monday 2:40-3:30, Wednesday 2:40-3:30

Stable Matching: Formal Problem Input Preference lists for m1, m2, …, mn Preference lists for w1, w2, …, wn Output Perfect matching M satisfying stability property (e.g., no instabilities) :  m’, w’’, (m’, w’’) is NOT an instability For all m’, m’’, w’, w’’ If (m’, w’)  M and (m’’, w’’)  M then (m’ prefers w’ to w’’) or (w’’ prefers m’’ to m’)

Idea for an Algorithm m proposes to w If w is unmatched, w accepts If w is matched to m2 If w prefers m to m2, w accepts m, dumping m2 If w prefers m2 to m, w rejects m Unmatched m proposes to the highest w on its preference list that it has not already proposed to

Algorithm Initially all m in M and w in W are free While there is a free m w highest on m’s list that m has not proposed to if w is free, then match (m, w) else suppose (m2, w) is matched if w prefers m to m2 unmatch (m2, w) match (m, w)

Example m1 w1 m2 w2 m3 w3 m1: w1 w2 w3 m2: w1 w3 w2 m3: w1 w2 w3 w1: m2 m3 m1 w2: m3 m1 m2 w3: m3 m1 m2 m2 w2 m3 w3 Order: m1, m2, m3, m1, m3, m1 Order: m1, m2, m3, m1, m3, m1

Does this work? Does it terminate? Is the result a stable matching? Begin by identifying invariants and measures of progress m’s proposals get worse (have higher m-rank) Once w is matched, w stays matched w’s partners get better (have lower w-rank)

Claim: If an m reaches the end of its list, then all the w’s are matched

Claim: The algorithm stops in at most n2 steps Each m asks each w at most once

When the algorithms halts, every w is matched Hence, the algorithm finds a perfect matching Invariant: partial matching What happens when some m reaches its last choice? exactly n-1 w’s much be matched last choice must be available

The resulting matching is stable Suppose (m1, w1)  M, (m2, w2)  M m1 prefers w2 to w1 How could this happen? m1 w1 m2 w2 m1 proposed to w2 before w1 w2 rejected m1 for m3 w2 prefers m3 to m1 w2 prefers m2 to m3

Result Simple, O(n2) algorithm to compute a stable matching Corollary A stable matching always exists

A closer look Stable matchings are not necessarily fair m1: w1 w2 w3 w1: m2 m3 m1 w2: m3 m1 m2 w3: m1 m2 m3 m2 w2 m3 w3 How many stable matchings can you find?

Algorithm under specified Many different ways of picking m’s to propose Surprising result All orderings of picking free m’s give the same result Proving this type of result Reordering argument Prove algorithm is computing something mores specific Show property of the solution – so it computes a specific stable matching

M-rank and W-rank of matching m-rank: position of matching w in preference list M-rank: sum of m-ranks w-rank: position of matching m in preference list W-rank: sum of w-ranks m1: w1 w2 w3 m2: w1 w3 w2 m3: w1 w2 w3 w1: m2 m3 m1 w2: m3 m1 m2 w3: m3 m1 m2 m1 w1 m2 w2 m3 w3 What is the M-rank? What is the W-rank?

Suppose there are n m’s, and n w’s What is the minimum possible M-rank? What is the maximum possible M-rank? Suppose each m is matched with a random w, what is the expected M-rank?

Random Preferences Suppose that the preferences are completely random m1: w8 w3 w1 w5 w9 w2 w4 w6 w7 w10 m2: w7 w10 w1 w9 w3 w4 w8 w2 w5 w6 … w1: m1 m4 m9 m5 m10 m3 m2 m6 m8 m7 w2: m5 m8 m1 m3 m2 m7 m9 m10 m4 m6 If there are n m’s and n w’s, what is the expected value of the M-rank and the W-rank when the proposal algorithm computes a stable matching?

Stable Matching Algorithms M Proposal Algorithm Iterate over all m’s until all are matched W Proposal Algorithm Change the role of m’s and w’s Iterate over all w’s until all are matched

Best choices for one side may be bad for the other Design a configuration for problem of size 4: M proposal algorithm: All m’s get first choice, all w’s get last choice W proposal algorithm: All w’s get first choice, all m’s get last choice m1: m2: m3: m4: w1: w2: w3: w4: M’s: 1342 2341 3124 4123 W’s: 2341 1342 4123 3124

But there is a stable second choice Design a configuration for problem of size 4: M proposal algorithm: All m’s get first choice, all w’s get last choice W proposal algorithm: All w’s get first choice, all m’s get last choice There is a stable matching where everyone gets their second choice m1: m2: m3: m4: w1: w2: w3: w4: M’s: 1342 2431 3214 4123 W’s: 2431 1342 4123 3214

What is the run time of the Stable Matching Algorithm? Initially all m in M and w in W are free While there is a free m w highest on m’s list that m has not proposed to if w is free, then match (m, w) else suppose (m2, w) is matched if w prefers m to m2 unmatch (m2, w) match (m, w) Executed at most n2 times

O(1) time per iteration Find free m Find next available w If w is matched, determine m2 Test if w prefer m to m2 Update matching

What does it mean for an algorithm to be efficient?

Key ideas Formalizing real world problem Model: graph and preference lists Mechanism: stability condition Specification of algorithm with a natural operation Proposal Establishing termination of process through invariants and progress measure Under specification of algorithm Establishing uniqueness of solution