OptimizeToursResponse

Phản hồi sau khi giải quyết vấn đề tối ưu hoá chuyến đi, trong đó có các tuyến đường mà mỗi xe tuân theo, các lô hàng đã bị bỏ qua và chi phí tổng thể 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 xe; tuyến đường thứ i tương ứng với 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ỏ qua.

validationErrors[]

object (OptimizeToursValidationError)

Danh sách tất cả lỗi xác thực mà chúng tôi có thể phát hiện một cách độc lập. Xem nội dung giải thích "Nhiều lỗi" cho thông báo OptimizeToursValidationError. Thay vì báo cáo lỗi, biến này sẽ bao gồm cảnh báo trong trường hợp solvingModeDEFAULT_SOLVE.

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 hoặc cảnh báo gặp phải 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 ngữ cảnh 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):

  • KHÔNG XÁC ĐỊNH = 0;
  • VALIDATION_TIMEOUT_ERROR = 10; Không thể hoàn tất quy 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_METERS_PER_SECOND = 1204;
    • REQUEST_OPTIONS_GEODESIC_ Tỷ lượt = 1205;
    • REQUEST_OPTIONS_MISSING_GEODESIC_METERS_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_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_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010;
  • SHIPMENT_MODEL_ERROR = 22;
    • GỬI_MÔ_ HÌNH_TOO_LARGE = 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 = 2204;
    • 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 = 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_AFTER_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_www_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_OUTSIDE_GLOBAL_TIME_WINDOW = 2819;
    • TIME_WINDOW_SOFT_END_TIME_OUTSIDE_GLOBAL_TIME_WINDOW = 2820;
    • TIME_WINDOW_SOFT_END_TIME_AFTER_END_TIME = 2816;
    • Time_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS = 2817;
    • TIME_WINDOW_COST_AFTER_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_METERS_UNSUPPORTED = 3003;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004;
    • TRANSITION_ATTRIBUTES_CONFLICTING_SOURCE_TAGS_FIELDS = 3005;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_POINT_TAGS = 3006;
    • TRANSITION_ATTRIBUTES_MILESTONEING_PLACE_TAGS_FIELDS = 3007;
    • TRANSITION_ATTRIBUTES_Empty_DURATION_NEGATIVE_OR_NAN = 3008;
    • TRANSITION_ATTRIBUTES_DELAY_DURATION_EXCEEDS_GLOBAL_DURATION = 3009;
  • AMOUNT_ERROR = 31;
    • AMOUNT_NEGATIVE_VALUE = 3100;
  • Nạp_LIMIT_ERROR = 33;
    • LOAD_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303;
    • TẢI_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304;
    • TẢI_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305;
    • 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 = 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;
  • DISTANCE_LIMIT_ERROR = 36;
    • DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3602;
    • DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605;
    • Khoảng cách_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606;
  • ↗_LIMIT_ERROR = 38;
    • DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800;
    • [Tên người] và [TÊN NGƯỜI] = 3801;
    • AVD_LIMIT_INVALID_COST_PER_HOUR_ SAU_SOFT_MAX = 3802;
    • [TÊN NGƯỜI] / [TÊN NGƯỜI] = 3803;
    • DURATION_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3804;
    • [.__.]
    • DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806;
    • AVD_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR = 3807;
    • DURATION_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX = 3808;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809;
    • DURATION_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;
    • shippingMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
    • shippingMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4001;
    • 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;
    • shippingMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003;
    • shippingMENT_EMPTY_shippingMENT_TYPE = 4004;
    • GỬI_KHÔNG_PICKUP_KHÔNG_PHÂN_PHÂN = 4005;
    • SHIPMENT_INVALID_PENALTY_COST = 4006;
    • shippingMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007;
    • shippingMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008;
    • shippingMENT_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;
    • shippingMENT_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_SHIPMENT_IGNORED = 4211;
    • VEHICLE_FIRST_shippingMENT_NOT_BOUND = 4212;
    • VEHICLE_LAST_shippingMENT_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_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 = 4405;
  • PRECEDENCE_ERROR = 46;
    • PRECEDENCE_RULE_MISSING_FIRST_INDEX = 4600;
    • PRECEDENCE_Quy_MISSING_ ước_INDEX = 4601;
    • PRECEDENCE_QU_FIRST_INDEX_OUT_OF_BOUNDS = 4602;
    • PRECEDENCE_Quy_OFFSET_INDEX_OUT_OF_BOUNDS = 4603;
    • PRECEDENCE_ROWS_DUPLICATE_INDEX = 4604;
    • PRECEDENCE_RULE_INEXISTENT_FIRST_VISIT_REQUEST = 4605;
    • PRECEDENCE_RULE_INEXISTENT_SECOND_VISIT_REQUEST = 4606;
  • 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_FOLLOWING_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_VAT_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811;
    • BREAK_VAT_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;
    • shippingMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
    • shippingMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002;
    • GỬI_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
    • SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004;
    • GỬI__TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBITIES = 5005;
  • shippingMENT_TYPE_REQUIREMENT_ERROR = 52;
    • GỬI_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001;
    • SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002;
    • 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 = 52007;
    • shippingMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008;
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009;
    • SHIPMENT_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;
  • DURATION_SECONDS_MATRIX_ERROR = 56;
    • [Tên người] và [8]
    • ↗_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601;
  • WARNING = 9;
    • WARNING_INJECTED_FIRST_SOLUTION = 90;
      • WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_shippingMENTS_REMOVED = 9000;
      • WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_SAU_GETTING_Travel_TIMES = 9001;
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ụ: Khi tham chiếu đến xe số 4 và lần đến lấy hàng đầu tiên của lô hàng số 2, bạn có thể làm 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. Tính năng này không phải lúc nào cũng có. 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 ta sẽ bỏ qua các thực thể cấp cao nhất như OptimizeToursRequest hoặc ShipmentModel để tránh làm rối 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ụ: "phương tiện vận chuyển".

subField

object (FieldReference)

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

Trường kết hợp index_or_key.

index_or_key chỉ có thể là một trong những trạng thái sau đây:

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)

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

skippedMandatoryShipmentCount

integer

Số lượng lô hàng bắt buộc bị bỏ qua.

usedVehicleCount

integer

Số lượng xe đã sử dụng. Lưu ý: Nếu tuyến đường của xe trống và Vehicle.used_if_route_is_empty là đúng, thì xe đó sẽ được coi là đã 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 bằng thời gian tối thiểu của tất cả xe đã qua sử dụng là 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 muộn nhất của một xe đã qua sử dụng, được tính là thời gian 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, với độ phân giải nano giây và tối đa 9 chữ số phân số. 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á là đường dẫn proto, tương ứng với OptimizeToursRequest đầu vào, 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, costs["model.shipments.pickups.cost"] là tổng chi phí lấy hàng trên 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ừ các 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í.