added practicum files, updated gitignore
[fp1415.git] / files / practicum / BoerZoektVrouw.dcl
1 definition module BoerZoektVrouw
2
3 :: Nr :== Int // 1..N
4
5 /* boer_zoekt_vrouw (voorkeuren_mannen,voorkeuren_vrouwen)
6 berekent een 'stable marriage' oplossing tussen de populatie mannen en vrouwen middels het
7 Gale / Shapley algoritme mits de invoer aan de volgende voorwaarden voldoet:
8
9 (1) de lengte N van voorkeuren_mannen is identiek aan de lengte van voorkeuren_vrouwen,
10 en is bovendien een even waarde
11 (2) de voorkeuren van iedere man en iedere vrouw is een permutatie van [1..N]
12
13 De oplossing is een lijst van koppels (man,vrouw) die stabiel is.
14 */
15 boer_zoekt_vrouw :: ([[Nr]],[[Nr]]) -> [(Nr,Nr)]