Route Optimization API จะแสดงเส้นทางสำหรับยานพาหนะในคำขอที่เกี่ยวข้อง ระบบจะกำหนดการจัดส่งให้กับยานพาหนะ หรืออาจข้ามไปโดยขึ้นอยู่กับพร็อพเพอร์ตี้ของคำขอ
ข้อความ OptimizeToursResponse
(REST, gRPC) มีคุณสมบัติหลักระดับบนสุด 2 รายการ ได้แก่
routes[]
คือเส้นทางของยานพาหนะแต่ละคันที่มีการจัดส่งที่กำหนดRoute
แต่ละรายการจะมีเมตริกที่แสดงถึงพร็อพเพอร์ตี้ของเส้นทางนั้นๆmetrics
คือเมตริกรวมสำหรับการตอบกลับทั้งหมดในยานพาหนะและแผนเส้นทางทั้งหมด เมตริกระดับบนสุดมีพร็อพเพอร์ตี้เดียวกับเมตริกต่อเส้นทาง โดยมีค่าที่รวบรวมจากทุกเส้นทาง
พร็อพเพอร์ตี้บางรายการอาจไม่แสดงเสมอไป ทั้งนี้ขึ้นอยู่กับผลลัพธ์การเพิ่มประสิทธิภาพ
skippedShipments[]
แสดงรายการการจัดส่งที่ไม่ได้ดำเนินการโดยยานพาหนะใด คุณข้ามการจัดส่งได้หากดำเนินการภายในข้อจำกัดที่ระบุไว้ไม่ได้ หรือหากค่าใช้จ่ายในการดำเนินการจัดส่งสูงกว่าค่าปรับ ตัวอย่างเช่น หากการรับหรือการนำส่งสินค้ามีเวลารับส่งที่แคบมากtimeWindow
ยานพาหนะอาจไม่สามารถไปรับหรือนำส่งสินค้าได้ภายในกรอบเวลาที่กำหนดหรืออาจไม่คุ้มค่าvalidationErrors[]
ระบุข้อผิดพลาดที่ทำให้คำขอไม่ถูกต้องหรือแก้ไขไม่ได้เมื่อตั้งค่าsolvingMode
ของคำขอเป็นVALIDATE_ONLY
ในโหมดDEFAULT_SOLVE
ปกติ ข้อผิดพลาดในการตรวจสอบจะปรากฏในข้อความแสดงข้อผิดพลาดแทนเนื้อหาการตอบกลับ โปรดทราบว่าVALIDATE_ONLY
โหมดการแก้ปัญหาจะรายงานข้อผิดพลาดหลายรายการพร้อมกันได้ ซึ่งมีประโยชน์สำหรับการแก้ไขข้อบกพร่องของคำขออย่างรวดเร็ว
พร็อพเพอร์ตี้เส้นทาง
รายการ routes[]
แต่ละรายการคือข้อความ ShipmentRoute
(REST, gRPC) ShipmentRoute
แต่ละรายการจะแสดงการกำหนดเส้นทางสำหรับยานพาหนะคันหนึ่งๆ จากคำขอ พร็อพเพอร์ตี้ ShipmentRoute
ที่สำคัญที่เกี่ยวข้องกับ Vehicle
ที่เกี่ยวข้อง ได้แก่
vehicleIndex
คือดัชนีแบบนับจาก 0 ของVehicle
ในข้อความขอที่เกี่ยวข้อง การตอบกลับ REST จะละเว้นพร็อพเพอร์ตี้นี้เมื่อค่าเป็น 0vehicleStartTime
คือเวลาที่ยานพาหนะต้องเริ่มต้นเส้นทางvehicleEndTime
คือเวลาที่ใช้คาดว่าพาหนะจะถึงจุดหมาย
routes
ในการตอบกลับจะมีลักษณะดังนี้
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
...
],
"transitions": [
...
],
"metrics": {
...
},
...
}
],
...
}
ShipmentRoute
แต่ละรายการจะมีรายการ visits
ตามลำดับที่ยานพาหนะจะดำเนินการ Visit
(REST, gRPC) แต่ละรายการแสดง VisitRequest
(REST, gRPC) จากคำขอที่เกี่ยวข้อง Visit
พร็อพเพอร์ตี้ที่สําคัญ ได้แก่
shipmentIndex
คือดัชนีฐาน 0 ของการจัดส่งที่การเข้าชมนี้อยู่ในคำขอที่เกี่ยวข้องisPickup
เป็นจริงเมื่อการเข้าชมเป็นการรับสินค้า และเป็นเท็จเมื่อการเข้าชมเป็นการนำส่ง การตอบกลับ REST จะละเว้นพร็อพเพอร์ตี้นี้เมื่อค่าเป็นเท็จvisitRequestIndex
คือดัชนีแบบนับจาก 0 ของVisitRequest
จากShipment.pickups
หรือShipment.deliveries
ในคําขอที่เกี่ยวข้องซึ่งVisit
แสดง การตอบกลับ REST จะละเว้นพร็อพเพอร์ตี้นี้เมื่อค่าเป็น 0startTime
คือเวลาที่คาดว่าการเรียกให้แสดงผลจะเริ่มต้นloadDemands
แมปประเภทการโหลดกับจำนวนการโหลดที่จําเป็นเพื่อทำให้Visit
เสร็จสมบูรณ์ จำนวนการโหลดจะเป็นลบสำหรับการเข้าชมเพื่อนำส่ง ซึ่งแสดงถึงการนําโหลดออกจากยานพาหนะ
ตัวอย่าง Visit
มีดังนี้
{
"routes": [
{
...
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
...
],
},
...
],
...
}
ShipmentRoute
แต่ละรายการจะมีรายการ transitions
ที่เรียงลําดับซึ่งแสดงการเดินทางระหว่าง visits
สําหรับยานพาหนะหนึ่งๆ พร็อพเพอร์ตี้Transition
ข้อความ (REST, gRPC) ที่สําคัญ ได้แก่
startTime
คือเวลาที่รถจะเริ่มเปลี่ยนtravelDuration
คือระยะเวลาที่ยานพาหนะต้องเดินทางเพื่อเปลี่ยนเลนtravelDistanceMeters
คือระยะทางเป็นเมตรที่ยานพาหนะต้องเคลื่อนที่เพื่อเปลี่ยนเลนจนเสร็จสมบูรณ์trafficInfoUnavailable
จะระบุว่าข้อมูลการเข้าชมพร้อมสำหรับการเปลี่ยนหรือไม่waitDuration
แสดงถึงเวลาที่ไม่มีการใช้งานที่ยานพาหนะรอก่อนที่จะเริ่มVisit
ครั้งถัดไป ซึ่งอาจเกิดจากstart_time
ของVisit
ต่อไปนี้totalDuration
คือระยะเวลารวมของการเปลี่ยนผ่าน รวมถึงระยะเวลาเดินทาง เวลารอ ช่วงพัก และความล่าช้า- ประเภทการโหลดแผนที่
vehicleLoads
ต่อน้ำหนักบรรทุกที่ยานพาหนะขนส่งในระหว่างการเปลี่ยนนี้
ตัวอย่าง Transition
มีดังนี้
{
"routes": [
{
...
"transitions": [
...
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
...
],
...
}
],
...
}
ดูข้อมูลเพิ่มเติมเกี่ยวกับความสัมพันธ์ระหว่าง vists
กับ transitions
ได้ที่การเพิ่มประสิทธิภาพคำสั่งซื้อสำหรับการรับสินค้าและการนำส่งและShipmentRoute
เอกสารอ้างอิง (REST, gRPC) ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ routePolyline
และ routeToken
ของข้อความ Transition
ได้ที่เส้นประกอบการเปลี่ยนเส้นทางและโทเค็นเส้นทาง
พร็อพเพอร์ตี้เมตริก
ข้อความ Metrics
(REST, gRPC) จะสรุปโซลูชันทั้งหมด
พร็อพเพอร์ตี้ Metrics
ที่สำคัญบางส่วน ได้แก่
totalCost
คือต้นทุนทั้งหมดที่เกิดขึ้นในเส้นทาง อ่านข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายในพารามิเตอร์รูปแบบต้นทุนusedVehicleCount
คือจํานวนยานพาหนะทั้งหมดที่ใช้ในโซลูชัน ยานพาหนะอาจมีเส้นทางว่างเมื่อเครื่องมือเพิ่มประสิทธิภาพพิจารณาว่าไม่จําเป็นต้องใช้ยานพาหนะskippedMandatoryShipmentCount
คือจํานวนการจัดส่งที่ข้ามซึ่ง "ต้องดำเนินการ" การจัดส่งที่ต้องดำเนินการไม่ได้ระบุpenaltyCost
ที่ต้องชำระหากข้ามการจัดส่ง คุณยังคงข้ามการจัดส่งที่ต้องดำเนินการได้หากประสิทธิภาพของการจัดส่งนั้นไม่สามารถทำได้ภายใต้ข้อจำกัดที่ระบุ อ่านข้อมูลเพิ่มเติมเกี่ยวกับต้นทุนในพารามิเตอร์รูปแบบต้นทุน
ระบบจะรายงานเมตริกเพิ่มเติมเป็นข้อความ AggregatedMetrics
(REST, gRPC) ข้อความประเภท AggregatedMetrics
ใช้สำหรับพร็อพเพอร์ตี้ Metrics.aggregatedRouteMetrics
และสำหรับพร็อพเพอร์ตี้ ShipmentRoute.metrics
Metrics.aggregatedRouteMetrics
มีเมตริกที่รวบรวมจาก ShipmentRoute
ทั้งหมดใน OptimizeToursResponse
พร็อพเพอร์ตี้ ShipmentRoute.metrics
แต่ละรายการจะมีเมตริกสําหรับ ShipmentRoute
ที่เฉพาะเจาะจงนั้น
พร็อพเพอร์ตี้ AggregatedMetrics
ที่สำคัญ ได้แก่
performedShipmentCount
คือจำนวนยานพาหนะในการจัดส่งตลอดเส้นทางtravelDuration
คือเวลารวมที่ยานพาหนะใช้ในการขนส่งสาธารณะระหว่างการเดินทางมาตามเส้นทางwaitDuration
คือเวลาทั้งหมดที่ยานพาหนะรอขณะทำเส้นทางdelayDuration
คือระยะเวลาล่าช้าโดยรวมสำหรับยานพาหนะ ซึ่งโดยปกติจะเป็น 0 เว้นแต่ว่าจะมีการใช้TransitionAttributes
ในคำขอbreakDuration
คือเวลาทั้งหมดที่ยานพาหนะหยุดพักขณะทำเส้นทางvisitDuration
คือเวลารวมที่ยานพาหนะใช้ในการตรวจเจอขณะเสร็จสิ้นเส้นทาง ซึ่งก็คือผลรวมของค่าVisitRequest.duration
ทั้งหมดสำหรับVisitRequest
ที่สอดคล้องกับVisit
ที่กำหนดให้กับยานพาหนะที่ใช้งานได้totalDuration
คือระยะเวลารวมที่ต้องใช้ในการขับขี่ยานพาหนะให้เสร็จสมบูรณ์travelDistanceMeters
คือระยะทางรวมที่ยานพาหนะเดินทางขณะทำเส้นทางmaxLoads
แมปประเภทการโหลดกับปริมาณน้ำหนักบรรทุกสูงสุดที่ยานพาหนะบรรทุก ณ จุดใดก็ตามบนเส้นทางของตนได้
ตัวอย่างข้อความ Metrics
มีดังนี้
{
"routes": [
...
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}
ตัวอย่างที่สมบูรณ์
ตัวอย่างการตอบกลับที่สมบูรณ์สำหรับคำขอจากสร้างคำขอมีลักษณะดังนี้
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
{
"startTime": "2024-02-13T00:19:31Z",
"detour": "0s"
}
],
"transitions": [
{
"travelDuration": "0s",
"waitDuration": "0s",
"totalDuration": "0s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1151s",
"travelDistanceMeters": 9599,
"waitDuration": "0s",
"totalDuration": "1151s",
"startTime": "2024-02-13T00:19:31Z"
}
],
"metrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"routeCosts": {
"model.vehicles.cost_per_kilometer": 18.603
},
"routeTotalCost": 18.603
}
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}