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)
พร็อพเพอร์ตี้เมตริก
ข้อความ 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
}
}
}