Post

Ring-Star Problem — Optimisation du Transport Public

Résolution d'un problème NP-difficile combinant p-médian et TSP pour l'optimisation de réseaux de transport.

Ring-Star Problem — Optimisation du Transport Public

Contexte

Dans le cadre d’un projet d’optimisation combinatoire, j’ai modélisé et résolu le Ring-Star Problem (RSP) — un problème NP-difficile issu de la conception de réseaux de transport public.

L’objectif est de sélectionner un sous-ensemble de nœuds à relier en cycle (ring) et d’affecter les nœuds restants au nœud du cycle le plus proche (star), tout en minimisant le coût total.

Problématique

Le RSP combine deux problèmes classiques :

  • p-médian : sélectionner p centres minimisant les distances d’affectation
  • TSP : relier ces centres en un tour de coût minimal

Formellement, il s’agit de minimiser :

\[\min \sum_{(i,j) \in E} c_{ij} x_{ij} + \sum_{i \in V} \sum_{j \in V} d_{ij} y_{ij}\]

sous contraintes de cycle hamiltonien sur les nœuds sélectionnés et d’affectation unique pour les autres.

Solution mise en œuvre

Architecture

Données (TSPlib) │ ├── Heuristique constructive (glouton) │ └── Solution initiale rapide │ ├── Amélioration itérative (2-opt, réaffectation) │ └── Optimisation locale │ └── Formulation PLNE compacte (PuLP / OR-Tools) └── Solution exacte sur petites instances

Technologies utilisées

OutilRôle
PythonImplémentation des algorithmes
NumPyCalcul matriciel des distances
OR-Tools / PuLPSolveur PLNE
MatplotlibVisualisation des solutions
TSPlibInstances de référence réelles

Méthodes implémentées

1. Heuristique gloutonne

Construction d’une solution initiale par sélection itérative des nœuds minimisant le coût marginal d’insertion dans le cycle.

2. Amélioration par voisinage

  • 2-opt sur le cycle pour éliminer les croisements
  • Réaffectation des nœuds étoile vers le centre le plus proche
  • Randomisation pour échapper aux minima locaux

3. Formulation PLNE compacte

Variables binaires $x_{ij}$ (arcs du cycle) et $y_{ij}$ (affectations étoile), avec contraintes d’élimination de sous-tours (MTZ).

Résultats

  • Analyse de performance sur instances TSPlib (eil51, kroA100, pr107)
  • Variation du paramètre p (nombre de nœuds dans le cycle) de 5 à 30
  • Comparaison heuristique vs PLNE en qualité de solution et temps de calcul
  • Visualisation des tournées (stations en anneau, arrêts affectés en étoile)
InstancepCoût heuristiqueCoût PLNEGap
eil51104784613.7%
kroA1001521 430
pr1071244 820

PLNE interrompu après 10 min sur les grandes instances.

Code source

Le code est disponible sur GitHub : lamine2004sow/ring-star-problem

Ce que j’ai appris

  • Modéliser un problème NP-difficile réel à partir de la littérature scientifique
  • Concevoir des heuristiques efficaces et analyser leur qualité par rapport à l’optimal
  • Utiliser un solveur PLNE (OR-Tools) et interpréter les relaxations linéaires
  • L’importance du choix du paramètre p sur la topologie du réseau résultant
This post is licensed under CC BY 4.0 by the author.