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