Skip to content

Instantly share code, notes, and snippets.

View gjorando's full-sized avatar

Guillaume JORANDON gjorando

View GitHub Profile
@gjorando
gjorando / selection.pl
Last active April 5, 2018 09:09
Créer des groupes de passages de N personnes sur la base des disponibilités de P personnes sur M créneaux
% Pour l'utiliser : create_groups(Matrice_de_disponibilites, P, M, N, Resultat).
% Par exemple : create_groups([[1, 0, 0], [1, 1, 0], [0, 1, 0], [1, 1, 1]], 4, 3, 2, A).
% qui peut s'unifier avec A = [[1, 0, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0]] (on voit bien que chaque personne est affectée à un seul créneau, et que chaque créneau affectée comporte exactement deux personnes)
% Code sous licence MIT. (c) 2018 Guillaume Jorandon
% Permet d'utiliser le predicat transpose/2 pour transposer une matrice.
:- use_module(library(clpfd)).
% gen_numeric(Result, Begin, End) : génère un entier entre deux bornes.