Modello di costo

Le proprietà di costo sono definite in ShipmentModel.shipments.Shipment e ShipmentModel.vehicles.Vehicle

L'obiettivo principale dell'API Route Optimization è trovare i percorsi con il costo più basso. Pertanto, il modello di costo è il principale motore dell'ottimizzazione del percorso.

Il modello di costo è un insieme di proprietà che specificano i costi globali, del veicolo e della spedizione.

Le proprietà del modello di costi supportano i seguenti tipi di obiettivi di ottimizzazione:

  • Assegnazioni e percorsi efficienti dei veicoli
  • Tempi di ritiro e consegna convenienti
  • Prioritizzazione 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 costi. Consulta la documentazione di riferimento per l'insieme completo di parametri di costo.

Elenco di controllo di Essentials

Il seguente elenco di controllo descrive le conoscenze essenziali che evitano potenziali errori relativi ai costi. Questo elenco può aiutarti a convalidare la tua 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 sanzione.
  • L'impostazione penaltyCost dà la priorità alla consegna delle spedizioni con costi più elevati.
  • Se non imposti una spedizione penaltyCost, la spedizione diventa obbligatoria.
  • L'impostazione esplicita di una spedizione penaltyCost su zero fa sì che l'API ignori 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 utilizzo 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 per veicolo autonomo efficace 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 utilizzo di un veicolo all'ora solo durante il transito, esclusi i tempi di attesa, visita e pausa. In questo modo, vengono privilegiati i percorsi più veloci rispetto a quelli 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 un percorso per il camion che usi 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 un percorso.

Per questo esempio, un'unità di costo rappresenta 1 dollaro. Ciò significa che i valori della proprietà cost model nella richiesta sono i seguenti:

Proprietà Valore Scenario
penaltyCost 10 Rappresenta la penale che offri ai tuoi clienti per il mancato ritiro del cane in un giorno programmato. Ogni volta che non ritiri il cane in un giorno programmato, al cliente vengono scontati 40 dollari dal totale del servizio.
fixedCost 30 Rappresenta il costo giornaliero dei pagamenti del prestito per il veicolo, ovvero 30 € al giorno.
costPerKilometer 0,08 Rappresenta la quantità di benzina consumata dal tuo veicolo per chilometro. Il tuo veicolo ha bisogno di 0, 04 galloni per chilometro per muoversi e il costo per gallone nella tua regione è di 2 dollari.
costPerHour 27 Rappresenta l'importo che paghi a un autista per la guida del tuo veicolo. Paghi l'autista 27 dollari all'ora.
costPerTraveledHour 2,5 Rappresenta l'importo da pagare per l'aria condizionata del veicolo all'ora per i cani durante il viaggio. Quando il veicolo è fermo, il conducente può aprire le portiere posteriori e spegnere l'aria condizionata.

In base ai parametri di costo, lo strumento di ottimizzazione 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 attraverso la linea verde tratteggiata per evitare il traffico sulla linea rossa punteggiata.

Il veicolo ha due possibili percorsi: uno rappresentato da una linea verde tratteggiata, più lungo ma senza incidenti, e uno rappresentato da una linea rossa punteggiata, più breve ma con un incidente stradale nel mezzo.

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

Oltre a fornire percorsi convenienti, lo strumento di ottimizzazione fornisce anche una somma dei costi totali dei percorsi di consegna nelle proprietà della risposta.

Esempio di richiesta

L'esempio seguente mostra la struttura di una richiesta optimizeTours di base 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à della risposta

Il messaggio OptimizeToursResponse ha proprietà di costo che descrivono i costi sostenuti durante il completamento di un percorso:

  • metrics.costs: il costo totale per tutti i percorsi suddiviso in base ai campi della richiesta correlati ai costi.
  • metrics.totalCost: il costo totale di tutte le tratte.