Skip to content

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

Notifications You must be signed in to change notification settings

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 2

  •  
  •