Skip to content

Commit a774895

Browse files
committed
updated readme
1 parent c926d1c commit a774895

File tree

1 file changed

+56
-9
lines changed

1 file changed

+56
-9
lines changed

README.md

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,75 @@
1-
# Projet MAOA : Placement de centres logistiques
1+
# Logistics Center Placement Problem
22

3-
## Description
3+
Projet sur le placement de centres logistiques avec deux formulations classiques :
4+
- **UFLP** (Uncapacitated Facility Location Problem)
5+
- **p‑centre**
46

5-
Ce projet analyse et résout le problème de placement optimal de centres logistiques sur le territoire français en utilisant des méthodes exactes (PLNE) et heuristiques. Deux variantes classiques de problèmes NP-difficiles sont étudiées :
6-
- **Uncapacitated Facility Location Problem (UFLP)** : Minimisation de la somme des coûts d'installation et de gestion.
7-
- **P-centre** : Minimisation de la distance maximale entre une ville et son centre, sans prendre en compte les coûts d'installation, et on fixe un nombre maximal p de centres à ouvrir.
7+
Le dépôt contient des résolutions exactes (via **Gurobi**) et des heuristiques gloutonnes/iterative, ainsi que des notebooks de comparaison.
88

9-
## Installation des dépendances
9+
## Contenu
10+
- `src/` : implémentations des modèles et heuristiques
11+
- `UFLP.py` : modèle exact UFLP (Gurobi)
12+
- `UFLP_heuristics.py` : random, greedy RCL, tabu search
13+
- `p_centre.py` : modèle exact p‑centre (Gurobi)
14+
- `p_centre_heuristics.py` : random greedy, farthest‑first, density‑based
15+
- `Instance.py`, `Solution.py`, `utils.py` : structures et utilitaires
16+
- `data/` : instances `.flp` et données CSV
17+
- `outputs/` : dessins et sorties générés
18+
- `comparison_experiments_*.ipynb` : notebooks d’expérimentation
19+
- `report.pdf`, `guidelines.pdf` : documents de projet
20+
21+
## Pré‑requis
22+
- Python 3.x
1023
- Une licence Gurobi peut être requise.
1124

25+
Installation :
1226
```
1327
python -m venv .venv
1428
source .venv/bin/activate
1529
python -m pip install -r requirements.txt
1630
```
1731

18-
## Exécution
32+
## Utilisation rapide
33+
Exécuter les scripts depuis la racine du projet.
1934

20-
```
35+
### UFLP (exact)
36+
```bash
2137
python src/UFLP.py
38+
```
39+
40+
### UFLP (heuristiques)
41+
```bash
42+
python src/UFLP_heuristics.py
43+
```
44+
45+
### p‑centre (exact)
46+
```bash
2247
python src/p_centre.py
2348
```
2449

50+
### p‑centre (heuristiques)
51+
```bash
52+
python src/p_centre_heuristics.py
53+
```
54+
55+
Les figures sont enregistrées dans `outputs/drawings/`.
56+
57+
## Données
58+
Les instances `.flp` sont lues via `Instance.from_file(...)`. Le format attendu est de type :
59+
- première ligne : nombre de villes `n`
60+
- lignes suivantes : informations par ville (coordonnées et coût d’ouverture)
61+
62+
## Notebooks
63+
- `comparison_experiments_uflp.ipynb`
64+
- `comparison_experiments_p_centre.ipynb`
65+
66+
Ces notebooks permettent de comparer les heuristiques et les solveurs sur différentes tailles d’instances.
67+
68+
## Remarques
69+
- Les modèles exacts utilisent Gurobi et peuvent nécessiter un temps limite (`time_limit` ou `wall_time_limit`).
70+
- Les heuristiques sont paramétrables (probabilités, taille du voisinage, etc.).
71+
2572
---
2673

2774
- MAMLOUK Haya
28-
- PINHO FERNANDES Enzo
75+
- PINHO FERNANDES Enzo

0 commit comments

Comments
 (0)