on stable marriages and greedy matchings
play

On Stable Marriages and Greedy Matchings Fredrik Manne University - PowerPoint PPT Presentation

On Stable Marriages and Greedy Matchings Fredrik Manne University of Bergen, Norway Md. Naim, Hkon Lerring, Mahantesh Halappanavar Background The Stable Marriage (SM) problem has a long and rigorous history. Greedy Matchings (GM) have


  1. On Stable Marriages and Greedy Matchings Fredrik Manne University of Bergen, Norway Md. Naim, Håkon Lerring, Mahantesh Halappanavar

  2. Background The Stable Marriage (SM) problem has a long and rigorous history. Greedy Matchings (GM) have applica&ons in CSC applica&ons. Objec&ve: ‣ Formalize the connec&ons between the Stable Marriage problem and compu&ng Greedy Matchings. Consequences: ‣ Many ”new” algorithms for compu&ng GM are variants of algorithms for SM. ‣ Parallel algorithms for compu&ng GM can also be applied to SM.

  3. The Stable Marriage Problem 1 2 3 4 1 2 3 4 (w 3 , w 2 , w 1 , w 4 ) (m 4 , m 2 , m 3 , m 1 ) m 1 w 1 (m 1 , m 2 , m 3 , m 4 ) (w 1 , w 4 , w 3 , w 2 ) m 2 w 2 (w 1 , w 2 , w 3 , w 4 ) (m 3 , m 2 , m 1 , m 4 ) m 3 w 3 (m 2 , m 4 , m 3 , m 1 ) (w 2 , w 4 , w 3 , w 1 ) m 4 w 4

  4. The Gale-Shapley Algorithm 1 2 3 4 1 2 3 4 (w 3 , w 2 , w 1 , w 4 ) (m 4 , m 2 , m 3 , m 1 ) m 1 w 1 (m 1 , m 2 , m 3 , m 4 ) (w 1 , w 4 , w 3 , w 2 ) m 2 w 2 (w 1 , w 2 , w 3 , w 4 ) (m 3 , m 2 , m 1 , m 4 ) m 3 w 3 (m 2 , m 4 , m 3 , m 1 ) (w 2 , w 4 , w 3 , w 1 ) m 4 w 4

  5. The McVitie-Wilson Algorithm 1 2 3 4 1 2 3 4 (w 3 , w 2 , w 1 , w 4 ) (m 4 , m 2 , m 3 , m 1 ) m 1 w 1 (m 1 , m 2 , m 3 , m 4 ) (w 1 , w 4 , w 3 , w 2 ) m 2 w 2 (w 1 , w 2 , w 3 , w 4 ) (m 3 , m 2 , m 1 , m 4 ) w 3 m 3 (m 2 , m 4 , m 3 , m 1 ) (w 2 , w 4 , w 3 , w 1 ) w 4 m 4 Implementation: GS uses a queue while MW uses a stack for the remaining men

  6. Greedy Matching 4 M = Ø While there are edges remaining 1 e = heaviest edge 5 3 M = M U {e} 6 remove edges incident on e 2 w(greedy) ≥ 0.5 w(optimal)

  7. Computing a Greedy Matching using a Stable Marriage algorithm (w 3 , w 4 , w 2 ) (m 3 , m 4 , m 2 ) 4 m 1 w 1 1 2 1 (m 1 , m 3 , m 4 ) (w 1 , w 3 , w 4 ) 5 3 m 2 w 2 6 (w 1 , w 2 , w 4 ) (m 1 , m 2 , m 4 ) 4 3 m 3 w 3 2 (m 1 , m 3 , m 2 ) (w 1 , w 3 , w 2 ) m 4 w 4

  8. Using McVitie-Wilson directly (m 1 , m 3 , m 4 ) (m 3 , m 4 , m 2 ) m 1 m 2 (m 1 , m 2 , m 4 ) (m 1 , m 3 , m 2 ) m 4 m 3 This is exactly the suitor-algorithm [Manne & Halappanavar 14] which builds on: ‣ The pointer algorithm [Manne & Bisseling 08] ‣ The Preis algorithm [Preis 99]

  9. Going parallel Threads run either the Gayle-Shapley or the McVitie-Wilson algorithm t 1 Use compare-and-swap to protect “women” t 2 Implementations using both OpenMP and t 3 GPU t 4

  10. “Easy” problems • Each man selects between log n and 2 log n women and ranks randomly. • Women rank men who rank them (randomly). • Expected total work n log n OpenMP: Using 36 threads on two Intel Xeon E5-2699 processors GPU: Tesla K40m with 2880 cores 18 OpenMP: McVitie-Wilson Gale-Shapley OpenMP speedup 1 . 2 OpenMP: Gale-Shapley McVitie-Wilson GPU speedup GPU: McVitie-Wilson 16 1 14 0 . 8 Time (seconds) Speedup 12 0 . 6 10 0 . 4 8 0 . 2 6 0 5M 10M 15M 20M 25M 5M 10M 15M 20M 25M N N

  11. “Hard” problems • Each man uses the same total ranking of all the women • Each woman uses the same total ranking of all the men. • Expect high contention for the same “women” • Total work will be (n+1)n/2 OpenMP: McVitie-Wilson 400K McVitie-Wilson 250 OpenMP: Gale-Shapley 400K Gale-Shapley GPU: McVitie-Wilson 20 500K McVitie-Wilson 500K Gale-Shapley 200 15 Time (seconds) 150 Speedup 10 100 5 50 0 0 100K 200K 300K 400K 500K 1 9 18 27 36 N Threads

  12. Concluding Remarks • Recent greedy b-matching algorithms also follows directly from algorithms for the many-to-many stable assignment problem. • Major open question [Manlove 13]: Is Stable Marriage in NC? ‣ Maybe not so relevant… • Stable Marriage assumes sorted priority lists, whereas Greedy Matching makes no such assumption. ‣ Preis solved Greedy Matching in O(m) time. ‣ Can Stable Matching with unsorted weighted priority lists also be solved in O(m) time?

  13. Gale-Shapley implementation Place all vertices in queue Q (w 3 , w 2 , w 1 , w 4 ) while Q ≠ Ø p p p u = Q.first() u p = nextCandidate(u) while r p (u) > r p (suitor(p)) p = nextCandidate(u) if suitor(p) ≠ null (m 4 , m 2 , m 3 , m 1 ) Q.add(suitor(p)) p suitor(p) = u suitor(p)

Recommend


More recommend