ส่งคำขอพร้อมต้นทุนการโหลดเพื่อให้เครื่องมือเพิ่มประสิทธิภาพพิจารณา
น้ำหนักบรรทุกที่ยานพาหนะของคุณบรรทุกระหว่างการเข้าชม ค่าใช้จ่ายที่เกิดขึ้นจะขึ้นอยู่กับทั้ง
ปริมาณของ ShipmentRoute.VehicleLoad
ที่นำไปและระยะทางหรือระยะเวลาของ
การเปลี่ยนผ่าน (ใช้ cost_per_kilometer
หรือ cost_per_traveled_hour
ตามลำดับ)
คำขอตัวอย่างแบบเรียบง่ายที่มีต้นทุนการโหลด
ต่อไปนี้คือตัวอย่างคำขอที่มีต้นทุนการโหลดบางส่วน ในตัวอย่างนี้ ยานพาหนะคันเดียวจะบรรทุกweightKg
น้ำหนักรวมได้ไม่เกิน 1,000 กก. ซึ่งจะ
มีค่าใช้จ่าย 1 หน่วยต่อกิโลเมตรเมื่อweightKg
น้ำหนักที่บรรทุกเกิน 500 กก.
{ "model": { "vehicles": [{ "loadLimits": { "weightKg": { "maxLoad": "1000", "costPerKilometer": { "loadThreshold": "500", "costPerUnitAboveThreshold": 1 } } } }] } }
การคำนวณต้นทุนการโหลดสำหรับตัวอย่างนี้มีดังนี้
cost = max(carried load - load threshold, 0) * distance * cost per unit above threshold
ดังนั้นหากยานพาหนะบรรทุกweightKg
น้ำหนัก 600 กก. เป็นระยะทาง 10 กิโลเมตร การคำนวณจะเป็นดังนี้
(600 - 500) * 10 * 1 = 1000 cost units
คุณสามารถใช้ต้นทุนการบรรทุกเพื่อสร้างโมเดลแนวคิดต่างๆ เช่น การใช้พลังงานของยานพาหนะที่เพิ่มขึ้นเมื่อขนส่งของหนัก หรือการสึกหรอของยานพาหนะที่เกิดจากการบรรทุกยานพาหนะมากเกินไป
คำขอตัวอย่างอีกรายการที่มีต้นทุนการโหลด
อีกตัวอย่างของต้นทุนการโหลดที่กำหนดต้นทุนต่อเวลาที่เดินทางทั้ง สูงกว่าและต่ำกว่าเกณฑ์
{ "model": { "vehicles": [{ "loadLimits": { "weightLbs": { "maxLoad": "1000", "costPerTraveledHour": { "loadThreshold": "900", "costPerUnitAboveThreshold": 10, "costPerUnitBelowThreshold": 1 }, }, } }] } }
การคำนวณต้นทุนการโหลดสำหรับตัวอย่างนี้มีดังนี้
cost = max(carried load - load threshold, 0) * time * cost per unit above threshold
+ min(carried load, load threshold) * time * cost per unit below threshold
ดังนั้นหากยานพาหนะบรรทุกweightLbs
950 เป็นเวลา 5 ชั่วโมง การคำนวณจะเป็นดังนี้
max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000
ในตัวอย่างนี้ load_threshold
สำหรับต้นทุนการโหลด weightLbs
ใกล้เคียงกับ max_load
cost_per_unit_above_threshold
จะใช้ต้นทุนต่อชั่วโมงการเดินทางสูงเมื่อยานพาหนะบรรทุกของหนักเป็นพิเศษ
เพื่อลงโทษเส้นทางที่อาจทำให้ยานพาหนะสึกหรอมากขึ้นหรือสิ้นเปลืองเชื้อเพลิงมากเกินไป
cost_per_unit_below_threshold
จะเพิ่มต้นทุนต่อน้ำหนัก 1 หน่วยที่ยานพาหนะบรรทุกจนถึงเกณฑ์ ซึ่งแสดงถึงการสิ้นเปลืองเชื้อเพลิงที่เพิ่มขึ้นเมื่อยานพาหนะบรรทุกน้ำหนักมากขึ้น
คำถามที่พบบ่อย
คำถามที่พบบ่อยเกี่ยวกับต้นทุนการโหลดมีดังนี้
คำถาม | คำตอบ |
---|---|
ฉันจะระบุต้นทุนการโหลดได้ที่ใด | ระบุต้นทุนการโหลดใน Vehicle.LoadLimit |
ระบบจับคู่ต้นทุนการบรรทุกกับการจัดส่งอย่างไร | ค่าใช้จ่ายในการบรรทุกจะมีผลกับการจัดส่งที่มีประเภทความต้องการในการบรรทุกตรงกับ ประเภทของขีดจำกัดการบรรทุกของยานพาหนะ เช่น น้ำหนักหรือปริมาตร ประเภทการโหลดเป็นสตริงที่กำหนดเองได้ตามที่อธิบายไว้ใน ความต้องการและขีดจำกัดในการโหลด |
ค่าใช้จ่ายในการโหลดแสดงอย่างไร | ค่าใช้จ่ายในการโหลดจะแสดงในรูปของระยะทางหรือ
ระยะเวลาในการเปลี่ยน ใช้ cost_per_kilometer เพื่อระบุต้นทุนในแง่ของระยะทาง และ cost_per_traveled_hour เพื่อระบุต้นทุนในแง่ของระยะเวลา
|
ระบบจะเรียกเก็บค่าใช้จ่ายในการโหลดเมื่อใด | เปรียบเทียบน้ำหนักบรรทุกของยานพาหนะกับload_threshold ของต้นทุน
การบรรทุก หากระบุ cost_per_unit_above_threshold ระบบจะเพิ่มค่าใช้จ่าย
ตามสัดส่วนของน้ำหนักบรรทุกของยานพาหนะที่สูงกว่า
load_threshold โดยใช้สูตร
max(0, load - load_threshold) หากระบุ cost_per_unit_below_threshold ระบบจะเพิ่มค่าใช้จ่าย
ตามสัดส่วนของน้ำหนักบรรทุกของยานพาหนะด้านล่าง
load_threshold โดยใช้สูตร
min(load, load_threshold)
|
ค่าเริ่มต้นของพารามิเตอร์ต้นทุนการโหลดคืออะไร | load_threshold , cost_per_unit_above_threshold และ
cost_per_unit_below_threshold มีค่าเป็น 0 ทั้งหมดโดยค่าเริ่มต้น
|
ต้นทุนการโหลดแสดงในหน่วยใด | ค่าใช้จ่ายในการโหลดจะแสดงในหน่วยที่ไม่มีมิติเดียวกับพารามิเตอร์ค่าใช้จ่ายอื่นๆ ทั้งหมด เช่น global_duration_cost_per_hour หรือ
Shipment.penalty_cost
|
ฉันจะดูต้นทุนการโหลดในการตอบกลับได้ที่ไหน | ค่าใช้จ่ายในการโหลดที่เกิดขึ้นจะปรากฏในพร็อพเพอร์ตี้ metrics และ route_metrics ของข้อความตอบกลับ เช่น ค่าใช้จ่ายที่เกิดขึ้น
cost_per_kilometer จะ
ปรากฏเป็น model.vehicles.load_limits.cost_per_kilometer
|
ดูคำอธิบายโดยละเอียดเกี่ยวกับต้นทุนการโหลดได้ในเอกสารอ้างอิง (REST, gRPC)
ตัวอย่าง: ส่งOptimizeTours
คำขอ
นอกจากนี้ คุณยังส่งคำขอ OptimizeTours
ได้โดยใช้ REST หรือ gRPC
ก่อนส่งคำขอ ให้แทนที่พารามิเตอร์ต่อไปนี้ด้วยค่าที่ เหมาะสมกับสภาพแวดล้อมของคุณ
- ตรวจสอบว่าคุณได้กำหนดค่าข้อมูลรับรองเริ่มต้นของแอปพลิเคชันตามที่อธิบายไว้ ในใช้ OAuth
ตั้งค่า PROJECT_NUMBER_OR_ID เป็นหมายเลขหรือรหัสโปรเจ็กต์ Cloud
คำสั่งต่อไปนี้จะส่ง
OptimizeTours
คำขอไปยัง Route Optimization API และรับการตอบกลับแบบซิงโครนัสcurl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- << EOM { "model": { "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "penaltyCost": 100.0, "loadDemands": { "weightKg": { "amount": 50 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "penaltyCost": 30.0, "loadDemands": { "weightKg": { "amount": 10 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "penaltyCost": 50.0, "loadDemands": { "weightKg": { "amount": 80 } } } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 40.0, "costPerKilometer": 10.0, "loadLimits": { "weightKg": { "maxLoad": "100", "costPerKilometer": { "loadThreshold": "15", "costPerUnitAboveThreshold": 1 } } } } ] } } EOM
เมื่อคำขอเสร็จสมบูรณ์แล้ว คุณจะได้รับข้อความตอบกลับ