L'obiettivo principale dell'API Route Optimization è trovare i percorsi con il costo più basso. Pertanto, il modello di costo è il fattore principale per l'ottimizzazione dei percorsi.
Il modello di costo è un insieme di proprietà che specificano i costi globali, dei veicoli e delle spedizioni.
Le proprietà del modello di costo supportano i seguenti tipi di obiettivi di ottimizzazione:
- Assegnazioni e percorsi efficienti dei veicoli
- Tempi di ritiro e consegna convenienti
- Priorità delle spedizioni critiche
Struttura
Come mostrato nel diagramma, le proprietà del modello di costo sono strutturate come segue:
Shipmentcontiene la proprietàpenaltyCost.Vehiclecontiene le seguenti proprietà:
Questo documento evidenzia solo i parametri essenziali del modello di costo. Per l'insieme completo dei parametri di costo, consulta la documentazione di riferimento.
Elenco di controllo degli elementi essenziali
Il seguente elenco di controllo descrive le conoscenze essenziali che prevengono potenziali errori relativi ai costi. Questo elenco può aiutarti a convalidare la richiesta e risolvere i problemi relativi alla risposta.
Proprietà
La tabella seguente elenca e descrive le proprietà del modello di costo.
| Genitore | Nome proprietà | Property type | Costo per | Descrizione della proprietà |
|---|---|---|---|---|
Shipment |
penaltyCost |
numero | Spedizione saltata | Il costo sostenuto per saltare la spedizione. L'API salta una spedizione quando il costo per completarla supera il costo della penalità.
|
Vehicle |
fixedCost |
numero | Spedizione | Costo fisso applicato se questo veicolo viene utilizzato per gestire una spedizione. |
costPerHour |
numero | Ora | Il costo di esercizio di un veicolo all'ora, inclusi i tempi di transito, attesa, visita e pausa. Man mano che questo costo aumenta, l'ottimizzatore tenta di trovare percorsi più veloci che potrebbero non essere i più brevi. Questa proprietà può essere un costo autonomo efficace per veicolo grazie alla sua semplicità e completezza. |
|
costPerKilometer |
numero | Chilometri | Il costo per chilometro percorso dal veicolo, ad esempio i costi del carburante e i costi di manutenzione ammortizzati del veicolo. | |
costPerTraveledHour |
numero | Ora | Il costo di esercizio di un veicolo all'ora solo durante il transito, esclusi i tempi di attesa, visita e pausa. In questo modo, i percorsi di viaggio più veloci hanno la priorità rispetto ai percorsi più brevi. |
Esempi
Questa sezione tratta tre tipi di esempi:
- Esempi di codice che illustrano la struttura delle proprietà del modello di costo .
- Uno scenario di esempio che mostra un modo per utilizzare le proprietà del modello di costo per raggiungere uno scopo commerciale.
- Un esempio di richiesta che include i valori impostati nello scenario di esempio.
Esempi di codice
Il seguente esempio di codice mostra la struttura delle proprietà del modello di costo in
Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
Il seguente esempio di codice mostra la struttura delle proprietà del modello di costo in
Vehicle:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
Scenario di esempio
Questa sezione descrive uno scenario in cui hai un'attività di asilo per cani. Stai ottimizzando un percorso per il furgone che utilizzi per caricare i cani dalle loro case. In questo scenario, vuoi che l'ottimizzatore tenga conto dei costi relativi al ritiro dei cani e alle operazioni del veicolo quando fornisce un percorso.
Per questo esempio, un'unità di costo rappresenta 1 dollaro. Ciò significa che i valori delle proprietà del modello di costo nella richiesta sono i seguenti:
| Proprietà | Valore | Scenario |
|---|---|---|
penaltyCost |
10 | Rappresenta la penalità che offri ai tuoi clienti per non aver ritirato il loro cane in un giorno programmato. Ogni volta che non ritiri il cane in un giorno programmato, il cliente riceve uno sconto di 40 dollari sul totale del servizio. |
fixedCost |
30 | Rappresenta il costo giornaliero dei pagamenti del prestito del veicolo, pari a 30 dollari al giorno. |
costPerKilometer |
0,08 | Rappresenta la quantità di benzina che il tuo veicolo consuma per chilometro. Il tuo veicolo ha bisogno di 0, 04 galloni per chilometro per spostarsi e il costo per gallone nella tua regione è di 2 dollari. |
costPerHour |
27 | Rappresenta l'importo che paghi a un conducente per guidare il tuo veicolo. Paghi il conducente 27 dollari all'ora. |
costPerTraveledHour |
2,5 | Rappresenta l'importo che devi pagare per l'aria condizionata del veicolo all'ora per i cani mentre sono sulla strada. Quando il veicolo non è in movimento, il conducente può aprire le porte sul retro e spegnere l'aria condizionata. |
In base ai parametri di costo, l'ottimizzatore potrebbe effettuare compromessi non ovvi per l'utente, ma che possono essere trovati tramite l'ottimizzazione.
Il seguente diagramma illustra un esempio in cui l'ottimizzatore potrebbe scegliere un percorso più lungo ma più veloce tramite la linea tratteggiata verde per evitare il traffico sulla linea rossa punteggiata.

In questo scenario, il bilancio dei costi dei due percorsi è il seguente:
La linea tratteggiata verde ha un
costPerHourecostPerTraveledHourbassi perché è un percorso veloce che evita il traffico, il che è più conveniente anche quando ilcostPerKilometerè elevato.La linea rossa punteggiata ha un
costPerKilometerbasso perché è un percorso diretto, ma ilcostPerHoure ilcostPerTraveledHoursono troppo elevati a causa dei tempi di attesa nel traffico, il che lo rende il percorso più costoso.
Oltre a fornire percorsi convenienti, l'ottimizzatore fornisce anche una somma dei costi totali dei percorsi di consegna nelle proprietà di risposta.
Esempio di richiesta
L'esempio seguente mostra la struttura di una richiesta di base optimizeTours
che incorpora i valori impostati nello scenario di esempio:
{ "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 } ] } }
Proprietà di risposta
Il messaggio OptimizeToursResponse ha proprietà di costo
che descrivono i costi sostenuti durante il completamento di un percorso:
metrics.costs: il costo totale di tutti i percorsi suddiviso per i campi di richiesta relativi ai costi.metrics.totalCost: il costo totale di tutti i percorsi sommati.