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
}
}
}