Crea un messaggio di richiesta

Come brevemente descritto in Panoramica dell'ottimizzazione del percorso, una richiesta di base è costituita da Modello, Spedizioni e Veicoli come entità obbligatorie:

  • Modello acquisisce le impostazioni e i vincoli per l'intera richiesta, inclusi Shipments e Vehicles.
  • Le spedizioni rappresentano attività o spedizioni effettive che includono VisitRequest di ritiro e consegna. Le spedizioni hanno impostazioni e vincoli locali.
  • I veicoli rappresentano veicoli, conducenti o personale. I veicoli hanno anche le impostazioni e i vincoli locali.

Le proprietà di ogni entità descrivono parte di un problema di ottimizzazione a un determinato livello di granularità. I vincoli a livello di modello vengono applicati a tutte le spedizioni e a tutti i veicoli, mentre i vincoli e le proprietà specificati per le spedizioni o i veicoli sono specifici di una singola spedizione o di un singolo veicolo.

Per una documentazione completa su ciascun tipo di messaggio, consulta la documentazione di riferimento per i messaggi ShipmentModel (REST, gRPC), Shipment (REST, gRPC) e Vehicle (REST, gRPC).

OptimizeToursRequest strutture

Alcune proprietà di uso comune del messaggio OptimizeToursRequest di primo livello (REST, gRPC) includono quanto segue:

  • searchMode indica se restituire la prima soluzione che soddisfa i vincoli specificati o trovare la soluzione migliore possibile entro una scadenza impostata.
  • considerRoadTraffic determina se viene utilizzato o meno il traffico in tempo reale per il calcolo dell'itinerario e dell'orario di arrivo stimato.
  • populateTransitionPolylines determina se indirizzare o meno le polilinee di route vengono restituiti nella risposta.

Proprietà del modello

Alcune proprietà di uso comune del messaggio ShipmentModel (REST, gRPC) includono:

  • globalStartTime indica l'ora di inizio più antica dei percorsi per tutti i veicoli e le spedizioni. Nessun veicolo può iniziare le prime transizioni e in tempo reale prima di questa data.
  • globalEndTime indica l'ora di fine più recente dei percorsi di tutti i veicoli e delle spedizioni. Tutte le spedizioni e le transizioni assegnate devono essere completate prima di questa data.

Proprietà della spedizione

Alcune proprietà di uso comune del messaggio Shipment (REST, gRPC) include:

  • pickups[] e deliveries[] rappresentano il luogo in cui è possibile ritirare una spedizione o abbandonarlo. Le proprietà pickups[] e deliveries[] utilizzano entrambe le proprietà VisitRequest messaggio (REST, gRPC).
  • loadDemands rappresenta il carico necessario a un veicolo per completare una spedizione. Veicoli load_limits corrispondente (REST, gRPC) rappresenta il carico massimo che un veicolo può sostenere contemporaneamente. Scopri di più sul caricamento in Carica richieste e limiti.
  • penalty_cost indica il costo sostenuto se una spedizione viene saltata. Letto Scopri di più sui costi in Parametri del modello di costo.

Proprietà dei veicoli

Alcune proprietà di uso comune del messaggio Vehicle (REST, gRPC) includono:

  • startLocation indica il punto in cui un veicolo deve iniziare il suo percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo inizia dalla sede della prima spedizione assegnata.
  • endLocation indica dove un veicolo deve terminare il suo percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo termina nella località all'ultima spedizione assegnata.
  • startTimeWindows[] indica quando un veicolo può iniziare il suo percorso. Questo è facoltativa.
  • endTimeWindows[] indica quando un veicolo può iniziare e terminare il suo percorso. Entrambe le proprietà sono facoltative.
  • loadLimits indica la capacità del veicolo disponibile per soddisfare le richieste di carico delle spedizioni. Scopri di più sulle richieste e sui limiti di caricamento nella pagina Carica richieste e Limiti.

Una richiesta di esempio completa in formato JSON ha il seguente aspetto:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeTours e BatchOptimizeTours utilizzano entrambi i messaggi di richiesta come nell'esempio riportato sopra, ma in modi diversi. Prima di effettuare una richiesta di ottimizzazione del percorso, è importante comprendere la differenza tra i due metodi:

Confronto di OptimizeTour e BatchOptimizeTours