ความต้องการและขีดจำกัดของโหลดเป็นข้อจำกัดประเภทหนึ่งที่คุณใช้จัดการความจุได้ ข้อจำกัดนี้ระบุความจุที่จำเป็นของการจัดส่งและความจุสูงสุดของยานพาหนะ ซึ่งช่วยให้คุณเพิ่มประสิทธิภาพการกำหนดเส้นทางตามข้อจำกัดเหล่านี้ได้
ความต้องการและขีดจำกัดของโหลดสามารถรองรับวัตถุประสงค์ต่างๆ เช่น
- ป้องกันไม่ให้ยานพาหนะบรรทุกเกินพิกัด
- ตรวจสอบว่าน้ำหนักบรรทุกของยานพาหนะเปลี่ยนแปลงอย่างไรเมื่อมีการรับและนำส่งพัสดุ
- ให้ความสำคัญกับการจับคู่ยานพาหนะสำหรับงานหนักกับการจัดส่งสินค้าที่มีน้ำหนักมาก
ความต้องการและขีดจำกัดของโหลดจะระบุไว้ในพร็อพเพอร์ตี้ต่อไปนี้
loadDemandsระบุจำนวนความจุที่การจัดส่งหนึ่งๆ ต้องการloadLimitsระบุความจุสูงสุดสำหรับยานพาหนะที่กำหนด
โครงสร้าง
ดังที่แสดงในแผนภาพ ความต้องการและขีดจำกัดของโหลดจะมีโครงสร้างดังนี้
loadDemandsเป็นพร็อพเพอร์ตี้ของShipmentShipment1 รายการอาจมีดีมานด์โหลดหลายรายการloadLimitsเป็นพร็อพเพอร์ตี้ของVehicleVehicle1 รายการมีขีดจำกัดการโหลดได้หลายรายการ
รายการตรวจสอบ Essentials
รายการตรวจสอบต่อไปนี้อธิบายความรู้ที่จำเป็นซึ่งจะช่วยป้องกันข้อผิดพลาดที่อาจเกิดขึ้นเกี่ยวกับภาระงาน รายการนี้จะช่วยคุณตรวจสอบคำขอและแก้ปัญหาการตอบกลับ
พร็อพเพอร์ตี้
ส่วนนี้จะอธิบายพร็อพเพอร์ตี้สำหรับความต้องการและขีดจำกัดในการโหลด ซึ่งมีดังนี้
- ประเภทโหลด: พร็อพเพอร์ตี้ที่ใช้ร่วมกันระหว่างความต้องการโหลดและขีดจำกัด
LoadและLoadLimit: พร็อพเพอร์ตี้ที่ไม่ซ้ำกันซึ่งแสดงในความต้องการโหลดและขีดจำกัดการโหลดตามลำดับ
ประเภทการใส่ผ้า
ประเภทการโหลดคือคีย์สตริงที่คุณใช้กับการจัดส่งและยานพาหนะอย่างเท่าเทียมกัน ประเภทการโหลดเดียวจะมีผลกับความต้องการโหลดของการจัดส่ง รวมถึงขีดจำกัดการโหลดของยานพาหนะ
ประเภทการโหลดใช้ไวยากรณ์ประเภทแผนที่บัฟเฟอร์โปรโตคอล เมื่อตั้งชื่อประเภทโหลด ให้ใช้ตัวระบุที่อธิบายประเภทของโหลดและหน่วยของโหลด เช่น weightKg, volume_gallons, palletcount หรือ frequencyDaily
Load และ LoadLimit
ออบเจ็กต์ Load และ LoadLimit มีพร็อพเพอร์ตี้เฉพาะเพื่อกำหนดข้อกำหนดด้านความจุสำหรับการจัดส่งและยานพาหนะ ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้เหล่านี้
| วัตถุ | ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภทที่พัก | คำอธิบายที่พัก |
|---|---|---|---|---|
Load |
loadDemands |
amount |
string (รูปแบบ int64) | กำหนดความต้องการด้านความจุของการจัดส่งในประเภทที่ระบุ |
LoadLimit |
loadLimits |
maxLoad |
string (รูปแบบ 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 ตัวเท่านั้นในรถคันนี้หากจำนวนสุนัขมากกว่าขีดจำกัดการบรรทุก เครื่องมือเพิ่มประสิทธิภาพจะข้ามการรับสุนัขตัวหนึ่งหรือมอบหมายให้ยานพาหนะที่เหมาะสมไปรับแทน
โปรดทราบว่าไม่มีชุดประเภทที่กำหนดไว้ล่วงหน้า ในตัวอย่างนี้ คุณสามารถเปลี่ยนประเภทน้ำหนักบรรทุกจากหน่วยสุนัขเป็นหน่วยน้ำหนักเพื่อจำกัดน้ำหนักของสุนัข หรือเปลี่ยนเป็นหน่วยวัดเชิงเส้นเพื่อจำกัดความกว้างหรือความสูงของสุนัข ความยืดหยุ่นนี้ช่วยให้คุณปรับแต่งความต้องการและขีดจำกัดของโหลดให้ตรงกับความต้องการที่เฉพาะเจาะจงได้
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงโครงสร้างของคำขอ 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 } ] } }
โปรดทราบว่าการจัดส่งสามารถมีดีมานด์การโหลดได้หลายรายการ และยานพาหนะสามารถมีขีดจำกัดการโหลดได้หลายรายการ ซึ่งแตกต่างจากกรณีในตัวอย่างนี้ ซึ่งช่วยให้คุณระบุข้อจำกัดที่ซับซ้อนเพื่อพิจารณาเมื่อเพิ่มประสิทธิภาพเส้นทางของยานพาหนะได้
ขีดจำกัดการโหลดแบบไม่เข้มงวด
คุณสามารถตั้งค่าขีดจำกัดการโหลดเป็นข้อจำกัดแบบยืดหยุ่นได้โดยเพิ่ม softMaxLoad และ costPerUnitAboveSoftMax ใน loadLimits ของยานพาหนะ ซึ่งจะช่วยให้เครื่องมือเพิ่มประสิทธิภาพสามารถบรรทุกเกินน้ำหนักสูงสุดของยานพาหนะได้โดยมีค่าใช้จ่าย โดยให้ความสำคัญกับการเดินทางให้เสร็จสิ้นมากกว่าการปฏิบัติตามขีดจำกัดน้ำหนักบรรทุกอย่างเคร่งครัด
คุณสามารถใช้ maxLoad และ softMaxLoad ร่วมกันเพื่อตั้งค่าทั้งขีดจำกัดการโหลดแบบเข้มงวดและแบบยืดหยุ่นได้ ในกรณีนี้ softMaxLoad จะกำหนดภาระงานที่เกินได้ และ maxLoad จะกำหนดขีดจำกัดที่เข้มงวดซึ่งเกินไม่ได้ เมื่อใช้ทั้ง 2 รายการ maxLoad ต้องมากกว่า softMaxLoad
พร็อพเพอร์ตี้
ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ข้อจำกัดแบบยืดหยุ่นสำหรับความต้องการและขีดจำกัดของภาระงาน
| ผู้ปกครอง | ชื่อพร็อพเพอร์ตี้ | ประเภทที่พัก | คำอธิบายที่พัก |
|---|---|---|---|
loadLimits |
softMaxLoad |
string (รูปแบบ int64) | น้ำหนักบรรทุกสูงสุดที่ต้องการสำหรับยานพาหนะ หากน้ำหนักบรรทุกของยานพาหนะเกินค่านี้ จะมีค่าใช้จ่ายเกิดขึ้น |
loadLimits |
costPerUnitAboveSoftMax |
ตัวเลข | ต้นทุนต่อหน่วยของภาระงานที่สูงกว่า softMaxLoad ต้องระบุข้อมูลในช่องนี้เมื่อใช้ softMaxLoad ดูแนวคิดหลักเกี่ยวกับรูปแบบต้นทุนเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับต้นทุน |
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงโครงสร้างของพร็อพเพอร์ตี้ข้อจำกัดแบบยืดหยุ่นของ loadLimits
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }