L'objectif principal de l'API Route Optimization est de trouver les itinéraires les moins coûteux. Par conséquent, le modèle de coût est le principal facteur d'optimisation des itinéraires.
Le modèle de coût est un ensemble de propriétés qui spécifient les coûts globaux, les coûts des véhicules et les coûts des envois.
Les propriétés du modèle de coût sont compatibles avec les types d'objectifs d'optimisation suivants :
- Attribution de véhicules et itinéraires efficaces
- Délais de retrait et de livraison économiques
- Priorisation des envois critiques
Structure
Comme le montre le schéma, les propriétés du modèle de coût sont structurées comme suit :
Shipmentcontient la propriétépenaltyCost.Vehiclecontient les propriétés suivantes :
Ce document ne présente que les paramètres essentiels du modèle de coût. Consultez la documentation de référence pour connaître l'ensemble des paramètres de coût.
Checklist Essentials
La checklist suivante décrit les connaissances essentielles pour éviter les erreurs potentielles liées aux coûts. Cette liste peut vous aider à valider votre requête et à résoudre les problèmes liés à votre réponse.
Propriétés
Le tableau suivant liste et décrit les propriétés du modèle de coût.
| Parent | Nom de propriété | Type de propriété | Coût par | Description de la propriété |
|---|---|---|---|---|
Shipment |
penaltyCost |
nombre | Livraison interrompue | Coût encouru en ignorant l'envoi. L'API ignore un envoi lorsque le coût de sa réalisation dépasse son coût de pénalité.
|
Vehicle |
fixedCost |
nombre | Livraison | Coût fixe appliqué si ce véhicule est utilisé pour gérer un envoi. |
costPerHour |
nombre | Heure | Coût d'utilisation d'un véhicule par heure, y compris les temps de trajet, d'attente, de visite et de pause. À mesure que ce coût augmente, l'optimiseur tente de trouver des itinéraires plus rapides, qui ne sont pas nécessairement les plus courts. Cette propriété peut être un coût par véhicule autonome efficace en raison de sa simplicité et de son exhaustivité. |
|
costPerKilometer |
nombre | kilomètre | Coût par kilomètre parcouru par le véhicule, qui peut représenter les coûts de carburant ou les coûts d'entretien amortis du véhicule. | |
costPerTraveledHour |
nombre | Heure | Coût d'exploitation d'un véhicule par heure uniquement pendant le transport, à l'exclusion des temps d'attente, de visite et de pause. Cela permet de privilégier les itinéraires plus rapides par rapport aux itinéraires plus courts. |
Exemples
Cette section présente trois types d'exemples :
- Exemples de code illustrant la structure des propriétés du modèle de coût.
- Exemple de scénario qui montre une façon d'utiliser les propriétés du modèle de coût pour atteindre un objectif d'entreprise.
- Un exemple de requête qui inclut les valeurs définies dans l'exemple de scénario.
Exemples de code
L'exemple de code suivant montre la structure des propriétés du modèle de coût dans Shipment :
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
L'exemple de code suivant montre la structure des propriétés du modèle de coût dans Vehicle :
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
Exemple de scénario
Cette section décrit un scénario dans lequel vous gérez une garderie pour chiens. Vous optimisez un itinéraire pour le camion que vous utilisez pour récupérer les chiens chez eux. Dans ce scénario, vous souhaitez que l'optimiseur tienne compte des coûts liés à la prise en charge des chiens et à l'utilisation du véhicule lorsqu'il fournit un itinéraire.
Dans cet exemple, une unité de coût représente 1 dollar. Cela signifie que les valeurs de propriété du modèle de coût dans votre requête sont les suivantes :
| Propriété | Valeur | Scénario |
|---|---|---|
penaltyCost |
10 | Représente la pénalité que vous proposez à vos clients s'ils ne récupèrent pas leur chien le jour prévu. Chaque fois que vous ne récupérez pas le chien un jour prévu, le client bénéficie d'une remise de 40 dollars sur le montant total de son service. |
fixedCost |
30 | Représente le coût quotidien des remboursements de votre prêt automobile, soit 30 dollars par jour. |
costPerKilometer |
0,08 | Représente la quantité d'essence que votre véhicule consomme par kilomètre. Votre véhicule consomme 0,04 gallon par kilomètre, et le coût par gallon dans votre région est de 2 dollars. |
costPerHour |
27 | Représente le montant que vous payez à un conducteur pour conduire votre véhicule. Vous payez le chauffeur 27 $ de l'heure. |
costPerTraveledHour |
2.5 | Représente le montant que vous devez payer par heure pour la climatisation du véhicule pour les chiens pendant le trajet. Lorsque le véhicule est à l'arrêt, le conducteur peut ouvrir les portes à l'arrière et éteindre la climatisation. |
En fonction des paramètres de coût, l'optimiseur peut faire des compromis qui ne sont pas évidents pour l'utilisateur, mais qui peuvent être trouvés grâce à l'optimisation.
Le schéma suivant illustre un exemple dans lequel l'optimiseur peut choisir un itinéraire plus long, mais plus rapide, via la ligne verte en pointillés pour éviter le trafic sur la ligne rouge en pointillés.

Dans ce scénario, le coût des deux routes est le suivant :
La ligne verte en pointillés présente des valeurs
costPerHouretcostPerTraveledHourfaibles, car il s'agit d'un itinéraire rapide qui évite les embouteillages, ce qui est plus rentable même lorsque la valeurcostPerKilometerest élevée.La ligne pointillée rouge a un
costPerKilometerfaible, car il s'agit d'un itinéraire direct, mais les valeurscostPerHouretcostPerTraveledHoursont trop élevées en raison des temps d'attente dans les embouteillages, ce qui en fait l'itinéraire le plus coûteux.
En plus de fournir des itinéraires rentables, l'optimiseur fournit également une somme des coûts totaux des itinéraires de livraison dans les propriétés de réponse.
Exemple de requête
L'exemple suivant montre la structure d'une requête optimizeTours de base intégrant les valeurs définies dans l'exemple de scénario :
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
Propriétés de la réponse
Le message OptimizeToursResponse comporte des propriétés de coût qui décrivent les coûts encourus lors de l'exécution d'un itinéraire :
metrics.costs: coût total de tous les itinéraires, réparti par champs de requête liés aux coûts.metrics.totalCost: coût total de tous les itinéraires additionnés.