Skip to content

Stalkyyy/logistics-center-placement-problem

Repository files navigation

Logistics Center Placement Problem

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.

Contenu

  • src/ : implémentations des modèles et heuristiques
    • UFLP.py : modèle exact UFLP (Gurobi)
    • UFLP_heuristics.py : random, greedy RCL, tabu search
    • p_centre.py : modèle exact p‑centre (Gurobi)
    • p_centre_heuristics.py : random greedy, farthest‑first, density‑based
    • Instance.py, Solution.py, utils.py : structures et utilitaires
  • data/ : instances .flp et données CSV
  • outputs/ : dessins et sorties générés
  • comparison_experiments_*.ipynb : notebooks d’expérimentation
  • report.pdf, guidelines.pdf : documents de projet

Pré‑requis

  • 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

Utilisation rapide

Exécuter les scripts depuis la racine du projet.

UFLP (exact)

python src/UFLP.py

UFLP (heuristiques)

python src/UFLP_heuristics.py

p‑centre (exact)

python src/p_centre.py

p‑centre (heuristiques)

python src/p_centre_heuristics.py

Les figures sont enregistrées dans outputs/drawings/.

Données

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)

Notebooks

  • comparison_experiments_uflp.ipynb
  • comparison_experiments_p_centre.ipynb

Ces notebooks permettent de comparer les heuristiques et les solveurs sur différentes tailles d’instances.

Remarques

  • Les modèles exacts utilisent Gurobi et peuvent nécessiter un temps limite (time_limit ou wall_time_limit).
  • Les heuristiques sont paramétrables (probabilités, taille du voisinage, etc.).

  • MAMLOUK Haya
  • PINHO FERNANDES Enzo

Note : 16/20

About

P‑centre and UFLP solvers in Python with exact MILP, relaxations, and heuristics, plus notebooks for experimental comparisons and scaling analyses.

Topics

Resources

Stars

Watchers

Forks

Contributors