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:

  • Il modello acquisisce impostazioni e vincoli per l'intera richiesta, comprensivo di Shipments e Vehicles.
  • Le spedizioni rappresentano attività o spedizioni effettive che includono il ritiro e consegne tra VisitRequest s. 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 una parte di un problema di ottimizzazione a livello di livello di granularità. I vincoli a livello di modello vengono applicati a tutti spedizioni e veicoli, mentre i vincoli e le proprietà specificati sulle spedizioni o veicoli specifici per una singola spedizione o un unico veicolo.

Per la documentazione completa su ogni tipo di messaggio, consulta la documentazione di riferimento per 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 vincoli specificati o trovare la migliore soluzione possibile all'interno di un insieme la scadenza del periodo di conservazione.
  • considerRoadTraffic determina se viene utilizzato o meno il traffico in tempo reale per i percorsi e la stima dell'orario di arrivo stimato.
  • populateTransitionPolylines determina se le polilinee della route sono restituito nella risposta.

Proprietà del modello

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

  • globalStartTime rappresenta la prima ora di partenza dei percorsi in tutti veicoli e spedizioni. Nessun veicolo può iniziare le prime transizioni e in tempo reale prima di questa data.
  • globalEndTime rappresenta l'ora di fine più recente dei percorsi per 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 rappresenta il costo sostenuto nel caso in cui una spedizione venga 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) include:

  • startLocation rappresenta il punto in cui un veicolo deve iniziare il percorso. Questo è facoltativa. Se non specificato, il percorso del veicolo inizia dal località della prima spedizione a cui è stata assegnata.
  • endLocation rappresenta il punto in cui un veicolo deve terminare il proprio percorso. Questa proprietà è facoltativo. Se non specificato, il percorso del veicolo termina nella località all'ultima spedizione assegnata.
  • startTimeWindows[] indica quando un veicolo può iniziare il percorso. Questo è facoltativa.
  • endTimeWindows[] indica quando un veicolo può iniziare e terminare il percorso. Entrambe le proprietà sono facoltative.
  • loadLimits rappresentano la capacità del veicolo disponibile per soddisfare le spedizioni carichi di lavoro con scale out impegnativi. 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 messaggi di richiesta come dell'esempio precedente, ma in modi diversi. Prima di eseguire un'ottimizzazione del percorso è importante comprendere la differenza tra i due metodi:

Confronto di OptimizeTour e BatchOptimizeTours