ต้นทุนการบรรทุกระบุต้นทุนหรือค่าปรับที่ยานพาหนะต้องเสียตาม
น้ำหนักบรรทุกระหว่างการรับและการนำส่งสินค้า คุณสามารถกำหนดค่าใช้จ่ายเหล่านี้
ตามระยะทางการเดินทางด้วย costPerKilometer, ระยะเวลาการเดินทางด้วย
costPerTraveledHour หรือใช้ทั้ง 2 อย่างพร้อมกัน
กำหนดค่าต้นทุนการโหลดเพื่อรองรับวัตถุประสงค์ต่างๆ เช่น
- พิจารณาต้นทุนเชื้อเพลิงที่เพิ่มขึ้นตามน้ำหนักของสินค้า
- หลีกเลี่ยงการกำหนดเส้นทางให้ยานพาหนะที่มีน้ำหนักบรรทุกมากในระยะทางไกล
- คำนึงถึงการสึกหรอของยานพาหนะจากสินค้าที่มีน้ำหนักมาก
พร็อพเพอร์ตี้
ระบุต้นทุนการโหลดภายในพร็อพเพอร์ตี้ loadLimits ของ Vehicle
เช่นเดียวกับพารามิเตอร์ค่าใช้จ่ายอื่นๆ ทั้งหมด ค่าใช้จ่ายในการโหลดจะใช้หน่วยค่าใช้จ่ายสัมพัทธ์ที่ไม่มีมิติ
คุณกำหนดต้นทุนการโหลดได้โดยใช้พร็อพเพอร์ตี้ต่อไปนี้
| พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
|---|---|---|
costPerKilometer |
วัตถุ | มีออบเจ็กต์ประเภท LoadCost เพื่อคำนวณค่าเดินทางตามกิโลเมตรที่เดินทาง |
costPerTraveledHour |
วัตถุ | มีออบเจ็กต์ประเภท LoadCost เพื่อคำนวณค่าเดินทางตามชั่วโมงที่เดินทาง โดยไม่รวมเวลาที่รอ เวลาที่เข้าชม และเวลาพัก |
LoadCost
ประเภทข้อความ LoadCost จะกำหนดต้นทุนการเดินทางของการบรรทุกสินค้าที่เฉพาะเจาะจง
ซึ่งช่วยให้คุณตั้งค่าเกณฑ์โหลด จากนั้นระบุอัตราค่าใช้จ่ายที่แตกต่างกัน
ต่อหน่วยโหลดทั้งต่ำกว่าและสูงกว่าเกณฑ์นั้น
ออบเจ็กต์ LoadCost มีพารามิเตอร์การกำหนดค่าต่อไปนี้
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
loadThreshold |
สตริง (รูปแบบ int64) | ระดับการโหลดที่อัตราการคำนวณต้นทุนเปลี่ยนแปลง ค่าเริ่มต้นคือ 0 |
costPerUnitAboveThreshold |
ตัวเลข | ต้นทุนที่ใช้กับโหลดแต่ละหน่วยที่สูงกว่า loadThreshold ค่าเริ่มต้นคือ 0 |
costPerUnitBelowThreshold |
ตัวเลข | ต้นทุนที่ใช้กับหน่วยของภาระงานแต่ละหน่วยที่ต่ำกว่าหรือเท่ากับ loadThreshold ค่าเริ่มต้นคือ 0 |
การจับคู่ต้นทุนการขนส่งกับสินค้า
ระบบจะใช้ต้นทุนการบรรทุกเมื่อน้ำหนักบรรทุกของยานพาหนะตรงกับloadDemands
ประเภทของการจัดส่งในเส้นทาง ประเภทการโหลดคือสตริงที่กำหนดเอง เช่น
น้ำหนักหรือปริมาตร ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่าประเภทการโหลดได้ที่ประเภทการโหลด
ตัวอย่าง
ส่วนนี้จะครอบคลุมตัวอย่าง 3 ประเภท ได้แก่
- ตัวอย่างโค้ดที่แสดงโครงสร้างของต้นทุนการโหลด
- สถานการณ์ตัวอย่างที่แสดงวิธีหนึ่งในการใช้ต้นทุนการโหลด เพื่อให้บรรลุวัตถุประสงค์ทางธุรกิจ
- ตัวอย่างคำขอที่มีค่าที่ตั้งไว้ใน สถานการณ์ตัวอย่าง
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงวิธีจัดโครงสร้างต้นทุนการโหลดโดยใช้พารามิเตอร์การกำหนดค่าที่มีอยู่ทั้งหมด
ตัวอย่างนี้ใช้ costPerKilometer แต่คุณสามารถ
แทนที่ด้วย costPerTraveledHour เพื่อคำนวณต้นทุนตามระยะเวลาการเดินทาง
แทนระยะทางได้
{
"model": {
"vehicles": [{
"loadLimits": {
"LOAD_TYPE": {
"maxLoad": "MAX_LOAD",
"costPerKilometer": {
"loadThreshold": "LOAD_THRESHOLD",
"costPerUnitAboveThreshold": COST_ABOVE,
"costPerUnitBelowThreshold": COST_BELOW
}
}
}
}]
}
}
สถานการณ์ตัวอย่าง
ส่วนนี้จะอธิบายสถานการณ์ที่คุณต้องการเพิ่มประสิทธิภาพการใช้เชื้อเพลิง และปริมาณเชื้อเพลิงที่ใช้เป็นสัดส่วนกับระยะทางและน้ำหนักบรรทุก เนื่องจากยานพาหนะจะใช้เชื้อเพลิงมากขึ้นเมื่อบรรทุกของหนัก คุณจึงควรวางแผน เส้นทางที่นำส่งพัสดุที่มีน้ำหนักมากก่อน
หากต้องการตั้งค่าลักษณะการทำงานนี้ คุณสามารถกำหนดค่าคำขอให้ลงโทษยานพาหนะ ที่เดินทางเป็นระยะทางไกลพร้อมสัมภาระหนัก สำหรับตัวอย่างนี้ ให้ใช้ค่าพร็อพเพอร์ตี้ต่อไปนี้ในคำขอ
| ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภท | ค่า | สถานการณ์ |
|---|---|---|---|---|
loadLimits |
ประเภทการใส่ผ้า | สตริง | weightKg |
กำหนดประเภทความจุที่จะติดตาม ตัวอย่างนี้ใช้ weightKg เพื่อแสดงน้ำหนักของสินค้าในหน่วยกิโลกรัม |
loadLimits |
maxLoad |
สตริง | 100 |
น้ำหนักบรรทุกสูงสุดที่ยานพาหนะรับได้ |
costPerKilometer |
loadThreshold |
สตริง | 15 |
กำหนดเกณฑ์การโหลดพื้นฐาน น้ำหนักบรรทุกที่เกิน 15 กก. จะมีค่าปรับด้านต้นทุนเชื้อเพลิงตามน้ำหนักบรรทุก |
costPerKilometer |
costPerUnitAboveThreshold |
ตัวเลข | 1 |
ทำหน้าที่เป็นค่าสัมประสิทธิ์ค่าน้ำมันเชื้อเพลิง ทุกๆ กิโลเมตรที่เดินทาง สินค้าแต่ละกิโลกรัมที่เกินเกณฑ์ 15 กก. จะมีต้นทุน 1 หน่วย |
loadDemands |
amount |
สตริง | การจัดส่ง 1: 50การจัดส่ง 2: 10การจัดส่ง 3: 80 |
ระบุน้ำหนักสินค้าสำหรับการจัดส่งทั้ง 3 รายการ |
ในสถานการณ์นี้ ค่าที่คุณกำหนดจะมีผลดังนี้
- เครื่องมือเพิ่มประสิทธิภาพจะจัดเรียงเส้นทางเพื่อนำส่งพัสดุที่มีน้ำหนักมากที่สุดก่อน ตัวแก้จะกำหนดเวลาการนำส่งที่น้ำหนัก 80 กก. และ 50 กก. ในช่วงต้นของเส้นทางเพื่อลดระยะทางที่เดินทางขณะบรรทุกหนัก
- เครื่องมือเพิ่มประสิทธิภาพจะจัดเรียงเส้นทางเพื่อลดระยะทางที่เดินทางพร้อมสินค้าที่มีน้ำหนักมาก หากต้องการดูว่าการตั้งค่าเหล่านี้ส่งผลต่อเส้นทางอย่างไร คุณสามารถ
เพิ่ม
costPerUnitAboveThresholdจาก1เป็น5การเพิ่มค่าปรับน้ำหนัก จะกระตุ้นให้เครื่องมือเพิ่มประสิทธิภาพทำงานหนักขึ้นเพื่อลด ระยะทางที่เดินทางพร้อมสินค้าที่มีน้ำหนักมาก ซึ่งอาจเปลี่ยนลำดับการนำส่ง หรือแบ่งการจัดส่งออกเป็นยานพาหนะหลายคัน
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงโครงสร้างของคำขอ optimizeTours
พื้นฐานซึ่งรวมค่าใช้จ่ายในการโหลดจากสถานการณ์ตัวอย่าง
{ "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 } } } } ] } }
สูตรการคำนวณ
เครื่องมือเพิ่มประสิทธิภาพจะคำนวณต้นทุนการโหลดโดยใช้สูตรต่อไปนี้
การคำนวณเกณฑ์ทั้งหมด
เมื่อระบุทั้ง costPerUnitAboveThreshold และ
costPerUnitBelowThreshold คุณจะต้องเสียค่าเดินทางแยกต่างหากสำหรับน้ำหนักบรรทุก
ทั้งที่สูงกว่าและต่ำกว่า loadThreshold สูตรคือ
cost = max(carried_load - load_threshold, 0) * distance_or_time * cost_per_unit_above_threshold
+ min(carried_load, load_threshold) * distance_or_time * cost_per_unit_below_threshold
ตัวอย่างเช่น การใช้ค่าจากตัวอย่างคำขอ ซึ่งค่าของ
costPerUnitBelowThreshold คือ 2 หากยานพาหนะเดินทาง 10 กิโลเมตร
โดยบรรทุกน้ำหนัก 50 การคำนวณจะเป็นดังนี้
max(50 - 15, 0) * 10 * 1 + min(50, 15) * 10 * 2 = 650 cost units
การคำนวณที่สูงกว่าเกณฑ์
เมื่อระบุเฉพาะ costPerUnitAboveThreshold การคำนวณจะเป็นกรณีพิเศษของสูตรเกณฑ์แบบเต็ม เนื่องจากต้นทุนที่ต่ำกว่าเกณฑ์
เป็น 0 ครึ่งหลังของสูตรเต็มจึงประเมินเป็น 0 สูตรคือ
cost = max(carried_load - load_threshold, 0) * distance_or_time * cost_per_unit_above_threshold
ตัวอย่างเช่น การใช้ค่าจากตัวอย่างคำขอที่
loadThreshold คือ 15 และ costPerUnitAboveThreshold คือ 1 หาก
ยานพาหนะเดินทาง 10 กิโลเมตรโดยบรรทุกน้ำหนัก 50 การคำนวณจะเป็นดังนี้
max(50 - 15, 0) * 10 * 1 = 350 cost units
การคำนวณต่ำกว่าเกณฑ์
ในทำนองเดียวกัน หากคุณระบุเฉพาะ costPerUnitBelowThreshold การคำนวณจะเป็นกรณีพิเศษอีกกรณีหนึ่งของสูตรเกณฑ์แบบเต็ม ซึ่งต้นทุนที่สูงกว่าเกณฑ์จะเป็น 0 สูตรคือ
cost = min(carried_load, load_threshold) * distance_or_time * cost_per_unit_below_threshold