Ce projet porte sur la modélisation et la résolution du problème d'affectation des infirmières (Nurse Rostering) à l'aide d'un programme linéaire en nombres entiers (PLNE).
Résumé : Modélisation et résolution mathématique du problème de planification des infirmières. L'objectif est de concevoir un modèle mathématique capable de générer des plannings optimaux sur un horizon donné, tout en respectant de strictes contraintes de service (temps de repos, successions, durées) et en minimisant les pénalités liées aux préférences du personnel. La validation s'appuie sur une résolution par solveur (PuLP) sur 24 instances de test, documentée par un rapport technique et un code source structuré en Python.
-
ÉTAPE 1 : Modélisation Mathématique
- Modélisation théorique du sujet (Ensembles, Paramètres, Variables, Contraintes dures/souples et Fonction objective).
- À retrouver en détail dans le fichier
Modelisation_Mathematique.md.
-
ÉTAPE 2 : Implémentation du Socle Métier
-
parser.py: Fonction de lecture pour extraire et structurer les données des fichiers d'instances au format texte. -
evaluator.py: Script contenant l'évaluateur métier pour vérifier si une solution est réalisable (respect strict et exact des 9 contraintes dures par fenêtres glissantes) et calculer la valeur de la fonction objective$Z$ . -
Export XML : Intégration d'une fonction de sauvegarde des résultats au format
.ros(norme INRC).
-
-
ÉTAPE 3 : Résolution, Automatisation et Visualisation
-
main.py: Intégration du solveur mathématique open-source via l'API Pythonpulppour contourner les limites de licences. - Automatisation Batch : Script programmé pour résoudre automatiquement les 24 instances à la suite, avec une limite de temps de 60 secondes par instance complexe.
-
Outputs : Génération automatique des fichiers de plannings (
.ros) et d'un fichier de synthèseresultats_projet.csv(Score, Statut, Temps de calcul). -
visualizer.py: Développement d'un visualiseur Python autonome générant un fichier HTML coloré pour analyser graphiquement les plannings directement dans le navigateur sous Kali Linux.
-
-
ÉTAPE 4 : Analyse et Documentation
- Rapport technique : Rédaction d'un rapport détaillant les méthodes retenues, la démarche, l'adéquation parfaite entre le code et les équations, ainsi que l'analyse des résultats issus du fichier CSV. Ce rapport mettra en évidence le rôle et les tâches de chaque membre de l'équipe.
- Dépôt final : Préparation de l'archive contenant le code source documenté et le rapport final pour le dépôt sur Moodle.