Le richieste e i limiti di carico sono un tipo di vincolo che puoi utilizzare per gestire la capienza. Specificano la capacità richiesta di un carico e la capacità massima di un veicolo, il che ti consente di ottimizzare le assegnazioni dei percorsi in base a questi vincoli.
Le richieste e i limiti di carico possono supportare obiettivi quali:
- Evitare il sovraccarico dei veicoli.
- Monitora la variazione dei carichi dei veicoli man mano che le spedizioni vengono ritirate e consegnate.
- Limita il numero di volte in cui un veicolo può visitare una determinata località.
Le richieste e i limiti di carico sono specificati in queste proprietà:
loadDemands
specifica la quantità di capacità necessaria per una determinata spedizione.loadLimits
specifica la capacità massima per un determinato veicolo.
Struttura
Come mostrato nel diagramma, le richieste e i limiti di carico sono strutturati come segue:
loadDemands
è una proprietà diShipment
. UnShipment
può avere più richieste di carico.loadLimits
è una proprietà diVehicle
. UnVehicle
può avere più limiti di caricamento.
Proprietà
Questa sezione descrive le proprietà per le richieste e i limiti di carico, che sono:
- Tipo di carico:una proprietà condivisa tra richieste e limiti di carico.
Load
eLoadLimit
: proprietà uniche presenti rispettivamente nelle richieste di carico e nei limiti di carico.
Tipo di carico
I tipi di carico sono chiavi di stringa che identificano il tipo di richieste di carico per una spedizione e i limiti di carico per un veicolo. I tipi di caricamento hanno le seguenti caratteristiche importanti:
- Definito dall'utente:i tipi di caricamento sono quelli che definisci. Non sono predefinite variabili di sistema per i tipi di caricamento.
- Condiviso: i tipi di carico sono destinati a essere condivisi tra spedizioni e veicoli. Ciò significa che una spedizione utilizzerà la capacità di un veicolo fino al limite solo quando i tipi di carico corrispondono. Se un veicolo non specifica alcun limite di carico per un determinato tipo, può trasportare una quantità illimitata di quel tipo di carico.
Le chiavi di stringa che rappresentano i tipi di caricamento utilizzano la sintassi del tipo di mappa Protocol Buffers. Per evitare problemi, queste chiavi di stringa non devono essere nulle. Quando assegni un nome a un tipo di carico, ti consigliamo di utilizzare identificatori che descrivono il tipo di carico e la relativa unità. Ad esempio: weightKg, volume_gallons, palletcount o frequencyDaily.
Load
e LoadLimit
Gli oggetti Load
e LoadLimit
contengono proprietà specifiche per
definire i requisiti di capacità per spedizioni e veicoli. La tabella seguente descrive queste proprietà:
Oggetto | Genitore | Proprietà | Property type | Descrizione della proprietà |
---|---|---|---|---|
Load |
loadDemands |
amount |
stringa (formato int64) | Definisce il requisito di capacità della spedizione nel tipo specificato. |
LoadLimit |
loadLimits |
maxLoad |
stringa (formato int64) | Definisce la capacità di carico massima del veicolo nel tipo specificato. |
Esempi
L'esempio seguente mostra la struttura di una richiesta di carico in cui puoi impostare il tipo loadDemands
come stringa e la proprietà amount
come stringa nel formato int64:
"loadDemands": {
"MATCHING_LOAD_TYPE ": {
"amount": "YOUR_LOAD_AMOUNT "
}
}
L'esempio seguente mostra la struttura di base di un limite di caricamento, in cui puoi impostare il tipo loadLimits
come stringa e la proprietà maxLoad
come stringa nel formato int64:
"loadLimits": {
"MATCHING_LOAD_TYPE ": {
"maxLoad": "YOUR_MAX_LOAD "
}
}
Prova
Utilizza gli esempi di codice riportati sopra per creare uno scenario immaginario. In questo scenario, hai una spedizione che pesa 10 chilogrammi e un veicolo che può trasportare 100 chilogrammi:
Nell'esempio
loadDemands
, definisci il tipo di caricamento comeweightKg
.A questo punto, verrà compilato anche il tipo di caricamento nell'esempio
loadLimits
, condividendo il tipo di caricamento. Ricorda che i tipi diloadDemands
eloadLimits
devono corrispondere affinché la spedizione consumi i limiti del veicolo.Nello stesso esempio
loadDemands
, imposta la proprietàamount
su10
.Ciò significa che il pacco pesa 10 chilogrammi.
Nell'esempio
loadLimits
, imposta la proprietàmaxLoad
su100
.Ciò significa che il veicolo può trasportare un massimo di 100 chilogrammi.
Ricorda che non esiste un insieme di tipi predefiniti. In questo esempio, potresti cambiare i chilogrammi in punti o passare a misurazioni lineari anziché al peso. Questa flessibilità ti consente di personalizzare le richieste di carico e i limiti in base alle tue esigenze specifiche.
Esempio di richiesta
L'esempio seguente mostra la struttura di una richiesta optimizeTours
di base con loadDemands
in una spedizione e loadLimits
in un veicolo:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "loadDemands": { "MATCHING_LOAD_TYPE ": { "amount": "YOUR_LOAD_AMOUNT " } } } ], "vehicles": [ { "startLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "endLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "costPerKilometer": 1.0, "loadLimits": { "MATCHING_LOAD_TYPE ": { "maxLoad": "YOUR_MAX_LOAD " } } } ] } }
Ricorda che una spedizione può avere più richieste di carico e un veicolo può avere più limiti di carico, il che ti consente di fornire vincoli complessi da prendere in considerazione durante l'ottimizzazione dei percorsi del tuo parco veicoli.