Apprentissage interactif de la théorie des graphes
Apprentissage interactif de la théorie des graphes
Guest User
Using app without sign in
Solveur de tournées avec capacité
Calcule les itinéraires de livraison optimaux en respectant strictement les capacités individuelles des camions.
Sélectionnez un algorithme et générez les étapes pour commencer la visualisation
Le problème de tournées de véhicules avec capacité (CVRP) ajoute une limite de charge à chaque véhicule : les tournées doivent être planifiées pour que la demande totale de chaque tournée ne dépasse jamais la capacité du véhicule. Cette contrainte rend le problème bien plus réaliste et difficile que le routage simple.
L'heuristique des économies de Clarke-Wright reste le point de départ standard, ne fusionnant les tournées que lorsque la demande combinée tient dans la capacité. Les algorithmes de balayage font tourner un rayon autour du dépôt pour former des groupes respectant la capacité, puis routent chaque groupe comme un TSP. Les solveurs exacts par branch-and-cut-and-price gèrent jusqu'à quelques centaines de clients, tandis que des métaheuristiques modernes comme la recherche génétique hybride livrent des solutions quasi optimales pour des milliers.
Le CVRP régit la planification de chargement des camions en distribution, la livraison de boissons et d'épicerie, la programmation des camions-citernes et la livraison du dernier kilomètre en e-commerce où la capacité du fourgon est contraignante. Des économies de quelques pour cent par un meilleur routage se traduisent par de grandes sommes à l'échelle d'une flotte.
Le CVRP est le VRP avec une limite de charge par véhicule. Cette seule contrainte change quels regroupements sont seulement réalisables, et donc toute la structure de la recherche.
CVRP(depot, clients, capacite Q):
// Construction par economies de Clarke-Wright
demarrer avec une tournee dediee par client
pour chaque paire (i, j):
economie[i][j] = d(dep,i) + d(dep,j) - d(i,j)
trier les paires par economie decroissante
pour chaque paire (i, j) dans cet ordre:
si i et j sont dans des tournees differentes
et sont tous deux extremites de leur tournee
et demande(tournee_i) + demande(tournee_j) <= Q:
fusionner les deux tournees
// Ensuite: 2-opt interne et mouvements entre tournees,
// en rejetant toujours ceux qui violent la capaciteLa valeur d'économie mesure ce que l'on gagne à servir i et j sur la même tournée plutôt que par deux allers-retours distincts. Le test de capacité est ce qui distingue le CVRP du VRP: une fusion peut être très rentable en distance et purement et simplement inadmissible en charge. Toute recherche locale ultérieure doit répéter ce test à chaque mouvement, car un échange entre tournées améliorant la distance peut rendre une tournée irréalisable.
Achemine cinq clients avec un véhicule de capacité 10 et observe comment la contrainte de charge rejette la fusion la plus rentable.
Graphe d'exemple: Dépôt plus cinq clients de demandes C1 égale 4, C2 égale 4, C3 égale 3, C4 égale 3 et C5 égale 2. Chaque véhicule peut transporter 10 unités.
La solution utilise deux véhicules de charges 8 et 8, alors que la fusion la plus attrayante en distance aurait été d'ajouter C3 à la première tournée. Ce rejet constitue toute la différence entre VRP et CVRP: dans le VRP pur cette fusion aurait été acceptée et la solution serait plus courte mais irréalisable. Note en outre que la demande totale vaut 16 et la capacité par véhicule 10, deux véhicules constituent donc le minimum; aucune solution à un seul véhicule n'existe, si bonne que soit l'optimisation.
Temps: NP-difficile; Clarke-Wright O(n^2 log n) · Espace: O(n^2)
La construction par économies de Clarke-Wright calcule une valeur d'économie pour chacune des O(n au carré) paires et les trie, ce qui domine le coût avec O(n au carré log n). Chaque tentative de fusion est un test en temps constant sur les charges et les extrémités de tournées si l'on maintient les structures adéquates. La recherche locale ultérieure coûte O(n au carré) par passe. Le problème lui-même est NP-difficile, puisqu'il contient le TSP, et l'ajout de la capacité le durcit encore en découpant l'espace des solutions réalisables de façon irrégulière. Les méthodes exactes par génération de colonnes résolvent des instances de référence d'une centaine de clients; au-delà on emploie des métaheuristiques. Une borne inférieure utile et gratuite est la demande totale divisée par la capacité, arrondie au supérieur, qui donne le nombre minimal de véhicules.
Chaque contrainte supplémentaire définit une variante distincte avec sa propre littérature et ses propres solveurs.
| Alternative | À préférer quand | Coût |
|---|---|---|
| VRP sans capacité | Les véhicules n'ont pas de limite de charge significative. Espace de recherche plus simple. | NP-difficile |
| Économies de Clarke-Wright | Tu veux une bonne solution initiale rapide respectant la capacité par construction. | O(n^2 log n) |
| VRPTW | En plus de la capacité, il y a des créneaux horaires de livraison. Bien plus contraint. | NP-difficile |
| Flotte hétérogène | Les véhicules ont des capacités et des coûts différents, l'affectation compte donc autant que le routage. | NP-difficile |
| Bin packing | Seul le nombre de véhicules nécessaires t'importe, pas les tournées. La borne inférieure du CVRP en provient. | NP-difficile, bonnes approximations |
Algorithmes associés: Répartition de Flotte (mTSP), Problème du Voyageur de Commerce, Localisation d'Installation