OptimizeToursResponse

Respons setelah menyelesaikan masalah pengoptimalan tur yang berisi rute yang diikuti oleh setiap kendaraan, pengiriman yang telah dilewati, dan biaya keseluruhan solusi.

Representasi JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "processedRequest": {
    object (OptimizeToursRequest)
  },
  "metrics": {
    object (Metrics)
  }
}
Kolom
routes[]

object (ShipmentRoute)

Rute yang dihitung untuk setiap kendaraan; rute ke-i sesuai dengan kendaraan ke-i dalam model.

requestLabel

string

Salinan OptimizeToursRequest.label, jika label ditentukan dalam permintaan.

skippedShipments[]

object (SkippedShipment)

Daftar semua pengiriman yang dilewati.

validationErrors[]

object (OptimizeToursValidationError)

Daftar semua error validasi yang dapat kami deteksi secara independen. Lihat penjelasan "BEBERAPA ERROR" untuk pesan OptimizeToursValidationError. Alih-alih error, hal ini akan mencakup peringatan jika solvingMode adalah DEFAULT_SOLVE.

processedRequest

object (OptimizeToursRequest)

Dalam beberapa kasus, kami mengubah permintaan yang masuk sebelum menyelesaikannya, yaitu menambahkan biaya. Jika solvingMode == TRANSFORM_AND_RETURN_REQUEST, permintaan yang diubah akan ditampilkan di sini.

Eksperimental: Lihat https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request untuk mengetahui detail selengkapnya.

metrics

object (Metrics)

Metrik durasi, jarak, dan penggunaan untuk solusi ini.

OptimizeToursValidationError

Menjelaskan error atau peringatan yang terjadi saat memvalidasi OptimizeToursRequest.

Representasi JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
Kolom
code

integer

Error validasi ditentukan oleh pasangan (code, displayName) yang selalu ada.

Kolom setelah bagian ini memberikan konteks selengkapnya tentang error.

BEBERAPA ERROR: Jika ada beberapa error, proses validasi akan mencoba menampilkan beberapa error tersebut. Sama seperti compiler, proses ini tidak sempurna. Beberapa error validasi akan bersifat "fatal", yang berarti error tersebut menghentikan seluruh proses validasi. Hal ini berlaku untuk error displayName="UNSPECIFIED", dan lain-lain. Beberapa error dapat menyebabkan proses validasi melewati error lainnya.

STABILITAS: code dan displayName harus sangat stabil. Namun, kode dan nama tampilan baru dapat muncul seiring waktu, yang dapat menyebabkan permintaan (tidak valid) tertentu menghasilkan pasangan (code, displayName) yang berbeda karena error baru menyembunyikan error lama. Misalnya, lihat "BEBERAPA KESALAHAN".

displayName

string

Nama tampilan error.

fields[]

object (FieldReference)

Konteks error dapat melibatkan 0, 1 (sebagian besar waktu) atau lebih banyak kolom. Misalnya, merujuk pada pengambilan pertama kendaraan #4 dan pengiriman #2 dapat dilakukan sebagai berikut:

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

Namun, perhatikan bahwa kardinalitas fields tidak boleh berubah untuk kode error tertentu.

errorMessage

string

String yang menjelaskan error dan dapat dibaca manusia. Terdapat pemetaan 1:1 antara code dan errorMessage (jika code != "UNSPECIFIED").

STABILITAS: Tidak stabil: pesan error yang terkait dengan code tertentu dapat berubah (semoga menjadi lebih jelas) dari waktu ke waktu. Sebagai gantinya, gunakan displayName dan code.

offendingValues

string

Dapat berisi nilai kolom. Fitur ini tidak selalu tersedia. Anda sama sekali tidak boleh mengandalkannya dan hanya boleh menggunakannya untuk proses debug model manual.

FieldReference

Menentukan konteks untuk error validasi. FieldReference selalu merujuk ke kolom tertentu dalam file ini dan mengikuti struktur hierarkis yang sama. Misalnya, kita dapat menentukan elemen #2 dari startTimeWindows kendaraan #5 menggunakan:

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

Namun, kami tidak menyertakan entity tingkat teratas seperti OptimizeToursRequest atau ShipmentModel agar pesan tidak terlalu panjang.

Representasi JSON
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "index": integer,
  "key": string
  // End of mutually exclusive fields.
}
Kolom
name

string

Nama kolom, misalnya, "vehicles".

subField

object (FieldReference)

Sub-field yang disusun secara rekursif, jika diperlukan.

Berikut adalah daftar kolom yang bersifat eksklusif satu sama lain. Maksimal satu kolom akan ditetapkan dalam respons:
index

integer

Indeks kolom jika berulang.

key

string

Kunci jika kolom adalah peta.

Akhir kolom yang saling eksklusif.

Metrik

Metrik keseluruhan, digabungkan di semua rute.

Representasi JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
Kolom
aggregatedRouteMetrics

object (AggregatedMetrics)

Digabungkan di seluruh rute. Setiap metrik adalah jumlah (atau maksimum, untuk pemuatan) di semua kolom ShipmentRoute.metrics dengan nama yang sama.

skippedMandatoryShipmentCount

integer

Jumlah pengiriman wajib yang dilewati.

usedVehicleCount

integer

Jumlah kendaraan yang digunakan. Catatan: jika rute kendaraan kosong dan Vehicle.used_if_route_is_empty benar (true), kendaraan dianggap bekas.

earliestVehicleStartTime

string (Timestamp format)

Waktu mulai paling awal untuk kendaraan bekas, dihitung sebagai minimum dari semua kendaraan bekas ShipmentRoute.vehicle_start_time.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

latestVehicleEndTime

string (Timestamp format)

Waktu berakhir terbaru untuk kendaraan bekas, dihitung sebagai maksimum dari semua kendaraan bekas ShipmentRoute.vehicle_end_time.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

costs

map (key: string, value: number)

Biaya solusi, yang dikelompokkan berdasarkan kolom permintaan terkait biaya. Kuncinya adalah jalur proto, relatif terhadap input OptimizeToursRequest, misalnya "model.shipments.pickups.cost", dan nilainya adalah total biaya yang dihasilkan oleh kolom biaya yang sesuai, yang digabungkan di seluruh solusi. Dengan kata lain, costs["model.shipments.pickups.cost"] adalah jumlah semua biaya pengambilan di seluruh solusi. Semua biaya yang ditentukan dalam model dilaporkan secara mendetail di sini, kecuali biaya yang terkait dengan TransitionAttributes yang hanya dilaporkan secara gabungan mulai 01/2022.

totalCost

number

Total biaya solusi. Jumlah semua nilai dalam peta biaya.