ตัวอย่างนี้แสดงให้เห็นว่าจำนวนยานพาหนะที่ใช้ในโซลูชัน Route Optimization API อาจแตกต่างกันไปขึ้นอยู่กับวิธีที่คุณกำหนดพารามิเตอร์ต้นทุน การปรับต้นทุนยานพาหนะจะช่วยให้คุณกำหนดได้ว่าเครื่องมือเพิ่มประสิทธิภาพ ควรจัดลําดับความสําคัญของการลดจํานวนยานพาหนะที่ใช้หรือลดเวลาทั้งหมด ที่ใช้ในการจัดส่งทั้งหมด
ดูภาพรวมแนวคิดทั้งหมดได้ที่แนวคิดหลักของรูปแบบ การกำหนดราคา
สถานการณ์ที่ 1: ลดต้นทุนการดำเนินงานของยานพาหนะ
สถานการณ์นี้แสดงให้เห็นว่าเครื่องมือเพิ่มประสิทธิภาพใช้จำนวนยานพาหนะขั้นต่ำที่จำเป็นในการสร้างโซลูชันที่คุ้มค่าที่สุดเมื่อค่าใช้จ่ายเชื่อมโยงกับยานพาหนะแต่ละคันอย่างไร
ตัวอย่างคำขอ
คำขอนี้มีข้อมูลต่อไปนี้
shipment3 รายการ โดยแต่ละรายการมีpenaltyCostที่แตกต่างกัน ได้แก่ 100.0, 5.0 และ 50.0vehicle3 รายการที่เหมือนกัน โดยแต่ละรายการมีcostPerHourเท่ากับ 50.0 และcostPerKilometerเท่ากับ 10.0
ดูตัวอย่างคำขอที่มีรถหลายคัน
{ "model": { "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00", "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 100.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 5.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 50.0 } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 50.0, "costPerKilometer": 10.0 }, { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 50.0, "costPerKilometer": 10.0 }, { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 50.0, "costPerKilometer": 10.0 } ] } }
ตัวอย่างการตอบกลับ
แม้ว่าจะมีรถ 3 คัน แต่เครื่องมือเพิ่มประสิทธิภาพจะกำหนดการจัดส่งทั้งหมด ให้กับรถคันเดียวและข้ามการจัดส่ง 1 รายการ ซึ่งเป็นโซลูชันที่ถูกที่สุด เนื่องจากต้นทุนการใช้งานยานพาหนะมากกว่า 1 คันสูงกว่า การนำส่ง 3 รายการด้วยยานพาหนะ 1 คันและข้ามการนำส่งที่มี ค่าปรับการข้ามต่ำ
ดูคำตอบสำหรับคำขอที่มี ยานพาหนะหลายคัน
{ "routes": [ { "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:28:22Z", "visits": [ { "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "shipmentIndex": 2, "isPickup": true, "startTime": "2023-01-14T00:02:30Z", "detour": "150s" }, { "startTime": "2023-01-14T00:08:55Z", "detour": "150s" }, { "shipmentIndex": 2, "startTime": "2023-01-14T00:21:21Z", "detour": "572s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:02:30Z" }, { "travelDuration": "235s", "travelDistanceMeters": 795, "waitDuration": "0s", "totalDuration": "235s", "startTime": "2023-01-14T00:05:00Z" }, { "travelDuration": "496s", "travelDistanceMeters": 1893, "waitDuration": "0s", "totalDuration": "496s", "startTime": "2023-01-14T00:13:05Z" }, { "travelDuration": "171s", "travelDistanceMeters": 665, "waitDuration": "0s", "totalDuration": "171s", "startTime": "2023-01-14T00:25:31Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "902s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "800s", "totalDuration": "1702s", "travelDistanceMeters": 3353 }, "routeCosts": { "model.vehicles.cost_per_kilometer": 33.53, "model.vehicles.cost_per_hour": 23.638888888888889 }, "routeTotalCost": 57.168888888888887 }, { "vehicleIndex": 1 }, { "vehicleIndex": 2 } ], "skippedShipments": [ { "index": 1 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "902s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "800s", "totalDuration": "1702s", "travelDistanceMeters": 3353 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2023-01-14T00:00:00Z", "latestVehicleEndTime": "2023-01-14T00:28:22Z", "totalCost": 62.168888888888887, "costs": { "model.vehicles.cost_per_hour": 23.638888888888889, "model.shipments.penalty_cost": 5, "model.vehicles.cost_per_kilometer": 33.53 } } }
การตอบกลับจะมีพารามิเตอร์ที่เกี่ยวข้องต่อไปนี้
- อาร์เรย์
routesมีออบเจ็กต์ 3 รายการ รายการแรกอธิบายเส้นทางสำหรับvehicle[0]ขณะที่อีก 2 รายการมีเพียงvehicleIndexซึ่งบ่งบอกว่าไม่ได้ใช้vehicle[1]และvehicle[2] - อาร์เรย์
skippedShipmentsแสดงว่าระบบข้ามการจัดส่งที่มีindex: 1ซึ่งมีpenaltyCostต่ำสุดที่ 5.0 - ออบเจ็กต์
metricsยืนยันว่าusedVehicleCountคือ 1
สถานการณ์ที่ 2: ลดเวลาโดยรวมของโซลูชัน
สถานการณ์นี้แสดงวิธีกระตุ้นให้ใช้ยานพาหนะมากขึ้นเพื่อจัดส่งสินค้าทั้งหมดให้เสร็จสมบูรณ์ได้เร็วขึ้น โดยการเปลี่ยนรูปแบบต้นทุนจากต้นทุนการดำเนินงานของยานพาหนะแต่ละคันเป็นต้นทุนทั่วโลกที่ลงโทษระยะเวลาทั้งหมดของโซลูชันทั้งหมด
ตัวอย่างคำขอ
คำขอนี้มีการเปลี่ยนแปลงพารามิเตอร์ต่อไปนี้จากสถานการณ์แรก
- นำ
costPerHourออกจากยานพาหนะแต่ละคัน - เพิ่ม
globalDurationCostPerHourเป็น 150.0 ค่าใช้จ่ายนี้จะมีผลกับ เวลารวมตั้งแต่ยานพาหนะคันแรกเริ่มจนถึงยานพาหนะคันสุดท้าย สิ้นสุดเส้นทาง - เพิ่ม
penaltyCostสำหรับshipment[1]เป็น 75.00 เพื่อลดโอกาสที่ระบบจะข้าม
ดูตัวอย่างคำขอโดยใช้
globalDurationCostPerHour
{ "model": { "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00", "globalDurationCostPerHour": 150.0, "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 100.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 75.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 50.0 } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerKilometer": 10.0 }, { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerKilometer": 10.0 }, { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerKilometer": 10.0 } ] } }
ตัวอย่างการตอบกลับ
เมื่อใช้ต้นทุนใหม่ทั่วโลก ตอนนี้เครื่องมือเพิ่มประสิทธิภาพจะใช้ยานพาหนะทั้ง 3 คันเพื่อทำการจัดส่งทั้ง 3 รายการให้เสร็จสมบูรณ์ การวิ่งเส้นทางแบบขนานจะช่วยลดระยะเวลาการปฏิบัติงานโดยรวมได้อย่างมาก แม้ว่าระยะทางในการเดินทางรวมจะสูงกว่าก็ตาม
ดูการตอบกลับคำขอโดยใช้
globalDurationCostPerHour
{ "routes": [ { "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:16:20Z", "visits": [ { "shipmentIndex": 2, "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "shipmentIndex": 2, "startTime": "2023-01-14T00:09:19Z", "detour": "0s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z" }, { "travelDuration": "409s", "travelDistanceMeters": 1371, "waitDuration": "0s", "totalDuration": "409s", "startTime": "2023-01-14T00:02:30Z" }, { "travelDuration": "171s", "travelDistanceMeters": 665, "waitDuration": "0s", "totalDuration": "171s", "startTime": "2023-01-14T00:13:29Z" } ], "metrics": { "performedShipmentCount": 1, "travelDuration": "580s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "400s", "totalDuration": "980s", "travelDistanceMeters": 2036 }, "routeCosts": { "model.vehicles.cost_per_kilometer": 20.36 }, "routeTotalCost": 20.36 }, { "vehicleIndex": 1, "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:18:54Z", "visits": [ { "shipmentIndex": 1, "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "shipmentIndex": 1, "startTime": "2023-01-14T00:08:24Z", "detour": "0s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z" }, { "travelDuration": "354s", "travelDistanceMeters": 1192, "waitDuration": "0s", "totalDuration": "354s", "startTime": "2023-01-14T00:02:30Z" }, { "travelDuration": "380s", "travelDistanceMeters": 1190, "waitDuration": "0s", "totalDuration": "380s", "startTime": "2023-01-14T00:12:34Z" } ], "metrics": { "performedShipmentCount": 1, "travelDuration": "734s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "400s", "totalDuration": "1134s", "travelDistanceMeters": 2382 }, "routeCosts": { "model.vehicles.cost_per_kilometer": 23.82 }, "routeTotalCost": 23.82 }, { "vehicleIndex": 2, "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:16:14Z", "visits": [ { "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "startTime": "2023-01-14T00:06:25Z", "detour": "0s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z" }, { "travelDuration": "235s", "travelDistanceMeters": 795, "waitDuration": "0s", "totalDuration": "235s", "startTime": "2023-01-14T00:02:30Z" }, { "travelDuration": "339s", "travelDistanceMeters": 1276, "waitDuration": "0s", "totalDuration": "339s", "startTime": "2023-01-14T00:10:35Z" } ], "metrics": { "performedShipmentCount": 1, "travelDuration": "574s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "400s", "totalDuration": "974s", "travelDistanceMeters": 2071 }, "routeCosts": { "model.vehicles.cost_per_kilometer": 20.71 }, "routeTotalCost": 20.71 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 3, "travelDuration": "1888s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "3088s", "travelDistanceMeters": 6489 }, "usedVehicleCount": 3, "earliestVehicleStartTime": "2023-01-14T00:00:00Z", "latestVehicleEndTime": "2023-01-14T00:18:54Z", "totalCost": 112.14, "costs": { "model.vehicles.cost_per_kilometer": 64.89, "model.global_duration_cost_per_hour": 47.25 } } }
คำตอบจะมีช่องที่เกี่ยวข้องต่อไปนี้
- ตอนนี้อาร์เรย์
routesมีเส้นทางที่ให้รายละเอียดครบถ้วน 3 เส้นทาง โดยยานพาหนะแต่ละคันจะได้รับมอบหมายให้จัดส่ง 1 รายการ - ตอนนี้
metrics.usedVehicleCountมีค่าเป็น 3 - ตอนนี้เวลาในการแก้ปัญหาโดยรวม (จาก
earliestVehicleStartTimeถึงlatestVehicleEndTime) เหลือเพียง 18 นาที 54 วินาที เทียบกับ 28 นาที 22 วินาทีในสถานการณ์ก่อนหน้า