Her bir aracın izlediği rotaları, atlanan gönderileri ve çözümün toplam maliyetini içeren bir tur optimizasyonu problemini çözdükten sonra verilen yanıt.
JSON gösterimi |
---|
{ "routes": [ { object ( |
Alanlar | |
---|---|
routes[] |
Her araç için hesaplanan rotalar; i'inci rota, modeldeki i'inci araca karşılık gelir. |
requestLabel |
İstekte bir etiket belirtilmişse |
skippedShipments[] |
Atlanan tüm gönderilerin listesi. |
validationErrors[] |
Bağımsız olarak tespit edebildiğimiz tüm doğrulama hatalarının listesi. "BİRDEN ÇOK HATA"ya bakın |
metrics |
Bu çözüm için süre, mesafe ve kullanım metrikleri. |
OptimizeToursValidationError
OptimizeToursRequest
doğrulanırken karşılaşılan hata veya uyarıyı açıklar.
JSON gösterimi |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Alanlar | |
---|---|
code |
Doğrulama hatası, her zaman mevcut olan çift ( Diğer alanlar (aşağıda) hatayla ilgili daha fazla bilgi sağlar. BİRDEN ÇOK HATA: Birden çok hata olduğunda, doğrulama işlemi bunlardan birkaçının çıktısını almaya çalışır. Tıpkı bir derleyici gibi, bu da kusursuz bir süreç değildir. Bazı doğrulama hataları "önemli" olur. Bu, doğrulama işleminin tamamını durduracağı anlamına gelir. Bu durum, diğerlerinde olduğu gibi STability: REFERENCE: Tüm (kod, ad) çiftlerinin bir listesi:
|
displayName |
Hatanın görünen adı. |
fields[] |
Bir hata bağlamı 0, 1 (çoğu zaman) veya daha fazla alan içerebilir. Örneğin, 4 numaralı araç ve 2 numaralı gönderimin ilk teslim alma işlemi aşağıdaki gibi yapılabilir:
Bununla birlikte, belirli bir hata kodu için |
errorMessage |
Hatayı açıklayan, kullanıcıların okuyabileceği dize. STRATEJİ: Kararlı değil: Belirli bir |
offendingValues |
Alanların değerlerini içerebilir. Bu özellik her zaman kullanılamayabilir. Bu modele kesinlikle güvenmemeniz ve yalnızca manuel model hata ayıklaması için kullanmanız gerekir. |
AlanReferansı
Doğrulama hatası için bağlamı belirtir. FieldReference
, her zaman bu dosyada belirli bir alanı ifade eder ve aynı hiyerarşik yapıyı uygular. Örneğin, 5 numaralı aracın startTimeWindows
numaralı öğesini aşağıdakileri kullanarak belirtebiliriz:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Ancak mesajın kalabalık olmaması için OptimizeToursRequest
veya ShipmentModel
gibi üst düzey öğeler atlanır.
JSON gösterimi |
---|
{ "name": string, "subField": { object ( |
Alanlar | |
---|---|
name |
Alanın adı, ör. "taşıtlar". |
subField |
Gerekirse yinelemeli olarak iç içe yerleştirilmiş alt alan. |
Birleştirme alanı
|
|
index |
Tekrarlanırsa alanın dizini. |
key |
Alan bir haritaysa anahtar. |
Metrikler
Tüm rotalar için toplanan genel metrikler.
JSON gösterimi |
---|
{
"aggregatedRouteMetrics": {
object ( |
Alanlar | |
---|---|
aggregatedRouteMetrics |
Rotalar üzerinden toplanır. Her metrik, aynı ada sahip tüm |
skippedMandatoryShipmentCount |
Atlanan zorunlu kargo sayısı. |
usedVehicleCount |
Kullanılan araç sayısı. Not: Araç rotasının boş olması ve |
earliestVehicleStartTime |
İkinci el bir araç için en erken başlangıç zamanı. RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
latestVehicleEndTime |
İkinci el bir araç için en geç bitiş zamanı. RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
costs |
Maliyetle ilgili istek alanlarına göre ayrılmış çözüm maliyeti. Anahtarlar, OptimizeToursRequest girişine göre proto yollarıdır (ör. "model.shipments.pickups.cost"tur. Değerler, ilgili maliyet alanı tarafından oluşturulan ve tüm çözüm genelinde toplanan toplam maliyettir. Başka bir deyişle maliyet["model.shipments.pickups.cost"], çözüm üzerinden tüm teslim alma maliyetlerinin toplamıdır. 01.01.2022 itibarıyla yalnızca toplu şekilde raporlanan TransitionAttributes ile ilgili maliyetler hariç olmak üzere, modelde tanımlanan tüm maliyetler burada ayrıntılı olarak raporlanmaktadır.
|
totalCost |
Çözümün toplam maliyeti. Maliyet haritasındaki tüm değerlerin toplamı. |