270 likes | 466 Views
Het Stable Marriage probleem. A-Voordracht, Overdragen, 8-12-2010 Frans-Willem Hardijzer fw@hardijzer.nl. Indeling. Probleem omschrijving Oorsprong Definitie Voorbeeld Toepassingen Oplossing Brute-force oplossing Gale-Shapley algoritme Voorbeeld Correctheid en eigenschappen Variaties.
E N D
HetStable Marriage probleem A-Voordracht, Overdragen, 8-12-2010Frans-Willem Hardijzer fw@hardijzer.nl
Indeling • Probleem omschrijving • Oorsprong • Definitie • Voorbeeld • Toepassingen • Oplossing • Brute-force oplossing • Gale-Shapley algoritme • Voorbeeld • Correctheid en eigenschappen • Variaties
Probleem omschrijving Het Stable Marriage Probleem
Oorsprong • “College admissions and stability of marriage”1962, D. Gale & L. S. Shapley, Brown University • Originele probleem: College admissions • Universiteiten kunnen q studenten toelaten • N studenten • Voorkeur studenten & universiteiten bekend • Studenten voorkeur weegt hoger • Stable, waarbij unstable betekent dat • Twee studenten a en b • Toegewezen aan resp. Universiteit A en B • Maar b voorkeur voor A, en A voorkeur voor b • Optimaal voor studenten • Elke student minstens even goed af als andere matchings
Definitie “Stable Marriage” Zelfde probleem, simpeler: • Evenveel universiteiten als studenten • Slechts 1 toegelaten student “A certain community consists of n men and n women. Each person ranks those of the opposite sex in accordance with his or her preferences for a marriage partner. We seek a satisfactory way of marrying off all members of the community. [...], we call a set of marriages unstable[...] if under it there are a man and a woman who are not married to each other but prefer each other to their actual mates.”
Voorbeeld: Wat is stable? Stel een willekeurige matching
Voorbeeld: Wat is stable? • Blocking pairs: • Little Princess & Jokertje hebben liever elkaar (2, 2) dan partners (3, 3) • Barbie & Sterretje (3, 3), partners (4, 4) • Barbie & Matsoe Matsoe (2, 2), partners (4, 4)
Andere toepassingen • Stabiele huwelijken • Studenten toelaten universiteit • Speed-date vervolg dates • Ziekenhuis-stages met medische studenten • Studenten met studentenhuizen (hospiteren)
Oplossing Het Stable Marriage Probleem
Algoritme nodig? • Brute force: • Voor elke mogelijke matching (n!) • Check alle mogelijke paren (n2) • Als geen paren liever bij elkaar zijn, • Stable! • O(n! * n2) => traag • Hoe traag?
Gale-Shapley Algoritme • Elke man vraagt zijn favoriete vrouw ten huwelijk. • Elke vrouw verlooft zich met haar beste aanzoek. • Zolang er nog onverloofde mannen zijn, vragen die de volgende op hun lijst ten huwelijk. • Bij elk aanzoek zal een vrouw zich verloven met haar hoogste voorkeur, en daarbij eventueel haar eerdere verloving verbreken. • Als alle vrouwen verloofd zijn, is het ritueel voorbij, en kunnen alle verloofde stelletjes trouwen.
Voorbeeld • Jokertje vraagt Elize • Sniper vraagt Barbie • Sterretje vraagt Elize • Matsoe Matsoe vraagt Little Princess
Voorbeeld • Elize accepteert Sterretje, en slaat Jokertje af. • Barbie accepteert Sniper. • Little Princess accepteert Matsoe Matsoe. • Jokertje vraagt nu Little Princess, zijn 2e keus.
Voorbeeld • Little Princess dumpt Matsoe Matsoe, en accepteert Jokertje. • Matsoe Matsoe gaat nu voor zijn 2e keus: Barbie
Voorbeeld • Barbie dumpt Sniper, en accepteert Matsoe Matsoe • Sniper gaat ditmaal voor zijn 2e keus: Elize
Voorbeeld • Elize dumpt nu Sterretje, en verlooft zich met haar prins op het witte paard: Sniper • Sterretje doet nu een poging Kabouter voor zich te scoren
Voorbeeld • Kabouter accepteert het verzoek van Sterretje • Een stable oplossing is gevonden.
Resultaat is stable • Stel dat Jan en Jet niet zijn getrouwd, maar Jan heeft Jet liever dan zijn eigen vrouw. • Dan heeft Jan voor zijn huidige vrouw al eens een aanzoek gedaan aan Jet,maar is afgewezen. • Jet geeft dus de voorkeur aan haar huidige man. • Gale-Shapley resulteert dus altijd in een stabiele set huwelijken.
Altijd een resultaat • Zolang er nog vrouwen zijn zonder verloofde, zullen er nieuwe verlovingen optreden of verbroken worden. • Dus als het algoritme ten einde komt, heeft iedereen een verloving. • Een man kan een specifieke vrouw slechts 1 keer ten huwelijk vragen. • Dus na op zijn meest n2 stappen, is het algoritme klaar. • Oplossing in O(n2) te vinden.
Optimaliteit • Optimaal voor wie ? • Mannen • Doen nooit een aanzoek, tenzij afgewezen door alle betere keuzes. • Vrouwen eventueel slechtere match als gewilde man geen aanzoek doet.
Variaties Het Stable Marriage Probleem
Simpele variaties • Ongelijk aantal mannen en vrouwen • Als mannen < vrouwen, stop zodra verlovingen gelijk aan mannen. • Als vrouwen < mannen, stop zodra alle mannen verloofd of door iedereen afgewezen zijn. • Studenten bij universiteiten • Studenten solliciteren bij universiteit • Universiteit houdt wachtlijst bij, meerdere studenten • Als alle studenten op wachtlijst of afgewezen, wachtlijsten toelaten • Gedeelde plaatsen in voorkeurslijst? • Willekeurige volgorde toewijzen, oude probleem.
Moeilijke variaties • Universiteiten-studenten, met koppels • Koppels willen bij elkaar blijven • NP compleet • Stable roommates: niet opgesplitst in man-vrouw • Niet altijd oplosbaar
Samenvatting Het Stable Marriage Probleem
Stable Marriage Probleem • Gale-Shapley algoritme • Complexiteit O(n2) • Altijd stable, altijd mogelijk • Optimaal voor mannen (of proposers) • Toepasbaar op • Huwelijken • Stages • Kamers • Vervolg dates • Universiteits toelating