ความต้องการและขีดจำกัดของน้ำหนักบรรทุกเป็นข้อจำกัดประเภทหนึ่งที่คุณใช้เพื่อจัดการความจุ ได้ ข้อจำกัดนี้จะระบุ ความจุที่จำเป็น ของการจัดส่ง และ ความจุสูงสุด ของยานพาหนะ ซึ่งช่วยให้คุณเพิ่มประสิทธิภาพการกำหนดเส้นทาง ตามข้อจำกัดเหล่านี้ได้
ความต้องการและขีดจำกัดของน้ำหนักบรรทุกสามารถรองรับวัตถุประสงค์ต่างๆ ได้ เช่น
- ป้องกันไม่ให้ยานพาหนะบรรทุกน้ำหนักเกิน
- ตรวจสอบการเปลี่ยนแปลงของน้ำหนักบรรทุกในยานพาหนะเมื่อมีการรับและส่งสินค้า
- จัดลำดับความสำคัญในการจับคู่ยานพาหนะขนาดใหญ่กับการจัดส่งสินค้าที่มีน้ำหนักมาก
ความต้องการและขีดจำกัดของน้ำหนักบรรทุกจะระบุไว้ในพร็อพเพอร์ตี้ต่อไปนี้
loadDemandsจะระบุจำนวนความจุที่การจัดส่ง หนึ่งๆ ต้องการloadLimitsจะระบุความจุสูงสุดของยานพาหนะ หนึ่งๆ
โครงสร้าง
ดังที่แสดงในแผนภาพ ความต้องการและขีดจำกัดของน้ำหนักบรรทุกมีโครงสร้างดังนี้
loadDemandsเป็นพร็อพเพอร์ตี้ของShipmentAShipmentหนึ่งรายการมีความต้องการน้ำหนักบรรทุกได้หลายรายการloadLimitsเป็นพร็อพเพอร์ตี้ของVehicleAVehicleหนึ่งคันสามารถมีขีดจำกัดน้ำหนักบรรทุกได้หลายรายการ
รายการตรวจสอบข้อมูลสำคัญ
รายการตรวจสอบต่อไปนี้อธิบายความรู้ที่จำเป็นซึ่งจะช่วยป้องกันข้อผิดพลาดที่อาจเกิดขึ้นเกี่ยวกับน้ำหนักบรรทุก รายการนี้จะช่วยคุณตรวจสอบคำขอและแก้ปัญหาคำตอบ
พร็อพเพอร์ตี้
ส่วนนี้จะอธิบายพร็อพเพอร์ตี้สำหรับความต้องการและขีดจำกัดของน้ำหนักบรรทุก ซึ่งมีดังนี้
- ประเภทน้ำหนักบรรทุก: พร็อพเพอร์ตี้ที่แชร์ระหว่างความต้องการและขีดจำกัดของน้ำหนักบรรทุก
LoadและLoadLimit: คุณสมบัติเฉพาะที่มีอยู่ในความต้องการและขีดจำกัดของน้ำหนักบรรทุกตามลำดับ
ประเภทน้ำหนักบรรทุก
ประเภทน้ำหนักบรรทุกเป็นคีย์สตริงที่คุณใช้กับการจัดส่งและยานพาหนะอย่างเท่าเทียมกัน ประเภทน้ำหนักบรรทุกหนึ่งประเภทใช้ได้กับความต้องการน้ำหนักบรรทุกของการจัดส่ง รวมถึงขีดจำกัดน้ำหนักบรรทุกของยานพาหนะ
ประเภทน้ำหนักบรรทุกใช้ไวยากรณ์ประเภทแผนที่ Protocol Buffers เมื่อตั้งชื่อประเภทน้ำหนักบรรทุก ให้ใช้ตัวระบุที่อธิบายประเภทน้ำหนักบรรทุกและหน่วยของน้ำหนักบรรทุก เช่น weightKg, volume_gallons, palletcount หรือ frequencyDaily
Load และ LoadLimit
ออบเจ็กต์ Load และ LoadLimit มีพร็อพเพอร์ตี้เฉพาะเพื่อ
กำหนดข้อกำหนดด้านความจุสำหรับการจัดส่งและยานพาหนะ โดยตารางต่อไปนี้
จะอธิบายพร็อพเพอร์ตี้เหล่านี้
| ออบเจ็กต์ | ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภทพร็อพเพอร์ตี้ | คำอธิบายพร็อพเพอร์ตี้ |
|---|---|---|---|---|
Load |
loadDemands |
amount |
สตริง (รูปแบบ int64) | กำหนดข้อกำหนดด้านความจุของการจัดส่ง ในประเภทที่ระบุ |
LoadLimit |
loadLimits |
maxLoad |
สตริง (รูปแบบ int64) | กำหนดความจุน้ำหนักบรรทุกสูงสุดของยานพาหนะ ในประเภทที่ระบุ |
ตัวอย่าง
ส่วนนี้จะครอบคลุมตัวอย่าง 3 ประเภท
- ตัวอย่างโค้ด ที่แสดงโครงสร้างของพร็อพเพอร์ตี้ความต้องการและขีดจำกัดของน้ำหนักบรรทุก
- สถานการณ์ตัวอย่าง ที่แสดงวิธีหนึ่งในการใช้ความต้องการและ ขีดจำกัดของน้ำหนักบรรทุกในคำขอ API
- ตัวอย่างคำขอ ที่มีค่าที่ตั้งไว้ใน สถานการณ์ตัวอย่าง
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงโครงสร้างของความต้องการน้ำหนักบรรทุก ซึ่งคุณสามารถตั้งค่าประเภท
loadDemands เป็นสตริงและ amount พร็อพเพอร์ตี้เป็นสตริง
ในรูปแบบ int64 ได้
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
ตัวอย่างต่อไปนี้แสดงโครงสร้างพื้นฐานที่สุดของขีดจำกัดน้ำหนักบรรทุก ซึ่งคุณ
สามารถตั้งค่าประเภท loadLimits เป็นสตริงและพร็อพเพอร์ตี้ maxLoad
เป็นสตริงในรูปแบบ int64 ได้
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
สถานการณ์ตัวอย่าง
ส่วนนี้จะอธิบายสถานการณ์ที่คุณมีธุรกิจรับฝากเลี้ยงสุนัขและกำลังเพิ่มประสิทธิภาพเส้นทางในการขนส่งสุนัข 2-3 ตัวในยานพาหนะที่มีกรงจำนวนจำกัด
การจัดส่งแต่ละครั้งแสดงถึงจุดแวะพัก 1 จุดที่คุณรับสุนัขจำนวนหนึ่ง ในตัวอย่างนี้ การจัดส่งแต่ละครั้งจะมีสถานที่รับที่แตกต่างกัน ซึ่งเป็นบ้านของสุนัขที่คุณดูแล และการจัดส่งทั้งหมดจะมีสถานที่ส่งเดียวกัน ซึ่งเป็นอาคารของธุรกิจรับฝากเลี้ยงสุนัข
สำหรับตัวอย่างนี้ ค่าพร็อพเพอร์ตี้ในคำขอมีดังนี้
| ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภท | ค่า | สถานการณ์ |
|---|---|---|---|---|
loadDemands |
ประเภทน้ำหนักบรรทุก | สตริง | dogUnit |
กำหนดประเภทน้ำหนักบรรทุกสำหรับการจัดส่ง ตัวอย่างนี้ใช้ dogUnit โดยที่ dogUnit แต่ละรายการแสดงถึงสุนัข 1 ตัว |
loadDemands |
amount |
ตัวเลข | การจัดส่งครั้งที่ 1: 1การจัดส่งครั้งที่ 2: 3 |
ระบุปริมาณของประเภทน้ำหนักบรรทุกที่กำหนด ในตัวอย่างนี้ คุณกำลังกำหนดการจัดส่ง 2 ครั้ง โดยครั้งแรกคุณรับสุนัข 1 ตัว และครั้งที่ 2 คุณรับสุนัข 3 ตัว |
loadLimits |
ประเภทน้ำหนักบรรทุก | สตริง | dogUnit |
กำหนดประเภทขีดจำกัดน้ำหนักบรรทุกที่ใช้กับยานพาหนะ ค่านี้ต้องตรงกับ ประเภทน้ำหนักบรรทุกของการจัดส่งเพื่อให้ขีดจำกัดมีความเกี่ยวข้อง |
loadLimits |
maxLoad |
ตัวเลข | 6 |
ระบุปริมาณสูงสุดของประเภทน้ำหนักบรรทุกที่ยานพาหนะสามารถบรรทุกได้ ในตัวอย่างนี้ คุณมียานพาหนะเพียงคันเดียวที่มีความจุสูงสุด 6 dogUnit โดยที่ dogUnit แต่ละรายการแสดงถึงกรงสุนัข 1 กรง |
แผนภาพต่อไปนี้แสดงขีดจำกัดน้ำหนักบรรทุกของยานพาหนะ ความต้องการน้ำหนักบรรทุกของการจัดส่งแต่ละครั้ง และวิธีที่การจัดส่งแต่ละครั้งใช้ขีดจำกัดน้ำหนักบรรทุกของยานพาหนะ

ในตัวอย่างนี้ ความต้องการน้ำหนักบรรทุกของการจัดส่งแต่ละครั้งและขีดจำกัดน้ำหนักบรรทุกของยานพาหนะมีผลดังนี้
เครื่องมือเพิ่มประสิทธิภาพจะไม่มีปัญหา ในการสร้างเส้นทางให้ ยานพาหนะขนส่งสุนัข เนื่องจากยานพาหนะสามารถบรรทุกสุนัขได้สูงสุด 6 ตัว และ คุณรับสุนัขเพียง 4 ตัว
การมีขีดจำกัดน้ำหนักบรรทุก 6
dogUnitในยานพาหนะยังหมายความว่าคุณสามารถบรรทุกสุนัขเพิ่มได้อีกเพียง 2 ตัว ในยานพาหนะคันนี้หากจำนวนสุนัขมากกว่าขีดจำกัดน้ำหนักบรรทุก เครื่องมือเพิ่มประสิทธิภาพจะข้ามการรับสุนัข 1 ตัว หรือกำหนดให้ยานพาหนะที่เหมาะสม
โปรดทราบว่าไม่มีชุดประเภทที่กำหนดไว้ล่วงหน้า ในตัวอย่างนี้ คุณสามารถเปลี่ยนประเภทน้ำหนักบรรทุกจากหน่วยสุนัขเป็นหน่วยน้ำหนักเพื่อจำกัดน้ำหนักของสุนัข หรือเปลี่ยนเป็นหน่วยวัดเชิงเส้นเพื่อจำกัดความกว้างหรือความสูงของสุนัขได้ ความยืดหยุ่นนี้ช่วยให้คุณปรับแต่งความต้องการและขีดจำกัดของน้ำหนักบรรทุกให้ตรงกับความต้องการเฉพาะของคุณได้
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงโครงสร้างของคำขอ optimizeTours พื้นฐานที่รวมค่าสถานการณ์ตัวอย่าง
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "One bernese mountain dog", "loadDemands": { "dogUnit": { "amount": "1" } } }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "Three chihuahuas", "loadDemands": { "dogUnit": { "amount": "3" } } } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "loadLimits": { "dogUnit": { "maxLoad": "6" } }, "costPerKilometer": 1.0 } ] } }
โปรดทราบว่าการจัดส่ง 1 ครั้งมีความต้องการน้ำหนักบรรทุกได้หลายรายการ และยานพาหนะ 1 คันมีขีดจำกัดน้ำหนักบรรทุกได้หลายรายการ ซึ่งช่วยให้คุณระบุข้อจำกัดที่ซับซ้อนเพื่อนำมาพิจารณาเมื่อเพิ่มประสิทธิภาพเส้นทางของกลุ่มยานพาหนะได้ ซึ่งแตกต่างจากกรณีของตัวอย่างนี้
ขีดจำกัดน้ำหนักบรรทุกแบบไม่เข้มงวด
คุณสามารถตั้งค่าขีดจำกัดน้ำหนักบรรทุกเป็นข้อจำกัดแบบไม่เข้มงวดได้โดยการเพิ่ม softMaxLoad และ
costPerUnitAboveSoftMax ใน loadLimits ของยานพาหนะ ซึ่งจะช่วยให้เครื่องมือเพิ่มประสิทธิภาพสามารถบรรทุกน้ำหนักเกินขีดจำกัดน้ำหนักบรรทุกสูงสุดของยานพาหนะได้โดยมีค่าใช้จ่าย โดยจัดลำดับความสำคัญของการเดินทางให้เสร็จสมบูรณ์มากกว่าการปฏิบัติตามขีดจำกัดน้ำหนักบรรทุกอย่างเคร่งครัด
คุณสามารถใช้ maxLoad และ softMaxLoad ร่วมกันเพื่อตั้งค่าขีดจำกัดน้ำหนักบรรทุกแบบเข้มงวด
และแบบไม่เข้มงวด ในกรณีนี้ softMaxLoad จะตั้งค่าขีดจำกัดน้ำหนักบรรทุกที่สามารถ
บรรทุกเกินได้ และ maxLoad จะตั้งค่าขีดจำกัดน้ำหนักบรรทุกแบบเข้มงวดที่ไม่สามารถบรรทุกเกินได้ เมื่อ
ใช้ทั้ง 2 ค่า maxLoad ต้องมีค่ามากกว่า softMaxLoad
พร็อพเพอร์ตี้
ตารางต่อไปนี้จะอธิบายพร็อพเพอร์ตี้ข้อจำกัดแบบไม่เข้มงวดสำหรับความต้องการและขีดจำกัดของน้ำหนักบรรทุก
| ผู้ปกครอง | ชื่อพร็อพเพอร์ตี้ | ประเภทพร็อพเพอร์ตี้ | คำอธิบายพร็อพเพอร์ตี้ |
|---|---|---|---|
loadLimits |
softMaxLoad |
สตริง (รูปแบบ int64) | น้ำหนักบรรทุกสูงสุดที่ต้องการสำหรับยานพาหนะ หากน้ำหนักบรรทุกของยานพาหนะเกินค่านี้ จะมีค่าใช้จ่ายเกิดขึ้น |
loadLimits |
costPerUnitAboveSoftMax |
ตัวเลข | ค่าใช้จ่ายต่อน้ำหนักบรรทุก 1 หน่วยที่เกิน softMaxLoad ต้องระบุข้อมูลในช่องนี้เมื่อใช้ softMaxLoad ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายได้ที่แนวคิดหลักของโมเดลต้นทุน |
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงโครงสร้างของพร็อพเพอร์ตี้ข้อจำกัดแบบไม่เข้มงวดของ loadLimits
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }