summaryrefslogtreecommitdiff
path: root/files/practicum/BoerZoektVrouw.dcl
blob: b5a60cc66e09c0a34bca6f7220bff38539fd00b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
definition module BoerZoektVrouw

::	Nr :== Int    // 1..N

/*	boer_zoekt_vrouw (voorkeuren_mannen,voorkeuren_vrouwen)
	berekent een 'stable marriage' oplossing tussen de populatie mannen en vrouwen middels het 
	Gale / Shapley algoritme mits de invoer aan de volgende voorwaarden voldoet:
	
	(1) de lengte N van voorkeuren_mannen is identiek aan de lengte van voorkeuren_vrouwen,
	    en is bovendien een even waarde
	(2) de voorkeuren van iedere man en iedere vrouw is een permutatie van [1..N]
	
	De oplossing is een lijst van koppels (man,vrouw) die stabiel is.
*/
boer_zoekt_vrouw :: ([[Nr]],[[Nr]]) -> [(Nr,Nr)]