HET STABLE MARRIAGE PROBLEEM A-Voordracht, Overdragen, Frans-Willem Hardijzer 1
Indeling Probleem omschrijving Oorsprong Definitie Voorbeeld Toepassingen Oplossing Brute-force oplossing Gale-Shapley algoritme Voorbeeld Correctheid en eigenschappen Variaties 2
PROBLEEM OMSCHRIJVING Het Stable Marriage Probleem 3
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 4
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.” 5
Voorbeeld: Wat is stable? JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize
Voorbeeld: Wat is stable? JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize Stel een willekeurige matching
Voorbeeld: Wat is stable? JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize 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) 9
OPLOSSING Het Stable Marriage Probleem 10
Algoritme nodig? Brute force: Voor elke mogelijke matching (n!) Check alle mogelijke paren (n 2 ) Als geen paren liever bij elkaar zijn, Stable! O(n! * n 2 ) => traag Hoe traag? 11 N T0,01s0,03s0,2s3s14s2m40m
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. 12
Voorbeeld JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize
Voorbeeld JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize Jokertje vraagt Elize Sniper vraagt Barbie Sterretje vraagt Elize Matsoe Matsoe vraagt Little Princess
Voorbeeld JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize Elize accepteert Sterretje, en slaat Jokertje af. Barbie accepteert Sniper. Little Princess accepteert Matsoe Matsoe. Jokertje vraagt nu Little Princess, zijn 2 e keus.
Voorbeeld JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize Little Princess dumpt Matsoe Matsoe, en accepteert Jokertje. Matsoe Matsoe gaat nu voor zijn 2 e keus: Barbie
Voorbeeld JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize Barbie dumpt Sniper, en accepteert Matsoe Matsoe Sniper gaat ditmaal voor zijn 2 e keus: Elize
Voorbeeld JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize 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 JokertjeSniperSterretjeMatsoe Kabouter Barbie Little Princess Elize 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. 20
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 n 2 stappen, is het algoritme klaar. Oplossing in O(n 2 ) te vinden. 21
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. 22
VARIATIES Het Stable Marriage Probleem 23
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. 24
Moeilijke variaties Universiteiten-studenten, met koppels Koppels willen bij elkaar blijven NP compleet Stable roommates: niet opgesplitst in man-vrouw Niet altijd oplosbaar 25
SAMENVATTING Het Stable Marriage Probleem 26
Stable Marriage Probleem Gale-Shapley algoritme Complexiteit O(n 2 ) Altijd stable, altijd mogelijk Optimaal voor mannen (of proposers) Toepasbaar op Huwelijken Stages Kamers Vervolg dates Universiteits toelating 27