OptimizeToursResponse

การตอบสนองหลังจากแก้ไขปัญหาการเพิ่มประสิทธิภาพการทัวร์ชมที่มีเส้นทางซึ่งตามด้วยยานพาหนะแต่ละคัน การจัดส่งที่ข้าม และค่าใช้จ่ายโดยรวมของโซลูชัน

การแสดง JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
ช่อง
routes[]

object (ShipmentRoute)

เส้นทางที่คํานวณสำหรับยานพาหนะแต่ละคัน เส้นทาง i-th สอดคล้องกับพาหนะ i-th ในโมเดล

requestLabel

string

สำเนาของ OptimizeToursRequest.label หากมีการระบุป้ายกำกับในคำขอ

skippedShipments[]

object (SkippedShipment)

รายการการจัดส่งทั้งหมดที่ข้าม

validationErrors[]

object (OptimizeToursValidationError)

รายการข้อผิดพลาดในการตรวจสอบความถูกต้องทั้งหมดที่เราสามารถตรวจพบได้อย่างอิสระ โปรดดู "ข้อผิดพลาดหลายรายการ" คำอธิบายสำหรับข้อความ OptimizeToursValidationError โดยจะรวมคำเตือนในกรณีที่ solvingMode คือDEFAULT_SOLVE แทนข้อผิดพลาด

metrics

object (Metrics)

เมตริกระยะเวลา ระยะทาง และการใช้งานสำหรับโซลูชันนี้

OptimizeToursValidationError

อธิบายข้อผิดพลาดหรือคำเตือนที่พบเมื่อตรวจสอบ OptimizeToursRequest

การแสดง JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
ช่อง
code

integer

ข้อผิดพลาดในการตรวจสอบจะกำหนดโดยคู่ (code, displayName) ซึ่งแสดงอยู่ตลอดเวลา

ช่องอื่นๆ (ด้านล่าง) จะให้บริบทเพิ่มเติมเกี่ยวกับข้อผิดพลาด

ข้อผิดพลาดหลายรายการ: เมื่อมีข้อผิดพลาดหลายรายการ กระบวนการตรวจสอบจะพยายามแสดงข้อผิดพลาดเหล่านั้นหลายรายการ นี่เป็นกระบวนการที่ไม่สมบูรณ์ ซึ่งก็เหมือนกับคอมไพเลอร์ ข้อผิดพลาดในการตรวจสอบความถูกต้องบางอย่างจะเป็น "ร้ายแรง" ซึ่งหมายความว่าจะหยุดกระบวนการตรวจสอบทั้งหมด นี่คือกรณีของข้อผิดพลาด displayName="UNSPECIFIED" และอื่นๆ เนื่องจากข้อผิดพลาดบางอย่างอาจทําให้กระบวนการตรวจสอบข้ามข้อผิดพลาดอื่นๆ ไป

ความเสถียร: code และ displayName ควรมีความเสถียรมาก แต่รหัสและชื่อที่แสดงใหม่อาจปรากฏเมื่อเวลาผ่านไป ซึ่งอาจทำให้คำขอที่ระบุ (ไม่ถูกต้อง) แสดงผลคู่ (code, displayName) ที่ต่างกัน เนื่องจากข้อผิดพลาดใหม่ซ่อนอันเก่าไว้ (ดู "ข้อผิดพลาดหลายรายการ")

REFERENCE: รายการคู่รหัสทั้งหมด (รหัสและชื่อ)

  • ไม่ระบุ = 0;
  • VALIDATION_TIMEOUT_ERROR = 10; ไม่สามารถตรวจสอบให้เสร็จสิ้นภายในระยะเวลาที่กำหนดได้
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_ค่าธรรมเนียมไม่ถูกต้อง_SOLVING_mode = 1201;
    • REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203;
    • REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1204;
    • REQUEST_OPTIONS_GEODESIC_METERS_PER_SECOND_TOO_SMALL = 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;
    • SHIPMENT_MODEL_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 = 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_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807;
    • TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME = 2808;
    • TIME_WINDOW_COST_AFTER_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_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 = 3,000
    • 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_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;
    • LOAD_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
    • 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_INVALID_COST_AFTER_SOFT_MAX = 3601
    • DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3602;
    • DISTANCE_LIMIT_COST_หลังจาก_SOFT_MAX_WITHOUT_SOFT_MAX = 3603
    • DISTANCE_LIMIT_NEGATIVE_MAX = 3604
    • DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605
    • DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606;
  • DURATION_LIMIT_ERROR = 38;
    • DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800;
    • DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801;
    • DURATION_LIMIT_INVALID_COST_PER_HOUR_AFTER_SOFT_MAX = 3802
    • DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3803
    • DURATION_LIMIT_COST_หลังจาก_SOFT_MAX_WITHOUT_SOFT_MAX = 3804
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805;
    • DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806
    • DURATION_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
    • DURATION_LIMIT_DIFF_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE = 3812
    • DURATION_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;
    • 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 = 4003;
    • SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004
    • SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005;
    • SHIPMENT_INVALID_PENALTY_COST = 4006
    • SHIPMENT_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;
    • SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011;
    • SHIPMENT_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_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210;
    • VEHICLE_FIRST_SHIPMENT_IGNORED = 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_IGNORED_WITH_USED_IF_ROUTE_IS_EMPTY = 4216;
    • VEHICLE_INVALID_COST_PER_KILOMETER = 4217;
    • VEHICLE_INVALID_COST_PER_HOUR = 4,218
    • VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4,219
    • VEHICLE_INVALID_FIXED_COST = 4220
    • VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4,221
    • 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_RULE_MISSING_SECOND_INDEX = 4601;
    • PRECEDENCE_RULE_FIRST_INDEX_OUT_OF_BOUNDS = 4602;
    • PRECEDENCE_RULE_SECOND_INDEX_OUT_OF_BOUNDS = 4603;
    • PRECEDENCE_RULE_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_AFTER_GLOBAL_END_TIME = 4807;
    • BREAK_REQUEST_NON_SCHEDULABLE = 4808;
    • BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809
    • BREAK_FREQUENCY_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;
  • SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50;
    • SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
    • SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002;
    • SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
    • SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_mode = 5004;
    • SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005;
  • SHIPMENT_TYPE_REQUIREMENT_ERROR = 52;
    • SHIPMENT_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;
    • SHIPMENT_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
    • DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5,600
    • DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601
  • คำเตือน = 9;
    • WARNING_INJECTED_FIRST_SOLUTION = 90;
      • WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_SHIPMENTS_REMOVED = 9000;
      • WARNING_INJECTED_FIRST_SOLUTION_INFEASIBLE_AFTER_GETting_TRAVEL_TIMES = 9001;
displayName

string

ชื่อที่แสดงของข้อผิดพลาด

fields[]

object (FieldReference)

บริบทข้อผิดพลาดอาจมีช่อง 0, 1 (ส่วนใหญ่) หรือมากกว่านั้นก็ได้ ตัวอย่างเช่น การอ้างอิงจากยานพาหนะ #4 และการรับสินค้าครั้งแรกของการจัดส่ง #2 สามารถทำได้ดังนี้

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

อย่างไรก็ตาม โปรดทราบว่าจํานวนสมาชิกในเซ็ตของ fields ไม่ควรเปลี่ยนแปลงสําหรับรหัสข้อผิดพลาดที่ระบุ

errorMessage

string

สตริงที่มนุษย์อ่านได้ซึ่งอธิบายถึงข้อผิดพลาด มีการแมปแบบ 1:1 ระหว่าง code ถึง errorMessage (เมื่อโค้ด != "UNSPECIFIED")

ความเสถียร: ไม่เสถียร: ข้อความแสดงข้อผิดพลาดที่เชื่อมโยงกับ code ที่ระบุอาจเปลี่ยนแปลงได้ (หวังว่าจะอธิบายให้ชัดเจน) เมื่อเวลาผ่านไป โปรดใช้ displayName และ code แทน

offendingValues

string

อาจมีค่าของช่อง ในบางครั้งอาจไม่สามารถใช้งานได้ คุณไม่ควรพึ่งพาเครื่องมือนี้โดยเด็ดขาด และให้ใช้สำหรับการแก้ไขข้อบกพร่องของโมเดลด้วยตนเองเท่านั้น

การอ้างอิงฟิลด์

ระบุบริบทสำหรับข้อผิดพลาดในการตรวจสอบความถูกต้อง FieldReference จะอ้างอิงช่องหนึ่งๆ ในไฟล์นี้เสมอและเป็นไปตามโครงสร้างลำดับชั้นเดียวกัน ตัวอย่างเช่น เราอาจระบุองค์ประกอบ #2 ของ startTimeWindows ของยานพาหนะ #5 โดยใช้

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

อย่างไรก็ตาม เราจะยกเว้นเอนทิตีระดับบนสุด เช่น OptimizeToursRequest หรือ ShipmentModel เพื่อหลีกเลี่ยงไม่ให้ข้อความมีจำนวนมากที่สุด

การแสดง 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.
}
ช่อง
name

string

ชื่อช่อง เช่น "ยานพาหนะ"

subField

object (FieldReference)

หากจำเป็น ช่องย่อยที่ฝังซ้ำ

ช่องการรวม index_or_key

index_or_key ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้

index

integer

ดัชนีของฟิลด์ หากมีค่าซ้ำ

key

string

คีย์ หากช่องนี้เป็นแผนที่

เมตริก

เมตริกโดยรวมที่รวบรวมจากเส้นทางทั้งหมด

การแสดง JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
ช่อง
aggregatedRouteMetrics

object (AggregatedMetrics)

ข้อมูลรวมตลอดเส้นทาง เมตริกแต่ละรายการคือผลรวม (หรือค่าสูงสุดสำหรับการโหลด) ของช่อง ShipmentRoute.metrics ทั้งหมดที่มีชื่อเดียวกัน

skippedMandatoryShipmentCount

integer

จำนวนการจัดส่งที่จำเป็นที่ข้าม

usedVehicleCount

integer

จำนวนยานพาหนะที่ใช้ หมายเหตุ: หากเส้นทางของยานพาหนะไม่มีข้อมูลและ Vehicle.used_if_route_is_empty เป็นจริง ระบบจะถือว่ามีการใช้ยานพาหนะ

earliestVehicleStartTime

string (Timestamp format)

เวลาเริ่มต้นเร็วที่สุดสำหรับยานพาหนะมือสอง คำนวณเป็นเวลาขั้นต่ำสำหรับยานพาหนะมือสองทั้งหมดที่มีราคา ShipmentRoute.vehicle_start_time

การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

latestVehicleEndTime

string (Timestamp format)

เวลาสิ้นสุดล่าสุดสำหรับยานพาหนะมือสอง ซึ่งคำนวณเป็นค่าสูงสุดสำหรับยานพาหนะมือสองทั้งหมดที่มีราคา ShipmentRoute.vehicle_end_time

การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

costs

map (key: string, value: number)

ค่าใช้จ่ายของโซลูชัน แยกตามช่องคำขอที่เกี่ยวข้องกับค่าใช้จ่าย คีย์ต่างๆ คือเส้นทางโปรโตซึ่งสัมพันธ์กับ OptimizeToursRequest ของอินพุต เช่น "model.shipments.pickups.cost" และค่าเหล่านี้คือค่าใช้จ่ายทั้งหมดที่เกิดขึ้นจากช่องค่าใช้จ่ายที่เกี่ยวข้อง ซึ่งรวมจากโซลูชันทั้งหมด กล่าวคือ cost["model.shipments.pickups.cost"] คือผลรวมของค่าใช้จ่ายการรับสินค้าทั้งหมดในโซลูชัน ระบบจะรายงานค่าใช้จ่ายทั้งหมดที่กำหนดไว้ในโมเดลอย่างละเอียดที่นี่ ยกเว้นค่าใช้จ่ายที่เกี่ยวข้องกับ TransitionAttributes ซึ่งจะรายงานแบบรวมข้อมูล ณ วันที่ 1/2022 เท่านั้น

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่างเช่น { "name": "wrench", "mass": "1.3kg", "count": "3" }

totalCost

number

ต้นทุนรวมของโซลูชัน ผลรวมของค่าทั้งหมดในแผนที่ต้นทุน