OptimizeToursResponse

Thông tin phản hồi sau khi giải quyết vấn đề về việc tối ưu hoá chuyến tham quan, trong đó có thông tin về các tuyến đường của mỗi chiếc xe, những lô hàng bị bỏ qua và tổng chi phí của giải pháp.

Biểu diễn dưới dạng JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
Trường
routes[]

object (ShipmentRoute)

Các tuyến đường được tính toán cho mỗi chiếc xe; tuyến đường thứ i tương ứng với chiếc xe thứ i trong mô hình.

requestLabel

string

Bản sao của OptimizeToursRequest.label, nếu nhãn được chỉ định trong yêu cầu.

skippedShipments[]

object (SkippedShipment)

Danh sách tất cả các lô hàng bị bỏ qua.

validationErrors[]

object (OptimizeToursValidationError)

Danh sách tất cả các lỗi xác thực mà chúng tôi có thể phát hiện riêng. Xem nội dung giải thích "Nhiều lỗi" cho thông báo OptimizeToursValidationError.

metrics

object (Metrics)

Chỉ số về thời lượng, khoảng cách và mức sử dụng của giải pháp này.

OptimizeToursValidationError

Mô tả lỗi xảy ra khi xác thực OptimizeToursRequest.

Biểu diễn dưới dạng JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
Trường
code

integer

Lỗi xác thực do cặp (code, displayName) luôn xuất hiện xác định.

Các trường khác (ở bên dưới) cung cấp thêm thông tin về lỗi.

NHIỀU LỖI: Khi có nhiều lỗi, quá trình xác thực sẽ cố gắng đưa ra một vài lỗi. Tương tự như trình biên dịch, đây là một quy trình không hoàn hảo. Một số lỗi xác thực sẽ là "lỗi nghiêm trọng", nghĩa là các lỗi này sẽ dừng toàn bộ quá trình xác thực. Đây là trường hợp của lỗi displayName="UNSPECIFIED", trong số các lỗi khác. Một số lỗi có thể khiến quá trình xác thực bỏ qua các lỗi khác.

TÍNH NĂNG: codedisplayName phải rất ổn định. Tuy nhiên, các mã và tên hiển thị mới có thể xuất hiện theo thời gian, điều này có thể khiến một yêu cầu (không hợp lệ) nhất định tạo ra một cặp khác (code, displayName) vì lỗi mới đã ẩn mã cũ (xem phần "Lỗi NHIỀU LẦN").

THAM CHIẾU: Danh sách tất cả các cặp (mã, tên):

  • UNSPECIFIED = 0;
  • VALIDATION_TIMEOUT_ERROR = 10; Không thể hoàn tất quá trình xác thực trong thời hạn.
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201;
    • REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203;
    • REQUEST_OPTIONS_INVALID_GEODESIC_DISTANCE_PER_second = 1204;
    • REQUEST_OPTIONS_GEODESIC_ Tỷ lượt = 1205;
    • REQUEST_OPTIONS_MISSING_GEODESIC_ thế lượt_PER_ SECOND = 1206;
    • REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE = 1207;
    • REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208;
    • 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_MISSING_LABEL = 2000;
    • INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
    • INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002;
    • INJECTED_SOLUTION_INFEASIBLE_SAU_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_XUẤT_THIẾT_KHÔNG_KHÔNG_DÙNG_NỔI_TIẾNG = 2008;
    • INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010;
  • SHIPMENT_MODEL_ERROR = 22;
    • GỬI_MÔ_ HÌNH_TOO_LARGE = 2200;
    • shippingMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201;
    • shippingMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202;
    • SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203;
    • shippingMENT_MODEL_GLOBAL_START_TIME_ SAU_GLOBAL_END_TIME = 2204;
    • shippingMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205;
    • GỬI_MÔ_ HÌNH_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
    • shippingMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
  • INDEX_ERROR = 24;
  • TAG_ERROR = 26;
  • Time_WINDOW_ERROR = 28;
    • Time_WINDOW_INVALID_START_TIME = 2.800;
    • 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_ SAU_END_TIME = 2805;
    • Time_WINDOW_INVALID_COST_PER_HOUR_BEFORE_SOFT_START_TIME = 2806;
    • TIME_WINDOW_INVALID_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807;
    • Time_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME = 2808;
    • Time_WINDOW_COST_ SAU_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809;
    • Time_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME = 2810;
    • TIME_WINDOW_SOFT_END_TIME_WITHOUT_COST_AFTER_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_ SAU_SOFT_END_TIME = 2815;
    • TIME_WINDOW_SOFT_END_TIME_AFTER_END_TIME = 2816;
    • TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS = 2817;
    • Time_WINDOW_COST_ SAU_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818;
    • TRANSITION_ATTRIBUTES_ERROR = 30;
    • TRANSITION_ATTRIBUTES_INVALID_COST = 3000;
    • TRANSITION_ATTRIBUTES_INVALID_COST_PER_KILOMETER = 3001;
    • TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002;
    • TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_DISTANCE_UNSUPPORTED = 3003;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004;
    • TRANSITION_ATTRIBUTES_ IMAPING_SOURCE_TAGS_FIELDS = 3005;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006;
    • TRANSITION_ATTRIBUTES_CONFLICTING_DESTINATION_TAGS_FIELDS = 3007;
    • TRANSITION_ATTRIBUTES_DELAY_DURATION_NEGATIVE_OR_NAN = 3008;
    • TRANSITION_ATTRIBUTES_DELAY_DURATION_EXCEEDS_GLOBAL_DURATION = 3009;
  • AMOUNT_ERROR = 31;
    • AMOUNT_NEGATIVE_VALUE = 3.100;
  • LOAD_LIMIT_ERROR = 33;
    • Nạp_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303;
    • LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304;
    • LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305;
    • LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306;
    • TẢI_LIMIT_MIXED_DEMAND_TYPE = 3307;
    • TẢI_LIMIT_MAX_loading_NEGATIVE_VALUE = 3308;
    • TẢI_LIMIT_SOFT_MAX_ABOVE_MAX = 3309;
  • INTERVAL_ERROR = 34;
    • INTERVAL_MIN_EXCEEDS_MAX = 3401;
    • INTERVAL_NEGATIVE_MIN = 3402;
    • INTERVAL_NEGATIVE_MAX = 3403;
    • INTERVAL_MIN_EXCEEDS_CAPACITY = 3404;
    • INTERVAL_MAX_EXCEEDS_CAPACITY = 3405;
  • KHOẢNG CÁCH_LIMIT_ERROR = 36;
    • DISTANCE_LIMIT_INVALID_COST_AFTER_SOFT_MAX = 3601;
    • KHOẢNG_Khoảng_Khoảng_SỐ_TRÊN_ĐỐI_KHÔNG_ĐƯỢC_COST_SAU_SOFT_MAX = 3602;
    • DISTANCE_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3603;
    • DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605;
    • DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606;
  • ↗_LIMIT_ERROR = 38;
    • [Tên người] = 3800;
    • DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801;
    • AVD_LIMIT_INVALID_COST_PER_HOUR_ SAU_SOFT_MAX = 3802;
    • DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3803;
    • [Tên người] và [TÊN NGƯỜI] = 3804;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805;
    • [TÊN NGƯỜI] = 3806;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR = 3807;
    • DURATION_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX = 3808;
    • AVD_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809;
    • ↗_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811;
    • ↗_LIMIT_CHANGE_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE = 3812;
    • ↗_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813;
    • DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3815;
  • SHIPMENT_ERROR = 40;
    • SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014;
    • SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
    • SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4001;
    • shippingMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015;
    • SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016;
    • shippingMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002;
    • SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003;
    • shippingMENT_EMPTY_shippingMENT_TYPE = 4004;
    • SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005;
    • SHIPMENT_INVALID_PENALTY_COST = 4006;
    • shippingMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007;
    • SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008;
    • SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009;
    • SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010;
    • shippingMENT_INVALID_COST_FOR_VEHICLE = 4011;
    • shippingMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012;
    • 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 = 4208;
    • VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209;
    • VEHICLE_FIRST_shippingMENT_INDEX_OUT_OF_BOUNDS = 4210;
    • VEHICLE_FIRST_shippingMENT_FAILD = 4211;
    • VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212;
    • VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213;
    • VEHICLE_LAST_SHIPMENT_IGNORED = 4214;
    • VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215;
    • VEHICLE_LISTD_WITH_WITH_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 = 4223;
    • VEHICLE_MATRIX_INDEX_WITH_shippingMENT_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 = 4405;
  • PRECEDENCE_ERROR = 46;
  • BREAK_ERROR = 48;
    • BREAK_RULE_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 = 4807;
    • BREAK_REQUEST_NON_SCHEDULABLE = 4808;
    • BREAK_VAT_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809;
    • BREAK_VAT_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810;
    • BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811;
    • BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4812;
    • BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813;
    • BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814;
    • BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815;
  • GỬI_TYPE_INCOMPATIBILITY_ERROR = 50;
    • SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
    • SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002;
    • GỬI_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
    • SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004;
    • SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005;
  • shippingMENT_TYPE_REQUIREMENT_ERROR = 52;
    • GỬI_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001;
    • shippingMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002;
    • shippingMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003;
    • SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004;
    • shippingMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005;
    • shippingMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006;
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007;
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008;
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009;
    • shippingMENT_TYPE_REQUIREMENT_self_DEPENDENT_TYPE = 52010;
    • SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011;
  • VEHICLE_OPERATOR_ERROR = 54;
    • VEHICLE_OPERATOR_EMPTY_TYPE = 5400;
    • 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;
  • mất 56 giây = 56 giây.
    • [Tên người] và [8]
    • ↗_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601;
displayName

string

Tên hiển thị lỗi.

fields[]

object (FieldReference)

Ngữ cảnh lỗi có thể liên quan đến 0, 1 (trong hầu hết trường hợp) hoặc nhiều trường. Ví dụ: tham khảo xe #4 và lượt lấy hàng đầu tiên của lô hàng #2 như sau:

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

Tuy nhiên, lưu ý rằng số lượng giá trị riêng biệt của fields không được thay đổi đối với một mã lỗi nhất định.

errorMessage

string

Chuỗi ký tự mà con người đọc được, dùng để mô tả lỗi. Có mối liên kết 1:1 giữa codeerrorMessage (khi code != "UNSPECIFIED").

TÍNH NĂNG: Không ổn định: thông báo lỗi liên quan đến một code nhất định có thể thay đổi (hy vọng có thể làm rõ vấn đề) theo thời gian. Thay vào đó, vui lòng sử dụng displayNamecode.

offendingValues

string

Có thể chứa (các) giá trị của (các) trường. Không phải lúc nào bạn cũng có thể sử dụng những tính năng này. Bạn tuyệt đối không nên dựa vào tính năng này và chỉ nên sử dụng tính năng này để gỡ lỗi mô hình theo cách thủ công.

FieldReference

Chỉ định ngữ cảnh cho lỗi xác thực. FieldReference luôn tham chiếu đến một trường nhất định trong tệp này và tuân theo cùng một cấu trúc phân cấp. Ví dụ: chúng tôi có thể chỉ định phần tử số 2 của startTimeWindows của xe số 5 bằng cách sử dụng:

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

Tuy nhiên, chúng tôi sẽ bỏ qua các thực thể cấp cao nhất như OptimizeToursRequest hoặc ShipmentModel để tránh nhồi nhét thông báo.

Biểu diễn dưới dạng 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.
}
Trường
name

string

Tên trường, ví dụ: "vehicles".

subField

object (FieldReference)

Trường phụ lồng nhau theo quy tắc đệ quy, nếu cần.

Trường hợp hợp nhất index_or_key.

index_or_key chỉ có thể là một trong những giá trị sau:

index

integer

Chỉ mục của trường nếu lặp lại.

key

string

Khoá nếu trường là bản đồ.

Chỉ số

Chỉ số tổng thể, được tổng hợp trên tất cả các tuyến.

Biểu diễn dưới dạng JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
Trường
aggregatedRouteMetrics

object (AggregatedMetrics)

Tổng hợp trên các tuyến đường. Mỗi chỉ số là tổng (hoặc tối đa, đối với tải) trên tất cả các trường ShipmentRoute.metrics có cùng tên.

skippedMandatoryShipmentCount

integer

Số lô hàng bắt buộc đã bỏ qua.

usedVehicleCount

integer

Số lượng xe đã sử dụng. Lưu ý: nếu tuyến xe trống và Vehicle.used_if_route_is_empty là true, thì xe được coi là đã qua sử dụng.

earliestVehicleStartTime

string (Timestamp format)

Thời gian bắt đầu sớm nhất của một xe đã qua sử dụng, được tính là giá trị tối thiểu trên tất cả xe đã qua sử dụng của ShipmentRoute.vehicle_start_time.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

latestVehicleEndTime

string (Timestamp format)

Thời gian kết thúc mới nhất của một xe đã qua sử dụng, được tính là giá trị tối đa trên tất cả xe đã qua sử dụng của ShipmentRoute.vehicle_end_time.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

costs

map (key: string, value: number)

Chi phí của giải pháp, được phân tích theo các trường yêu cầu liên quan đến chi phí. Các khoá này là đường dẫn proto, so với giá trị đầu vào OptimizeChuyếnsRequest (ví dụ: "model.shipments.pickups.cost") và các giá trị là tổng chi phí do trường chi phí tương ứng tạo ra, được tổng hợp trên toàn bộ giải pháp. Nói cách khác, chi phí["model.shipments.pickups.cost"] là tổng tất cả chi phí đến lấy hàng cho giải pháp. Tất cả chi phí được xác định trong mô hình đều được báo cáo chi tiết tại đây, ngoại trừ chi phí liên quan đến TransitionAttributes chỉ được báo cáo theo cách tổng hợp kể từ ngày 1/1/2022.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

totalCost

number

Tổng chi phí của giải pháp. Tổng của tất cả các giá trị trong bản đồ chi phí.