Modello di costo

Le proprietà dei costi sono definite in ShipmentModel.shipments.Shipment e ShipmentModel.vehicles.Vehicle

L'obiettivo principale dell'API Route Optimization è trovare route con il costo più basso. Pertanto, il modello di costo è il fattore principale per l'ottimizzazione delle route.

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 route efficienti dei veicoli
  • Orari di ritiro e tempi di consegna convenienti
  • Priorità delle spedizioni critiche

Struttura

Come mostrato nel diagramma, le proprietà del modello di costo sono strutturate come segue:

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à.
  • L'impostazione di penaltyCost dà la priorità alla consegna delle spedizioni con un costo più elevato.
  • Se non imposti una spedizione penaltyCost, la spedizione diventa obbligatoria.
  • Se imposti esplicitamente un penaltyCost di spedizione pari a zero, l'API salterà sempre la spedizione , a meno che non sia richiesta da altri vincoli.
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 route più veloci che potrebbero non essere le 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, che può rappresentare i costi del carburante o 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, le route di viaggio più veloci hanno la priorità rispetto alle route più brevi.

Esempi

Questa sezione tratta tre tipi di esempi:

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 una route per il furgone che utilizzi per prendere 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 una route.

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 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 al 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 in viaggio. 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 una route più lunga ma più veloce tramite la linea tratteggiata verde per evitare il traffico sulla linea rossa punteggiata.

Il veicolo ha due possibili percorsi, uno rappresentato da una linea tratteggiata verde, che è più lungo ma non presenta incidenti, e uno rappresentato da una linea tratteggiata rossa, che è più breve ma presenta un incidente d'auto nel mezzo.

In questo scenario, il saldo dei costi delle due route è il seguente:

Oltre a fornire route convenienti, l'ottimizzatore fornisce anche una somma dei costi totali delle route 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 processo di completamento di una route:

  • metrics.costs: il costo totale di tutte le route suddiviso per campi di richiesta relativi ai costi.
  • metrics.totalCost: il costo totale di tutte le route sommate.