Bonjour,
Un petit problème... je ne sais par quel bout le prendre.
Merci de vos contributions.
L'objectif est d'affecter un travail à des ressources matérielles selon une contrainte liée au nombre de personnes pour les utiliser (une personne est nécessaire par ressource et une personne ne peut utiliser qu'une ressource à la fois).
A chaque ressource matérielle correspond un calendrier indiquant l'occupation actuelle de la ressource.
Ce calendrier est défini par un ensemble ordonné d'intervalles ]d ; f] où "d" est la date de début et "f" celle de fin. Chaque intervalle indique que la ressource est déjà occupée sur cette période.
Les "trous", intervalles non définis de l'ensemble, indiquent que la ressource est disponible.
Nous avons également le calendrier des ressources humaines.
Ici nous connaissons un unique calendrier.
Celui ci est constitué d'un ensemble ordonné d'intervalles valués : (]d ; f], x)
Où "d" est la date de début, "f" la date de fin et x le nombre de personnes disponibles sur cette période.
Par convention, une période sans intervalle indique qu'aucune personne n'est disponible.
Voici maintenant le problème :
Soit un travail nécessitant une durée de travail D. Ce travail doit être réparti sur différentes ressources.
Nous voulons choisir n (donné) ressources matérielles pour effectuer ce travail au plus tôt à partir d'une date donnée D.
Est-il possible de trouver une solution sans analyser toutes les combinaisons ?
Comment trouver ces n ressources ?
Les contraintes :
Utiliser un langage de type C/C++/C# ou Java (aucun moteur d'inférence n'est disponible a priori, comme prolog, programmation par contraintes).
La performance : cet algo sera utilisé des milliers de fois dans un algorithme plus large avec une forte contrainte de temps de réponse.
Partager