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)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
Kolom
routes[]

object (ShipmentRoute)

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

requestLabel

string

Salinan OptimizeToursRequest.label, jika label ditentukan dalam permintaan.

skippedShipments[]

object (SkippedShipment)

Daftar semua pengiriman dilewati.

validationErrors[]

object (OptimizeToursValidationError)

Daftar semua error validasi yang dapat kami deteksi secara independen. Lihat penjelasan "MULTIPLE ERRORS" untuk pesan OptimizeToursValidationError.

metrics

object (Metrics)

Metrik durasi, jarak, dan penggunaan untuk solusi ini.

OptimizeToursValidationError

Menjelaskan error 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 lain (di bawah) memberikan konteks selengkapnya tentang error.

BEBERAPA KESALAHAN: Jika ada beberapa error, proses validasi akan mencoba menghasilkan beberapa error. Mirip seperti compiler, ini adalah proses yang tidak sempurna. Beberapa error validasi akan bersifat "fatal", yang berarti error tersebut menghentikan seluruh proses validasi. Hal ini antara lain berlaku untuk error displayName="UNSPECIFIED". Beberapa kesalahan mungkin menyebabkan proses validasi melewatkan kesalahan 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 untuk menghasilkan pasangan (code, displayName) yang berbeda karena error baru menyembunyikan yang lama (lihat "MULTIPLE KESALAHAN").

REFERENSI: Daftar semua pasangan (kode, nama):

  • TIDAK DITENTUKAN = 0;
  • VALIDATION_TIMEOUT_ERROR = 10; Validasi tidak dapat diselesaikan dalam batas waktu.
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201;
    • REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203;
    • REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1.204;
    • REQUEST_OPTIONS_GEODESIC_METERS_PER_SECOND_TOO_SMALL = 1.205;
    • REQUEST_OPTIONS_ kegunaan_GEODESIC_METERS_PER_SECOND = 1.206;
    • REQUEST_OPTIONS_POPULATE_PATHFINDER_tripS_AND_GEODESIC_LENGTH = 1.207;
    • REQUEST_OPTIONS_ tahun_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1.208;
    • REQUEST_OPTIONS_TRAVEL_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211;
    • REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212;
    • REQUEST_OPTIONS_INVALID_TRAFFIC_FLAVOR = 1213;
    • REQUEST_OPTIONS_TRAFFIC_ENABLED_WITHOUT_GLOBAL_START_TIME = 1214;
    • REQUEST_OPTIONS_TRAFFIC_ENABLED_WITH_PRECEDENCES = 1215;
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_MODE_INVALID = 1216;
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217;
  • INJECTED_SOLUTION_ERROR = 20;
    • INJECTED_SOLUTION_TIDAK_MENYERTAKAN_LABEL = 2000;
    • INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
    • INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002;
    • INJECTED_SOLUTION_INFEASIBLE_After_GETTING_TRAVEL_TIMES = 2003;
    • INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004;
    • INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005;
    • INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006;
    • INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008;
    • INJECTED_SOLUTION_CONStrainerED_ROUTE_PORTION_INFEASIBLE = 2010;
  • SHIPMENT_MODEL_ERROR = 22;
    • PENGIRIMAN_MODEL_TERLALU_BESAR = 2200;
    • SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201;
    • SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202;
    • SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203;
    • SHIPMENT_MODEL_GLOBAL_START_TIME_After_GLOBAL_END_TIME = 2.204;
    • SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205;
    • SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
    • SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
  • INDEX_ERROR = 24;
  • TAG_ERROR = 26;
  • TIME_WINDOW_ERROR = 28;
    • TIME_WINDOW_INVALID_START_TIME = 2800;
    • TIME_WINDOW_INVALID_END_TIME = 2801;
    • TIME_WINDOW_INVALID_SOFT_START_TIME = 2802;
    • TIME_WINDOW_INVALID_SOFT_END_TIME = 2803;
    • TIME_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804;
    • TIME_WINDOW_START_TIME_After_END_TIME = 2805;
    • TIME_WINDOW_INVALID_cost_PER_HOUR_BEFORE_SOFT_START_TIME = 2806;
    • TIME_WINDOW_INVALID_PRICE_PER_HOUR_After_SOFT_END_TIME = 2807;
    • TIME_WINDOW_PRICE_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME = 2808;
    • TIME_WINDOW_PRICE_Setelah_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809;
    • TIME_WINDOW_SOFT_START_TIME_WITHOUT_ tahun_BEFORE_SOFT_START_TIME = 2810;
    • TIME_WINDOW_SOFT_END_TIME_WITHOUT_ tahun_Setelah_SOFT_END_TIME = 2811;
    • TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812;
    • TIME_WINDOW_START_TIME_After_SOFT_START_TIME = 2813;
    • TIME_WINDOW_SOFT_START_TIME_After_END_TIME = 2814;
    • TIME_WINDOW_START_TIME_Setelah_SOFT_END_TIME = 2815;
    • TIME_WINDOW_SOFT_END_TIME_Setelah_END_TIME = 2816;
    • TIME_WINDOW_PRICE_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS = 2817;
    • TIME_WINDOW_ tahun_Setelah_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818;
    • TRANSITION_ATTRIBUTES_ERROR = 30;
    • TRANSITION_ATTRIBUTES_INVALID_cost = 3.000;
    • TRANSITION_ATTRIBUTES_INVALID_cost_PER_KILOMETER = 3.001;
    • TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002;
    • TRANSITION_ATTRIBUTES_LENGTH_LIMIT_MAX_METERS_UNSUPPORTED = 3003;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3.004;
    • TRANSITION_ATTRIBUTES_calendarING_SOURCE_TAGS_FIELDS = 3.005;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006;
    • TRANSITION_ATTRIBUTES_PLAYLISTING_DESTINATION_TAGS_FIELDS = 3.007;
    • TRANSITION_ATTRIBUTES_threshold_DURATION_NEGATIVE_OR_NAN = 3008;
    • TRANSITION_ATTRIBUTES_DURATION_DURATION_EXCEEDS_GLOBAL_DURATION = 3.009;
  • AMOUNT_ERROR = 31;
    • AMOUNT_NEGATIVE_VALUE = 3100;
  • LOAD_LIMIT_ERROR = 33;
    • LOAD_LIMIT_INVALID_cost_ABOVE_SOFT_MAX = 3.303;
    • LOAD_LIMIT_SOFT_MAX_WITHOUT_cost_ABOVE_SOFT_MAX = 3304;
    • LOAD_LIMIT_Cost_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3.305;
    • LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306;
    • LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307;
    • LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308;
    • LOAD_LIMIT_SOFT_MAX_ABOVE_MAX = 3.309;
  • INTERVAL_ERROR = 34;
    • INTERVAL_MIN_EXCEEDS_MAX = 3.401;
    • INTERVAL_NEGATIVE_MIN = 3402;
    • INTERVAL_NEGATIVE_MAX = 3403;
    • INTERVAL_MIN_EXCEEDS_CAPACITY = 3.404;
    • INTERVAL_MAX_EXCEEDS_CAPACITY = 3.405;
  • LENGTH_LIMIT_ERROR = 36;
    • DISTANCE_LIMIT_INVALID_cost_Setelah_SOFT_MAX = 3.601;
    • DISTANCE_LIMIT_SOFT_MAX_WITHOUT_Cost_After_SOFT_MAX = 3.602;
    • DISTANCE_LIMIT_cost_After_SOFT_MAX_WITHOUT_SOFT_MAX = 3.603;
    • DISTANCE_LIMIT_NEGATIVE_MAX = 3604;
    • LENGTH_LIMIT_NEGATIVE_SOFT_MAX = 3.605;
    • distance_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3.606;
  • DURATION_LIMIT_ERROR = 38;
    • DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800;
    • DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801;
    • DURATION_LIMIT_INVALID_CUSTOMER_PER_HOUR_ setelah_SOFT_MAX = 3.802;
    • DURATION_LIMIT_SOFT_MAX_WITHOUT_PRICE_Setelah_SOFT_MAX = 3.803;
    • DURATION_LIMIT_cost_After_SOFT_MAX_WITHOUT_SOFT_MAX = 3.804;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805;
    • DURATION_LIMIT_INVALID_cost_Setelah_QUADRATIC_SOFT_MAX = 3.806;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_Cost_PER_Square_HOUR = 3807;
    • DURATION_LIMIT_ tahun_PER_Square_HOUR_WITHOUT_QUADRATIC_SOFT_MAX = 3808;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3.809;
    • DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3.810;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811;
    • DURATION_LIMIT_DISTINCT_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE = 3.812;
    • DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3.813;
    • DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3.814;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3815;
  • SHIPMENT_ERROR = 40;
    • SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_Delivery = 4014;
    • SHIPMENT_PD_AB4_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4.000;
    • SHIPMENT_PD_AB4_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4.001;
    • SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015;
    • SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016;
    • SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002;
    • SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4.003;
    • SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004;
    • SHIPMENT_NO_PICKUP_NO_ ditolak = 4005;
    • SHIPMENT_INVALID_PENALTY_Cost = 4.006;
    • SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4.007;
    • SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008;
    • SHIPMENT_INCONSISTENT_cost_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009;
    • SHIPMENT_INCONSISTENT_cost_FOR_VEHICLE_SIZE_WITH_INDEX = 4.010;
    • SHIPMENT_INVALID_PRICE_FOR_VEHICLE = 4011;
    • SHIPMENT_cost_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4.012;
    • SHIPMENT_DUPLICATE_cost_FOR_VEHICLE_INDEX = 4013;
  • VEHICLE_ERROR = 42;
    • VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200;
    • VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201;
    • VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202;
    • VEHICLE_EMPTY_START_TAG = 4203;
    • VEHICLE_DUPLICATE_START_TAG = 4204;
    • VEHICLE_EMPTY_END_TAG = 4205;
    • VEHICLE_DUPLICATE_END_TAG = 4206;
    • VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207;
    • VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4.208;
    • VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209;
    • VEHICLE_FIRST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4.210;
    • VEHICLE_FIRST_SHIPMENT_IGNORED = 4211;
    • VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212;
    • VEHICLE_last_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4.213;
    • VEHICLE_last_SHIPMENT_IGNORED = 4214;
    • VEHICLE_last_SHIPMENT_NOT_BOUND = 4215;
    • VEHICLE_IGNORED_WITH_used_IF_ROUTE_IS_EMPTY = 4216;
    • VEHICLE_INVALID_cost_PER_KILOMETER = 4217;
    • VEHICLE_INVALID_cost_PER_HOUR = 4218;
    • VEHICLE_INVALID_cost_PER_TRAVELED_HOUR = 4219;
    • VEHICLE_INVALID_FIXED_cost = 4220;
    • VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221;
    • VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4.223;
    • VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224;
    • VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222;
  • VISIT_REQUEST_ERROR = 44;
    • VISIT_REQUEST_EMPTY_TAG = 4400;
    • VISIT_REQUEST_DUPLICATE_TAG = 4401;
    • VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404;
    • VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4.405;
  • PRECEDENCE_ERROR = 46;
  • BREAK_ERROR = 48;
    • BREAK_Rules_EMPTY = 4800;
    • BREAK_REQUEST_UNSPECIFIED_DURATION = 4801;
    • BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802;
    • BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803;
    • BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804; = 4804;
    • BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805;
    • BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806;
    • BREAK_REQUEST_LATEST_END_TIME_After_GLOBAL_END_TIME = 4.807;
    • BREAK_REQUEST_NON_SCHEDULABLE = 4808;
    • BREAK_Frequency_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809;
    • BREAK_Frequency_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4.810;
    • BREAK_Frequency_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4.811;
    • BREAK_Frequency_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4.812;
    • BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4.813;
    • BREAK_Frequency_EXIST_MAX_INTER_BREAK_DURATION = 4814;
    • BREAK_Frekuensi_TIDAK_MENYERTAKAN_MIN_BREAK_DURATION = 4.815;
  • SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50;
    • SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5.001;
    • SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5.002;
    • SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5.003;
    • MODE_JENIS_INCOMPATIBILITY_TIDAK_TIDAK_VALID = 5004;
    • SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5.005;
  • SHIPMENT_TYPE_REQUIREMENT_ERROR = 52;
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001;
    • SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52.002;
    • SHIPMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003;
    • SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004;
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005;
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006;
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52.007;
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52.008;
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52.009;
    • SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52.010;
    • SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011;
  • VEHICLE_OPERATOR_ERROR = 54;
    • VEHICLE_OPERATOR_EMPTY_TYPE = 5.400;
    • VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401;
    • VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402;
    • VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403;
    • VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404;
  • DURATION_SECONDS_MATRIX_ERROR = 56;
    • DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5.600;
    • DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5.601;
displayName

string

Nama tampilan error.

fields[]

object (FieldReference)

Konteks error dapat melibatkan 0, 1 (sering kali) atau beberapa kolom. Misalnya, mengacu pada kendaraan #4 dan pengambilan pertama pengiriman #2 dapat dilakukan sebagai berikut:

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

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

errorMessage

string

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

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

offendingValues

string

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

FieldReference

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

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

Namun, kami menghilangkan entity level teratas seperti OptimizeToursRequest atau ShipmentModel untuk menghindari pesan berdesakan.

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, "kendaraan".

subField

object (FieldReference)

Sub-kolom bertingkat secara rekursif, jika diperlukan.

Kolom union index_or_key.

index_or_key hanya dapat berupa salah satu dari yang berikut:

index

integer

Indeks kolom jika diulang.

key

string

Kunci jika kolom adalah peta.

Metrik

Metrik keseluruhan, yang digabungkan dari 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 berdasarkan rute. Setiap metrik adalah jumlah (atau jumlah maksimum, untuk pemuatan) di seluruh kolom ShipmentRoute.metrics dengan nama yang sama.

skippedMandatoryShipmentCount

integer

Jumlah pengiriman wajib dilewati.

usedVehicleCount

integer

Jumlah kendaraan yang digunakan. Catatan: jika rute kendaraan kosong dan Vehicle.used_if_route_is_empty bernilai benar, kendaraan akan dianggap sebagai digunakan.

earliestVehicleStartTime

string (Timestamp format)

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

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

latestVehicleEndTime

string (Timestamp format)

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

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

costs

map (key: string, value: number)

Biaya solusi, 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 dari keseluruhan solusi. Dengan kata lain, biaya["model.shipments.pickups.cost"] adalah jumlah semua biaya pengambilan atas solusi tersebut. Semua biaya yang ditentukan dalam model dilaporkan secara mendetail di sini, kecuali biaya yang terkait dengan TransitionAttributes yang hanya dilaporkan secara agregat mulai 2022/01.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

totalCost

number

Total biaya solusi. Jumlah semua nilai di peta biaya.