OptimizeToursResponse

Respons setelah menyelesaikan masalah pengoptimalan perjalanan 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 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

Mendeskripsikan 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. Seperti compiler, ini adalah proses yang 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, 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 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 entitas tingkat teratas seperti OptimizeToursRequest atau ShipmentModel agar pesan tidak terlalu panjang.

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

  // Union field index_or_key can be only one of the following:
  "index": integer,
  "key": string
  // End of list of possible types for union field index_or_key.
}
Kolom
name

string

Nama kolom, misalnya, "vehicles".

subField

object (FieldReference)

Sub-field yang disusun secara rekursif, jika diperlukan.

Kolom union index_or_key.

index_or_key hanya dapat berupa salah satu dari hal berikut:

index

integer

Indeks kolom jika berulang.

key

string

Kunci jika kolom adalah peta.

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 sudah digunakan.

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 selama 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.