Projet sur le placement de centres logistiques avec deux formulations classiques :
- UFLP (Uncapacitated Facility Location Problem)
- p‑centre
Le dépôt contient des résolutions exactes (via Gurobi) et des heuristiques gloutonnes/iterative, ainsi que des notebooks de comparaison.
src/: implémentations des modèles et heuristiquesUFLP.py: modèle exact UFLP (Gurobi)UFLP_heuristics.py: random, greedy RCL, tabu searchp_centre.py: modèle exact p‑centre (Gurobi)p_centre_heuristics.py: random greedy, farthest‑first, density‑basedInstance.py,Solution.py,utils.py: structures et utilitaires
data/: instances.flpet données CSVoutputs/: dessins et sorties généréscomparison_experiments_*.ipynb: notebooks d’expérimentationreport.pdf,guidelines.pdf: documents de projet
- Python 3.x
- Une licence Gurobi peut être requise.
Installation :
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
Exécuter les scripts depuis la racine du projet.
python src/UFLP.pypython src/UFLP_heuristics.pypython src/p_centre.pypython src/p_centre_heuristics.pyLes figures sont enregistrées dans outputs/drawings/.
Les instances .flp sont lues via Instance.from_file(...). Le format attendu est de type :
- première ligne : nombre de villes
n - lignes suivantes : informations par ville (coordonnées et coût d’ouverture)
comparison_experiments_uflp.ipynbcomparison_experiments_p_centre.ipynb
Ces notebooks permettent de comparer les heuristiques et les solveurs sur différentes tailles d’instances.
- Les modèles exacts utilisent Gurobi et peuvent nécessiter un temps limite (
time_limitouwall_time_limit). - Les heuristiques sont paramétrables (probabilités, taille du voisinage, etc.).
- MAMLOUK Haya
- PINHO FERNANDES Enzo
Note : 16/20