การตอบสนองหลังจากแก้ไขปัญหาการเพิ่มประสิทธิภาพการทัวร์ชมที่มีเส้นทางซึ่งตามด้วยยานพาหนะแต่ละคัน การจัดส่งที่ข้าม และค่าใช้จ่ายโดยรวมของโซลูชัน
การแสดง JSON |
---|
{ "routes": [ { object ( |
ช่อง | |
---|---|
routes[] |
เส้นทางที่คํานวณสำหรับยานพาหนะแต่ละคัน เส้นทาง i-th สอดคล้องกับพาหนะ i-th ในโมเดล |
requestLabel |
สำเนาของ |
skippedShipments[] |
รายการการจัดส่งทั้งหมดที่ข้าม |
validationErrors[] |
รายการข้อผิดพลาดในการตรวจสอบความถูกต้องทั้งหมดที่เราสามารถตรวจพบได้อย่างอิสระ โปรดดู "ข้อผิดพลาดหลายรายการ" คำอธิบายสำหรับข้อความ |
metrics |
เมตริกระยะเวลา ระยะทาง และการใช้งานสำหรับโซลูชันนี้ |
OptimizeToursValidationError
อธิบายข้อผิดพลาดหรือคำเตือนที่พบเมื่อตรวจสอบ OptimizeToursRequest
การแสดง JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
ช่อง | |
---|---|
code |
ข้อผิดพลาดในการตรวจสอบจะกำหนดโดยคู่ ( ช่องอื่นๆ (ด้านล่าง) จะให้บริบทเพิ่มเติมเกี่ยวกับข้อผิดพลาด ข้อผิดพลาดหลายรายการ: เมื่อมีข้อผิดพลาดหลายรายการ กระบวนการตรวจสอบจะพยายามแสดงข้อผิดพลาดเหล่านั้นหลายรายการ นี่เป็นกระบวนการที่ไม่สมบูรณ์ ซึ่งก็เหมือนกับคอมไพเลอร์ ข้อผิดพลาดในการตรวจสอบความถูกต้องบางอย่างจะเป็น "ร้ายแรง" ซึ่งหมายความว่าจะหยุดกระบวนการตรวจสอบทั้งหมด นี่คือกรณีของข้อผิดพลาด ความเสถียร: REFERENCE: รายการคู่รหัสทั้งหมด (รหัสและชื่อ)
|
displayName |
ชื่อที่แสดงของข้อผิดพลาด |
fields[] |
บริบทข้อผิดพลาดอาจมีช่อง 0, 1 (ส่วนใหญ่) หรือมากกว่านั้นก็ได้ ตัวอย่างเช่น การอ้างอิงจากยานพาหนะ #4 และการรับสินค้าครั้งแรกของการจัดส่ง #2 สามารถทำได้ดังนี้
อย่างไรก็ตาม โปรดทราบว่าจํานวนสมาชิกในเซ็ตของ |
errorMessage |
สตริงที่มนุษย์อ่านได้ซึ่งอธิบายถึงข้อผิดพลาด มีการแมปแบบ 1:1 ระหว่าง ความเสถียร: ไม่เสถียร: ข้อความแสดงข้อผิดพลาดที่เชื่อมโยงกับ |
offendingValues |
อาจมีค่าของช่อง ในบางครั้งอาจไม่สามารถใช้งานได้ คุณไม่ควรพึ่งพาเครื่องมือนี้โดยเด็ดขาด และให้ใช้สำหรับการแก้ไขข้อบกพร่องของโมเดลด้วยตนเองเท่านั้น |
การอ้างอิงฟิลด์
ระบุบริบทสำหรับข้อผิดพลาดในการตรวจสอบความถูกต้อง FieldReference
จะอ้างอิงช่องหนึ่งๆ ในไฟล์นี้เสมอและเป็นไปตามโครงสร้างลำดับชั้นเดียวกัน ตัวอย่างเช่น เราอาจระบุองค์ประกอบ #2 ของ startTimeWindows
ของยานพาหนะ #5 โดยใช้
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
อย่างไรก็ตาม เราจะยกเว้นเอนทิตีระดับบนสุด เช่น OptimizeToursRequest
หรือ ShipmentModel
เพื่อหลีกเลี่ยงไม่ให้ข้อความมีจำนวนมากที่สุด
การแสดง JSON |
---|
{ "name": string, "subField": { object ( |
ช่อง | |
---|---|
name |
ชื่อช่อง เช่น "ยานพาหนะ" |
subField |
หากจำเป็น ช่องย่อยที่ฝังซ้ำ |
ช่องการรวม
|
|
index |
ดัชนีของฟิลด์ หากมีค่าซ้ำ |
key |
คีย์ หากช่องนี้เป็นแผนที่ |
เมตริก
เมตริกโดยรวมที่รวบรวมจากเส้นทางทั้งหมด
การแสดง JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
ช่อง | |
---|---|
aggregatedRouteMetrics |
ข้อมูลรวมตลอดเส้นทาง เมตริกแต่ละรายการคือผลรวม (หรือค่าสูงสุดสำหรับการโหลด) ของช่อง |
skippedMandatoryShipmentCount |
จำนวนการจัดส่งที่จำเป็นที่ข้าม |
usedVehicleCount |
จำนวนยานพาหนะที่ใช้ หมายเหตุ: หากเส้นทางของยานพาหนะไม่มีข้อมูลและ |
earliestVehicleStartTime |
เวลาเริ่มต้นเร็วที่สุดสำหรับยานพาหนะมือสอง คำนวณเป็นเวลาขั้นต่ำสำหรับยานพาหนะมือสองทั้งหมดที่มีราคา การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: |
latestVehicleEndTime |
เวลาสิ้นสุดล่าสุดสำหรับยานพาหนะมือสอง ซึ่งคำนวณเป็นค่าสูงสุดสำหรับยานพาหนะมือสองทั้งหมดที่มีราคา การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: |
costs |
ค่าใช้จ่ายของโซลูชัน แยกตามช่องคำขอที่เกี่ยวข้องกับค่าใช้จ่าย คีย์ต่างๆ คือเส้นทางโปรโตซึ่งสัมพันธ์กับ OptimizeToursRequest ของอินพุต เช่น "model.shipments.pickups.cost" และค่าเหล่านี้คือค่าใช้จ่ายทั้งหมดที่เกิดขึ้นจากช่องค่าใช้จ่ายที่เกี่ยวข้อง ซึ่งรวมจากโซลูชันทั้งหมด กล่าวคือ cost["model.shipments.pickups.cost"] คือผลรวมของค่าใช้จ่ายการรับสินค้าทั้งหมดในโซลูชัน ระบบจะรายงานค่าใช้จ่ายทั้งหมดที่กำหนดไว้ในโมเดลอย่างละเอียดที่นี่ ยกเว้นค่าใช้จ่ายที่เกี่ยวข้องกับ TransitionAttributes ซึ่งจะรายงานแบบรวมข้อมูล ณ วันที่ 1/2022 เท่านั้น ออบเจ็กต์ที่มีรายการคู่ |
totalCost |
ต้นทุนรวมของโซลูชัน ผลรวมของค่าทั้งหมดในแผนที่ต้นทุน |