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
ที่เกี่ยวข้องกับ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
พร็อพเพอร์ตี้Metrics
ที่สำคัญบางอย่างมีดังนี้
totalCost
คือต้นทุนทั้งหมดที่เกิดขึ้นในการเดินทางตามเส้นทาง อ่านเพิ่มเติม เกี่ยวกับต้นทุนในพารามิเตอร์รูปแบบต้นทุนusedVehicleCount
คือจำนวนยานพาหนะทั้งหมดที่ใช้ในโซลูชัน ยานพาหนะอาจมีเส้นทางว่างเปล่าเมื่อเครื่องมือเพิ่มประสิทธิภาพพิจารณาว่าไม่จำเป็นต้องใช้ยานพาหนะskippedMandatoryShipmentCount
คือจำนวนการจัดส่งที่ข้ามซึ่งมีสถานะเป็น "บังคับ" การจัดส่งที่จำเป็นไม่ได้ระบุpenaltyCost
ที่จะเกิดขึ้นหากมีการข้ามการจัดส่ง คุณยังคงข้ามการจัดส่งที่จำเป็นได้หากประสิทธิภาพไม่เป็นไปตามข้อจำกัดที่ระบุ อ่านข้อมูลเพิ่มเติมเกี่ยวกับต้นทุนได้ในพารามิเตอร์รูปแบบต้นทุน
เมตริกเพิ่มเติมจะรายงานเป็นข้อความ AggregatedMetrics
(REST,
gRPC) ประเภทข้อความ AggregatedMetrics
ใช้สำหรับพร็อพเพอร์ตี้ Metrics.aggregatedRouteMetrics
และสำหรับพร็อพเพอร์ตี้ ShipmentRoute.metrics
พร็อพเพอร์ตี้ Metrics.aggregatedRouteMetrics
มีเมตริกที่รวบรวมจาก ShipmentRoute
ทั้งหมดใน OptimizeToursResponse
พร็อพเพอร์ตี้ ShipmentRoute.metrics
แต่ละรายการมีเมตริกสำหรับ ShipmentRoute
นั้นๆ
AggregatedMetrics
พร็อพเพอร์ตี้ที่สำคัญ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
}
}
}